Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

aggregate targets and build configurations



I tried posting this a couple of weeks ago after singing back up for the list. It didn't go through due to the subscription being so new. If it did, and I missed it, sorry for the double post.

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:
http://lists.apple.com/mailman/options/xcode-users/email@hidden

This email sent to email@hidden


Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.