Re: aggregate targets and build configurations
Re: aggregate targets and build configurations
- Subject: Re: aggregate targets and build configurations
- From: Scott Tooker <email@hidden>
- Date: Mon, 16 Jun 2008 12:48:22 -0700
The fact that a re-build of the same configuration works makes me
think this is a bug. Sounds like dependency analysis or build setting
evaluation is not being correct done when changing configurations
prior to the first build attempt.
Scott
On Jun 14, 2008, at 1:22 AM, Tobias Ford wrote:
I have a suite of application projects that use several shared
static libraries. The application projects reference the library
projects through xcode project dependencies. Release libraries are
using libXXX.a for the product and debug libraries are using
libXXX_d.a for the product. Each application project configuration
works correctly detecting the correct library for debug and release
when linking.
I then have a root project that consists of embedded project
references for all of the actual application projects. This project
only has aggregate targets; one for each application and one for
build all. This project has both of the default Release and Debug
configurations. When I build any of the Release targets in this
project, the embedded target application compiles for the correct
configuration but then attempts to link using the incorrect debug
libXXX_d.a libraries. If I open each embedded application target
and then close it, the application will link correctly against it's
dependent projects/libraries.
This is the project layout... Building Release of the PackFileTool
from gsg.xcodeproj will attempt to link with libsharedEngine_d.a
instead of the correct libsharedEngine.a. Building Release of the
PackFileTool from PackFileTool.xcodeproj will link correctly with
libsharedEngine.a.
gsg.xcodeproj // root project
Client. xcodeproj // target project for application
PackFileTool.xcodeproj // target project for application
PackFileTool.xcodeproj // application project
sharedEngine.xcodeproj // dependent library project
File001.cpp
File002.cpp
File003.cpp
sharedEngine.xcodeproj // library project that builds both the
libsharedEngine.a and libsharedEngine_d.a static libs
File001.cpp
File002.cpp
File003.cpp
This is pretty much the same thing described in the list archive :
"Re: Setting up Cross Project Dependencies" @ http://lists.apple.com/archives/Xcode-users/2005/Jul/msg00199.html
by Mike Jackson
Hitting the "Build" button a 2nd time for the Aggregate target in
the "Second" project now links correctly. So if I switch to the
"Release" build configuration, the click build for the aggregate
target Xcode tries to link against the debug library in the
"Release" folder. Which it can not find because it is named slightly
differently for the debug versus the release build configurations.
If I then just click the "Build" button a second time the project is
linked correctly. Is this a bug by any chance?
The follow-up to this email is file a bug :) Anyone have any more
information or a work around that they would recommend? Worst case
is that I can have the Debug configuration not use the libXXX_d.a
naming format for the libraries, but I'd prefer to not do this.
Thanks in advance.
-------------------
Tobias Ford...
tobias1482 'at' mac.com
tford 'at' spacetimestudios.com
-------------------
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden