Hi all. I'm using CMake 2.8.12.1 on Linux, MacOS, and Windows. I've
discovered a bug in the Xcode generator when dealing with OBJECT and
STATIC libraries. This example works fine on Linux, and on MacOS with
the Makefile generator. I also haven't noticed a problem on Windows
(MSVC).
What I'm doing is creating an OBJECT library then creating a STATIC
library from that (and I'm also creating a SHARED library from the same
OBJECT library, but that's not relevant to this bug).
Here's the test file:
cmake_minimum_required(VERSION 2.8.12)
project(TestLib C)
add_library(mylib_OBJECTS OBJECT mylib.c)
add_library(mylib STATIC $<TARGET_OBJECTS:mylib_OBJECTS>)
add_executable(libtest libtest.c)
target_link_libraries(libtest mylib)
I have trivial mylib.c and libtest.c files.
The Makefile generators work fine; the libmylib.a library is created and
linked to libtest just as you'd expect.
For Xcode, though, the link fails:
Ld Debug/libtest normal x86_64
cd /Users/build/xcode-bug
/Developer/usr/bin/llvm-gcc-4.2 -arch x86_64 -isysroot
/Developer/SDKs/MacOSX10.7.sdk -L/Users/build/xcode-bug/Debug
-F/Users/build/xcode-bug/Debug -filelist
/Users/build/xcode-bug/TestLib.build/Debug/libtest.build/Objects-normal/x86_64/libtest.LinkFileList
-mmacosx-version-min=10.7 -Wl,-search_paths_first
-Wl,-headerpad_max_install_names /Users/build/xcode-bug/Debug/libmylib.a -o
/Users/build/xcode-bug/Debug/libtest
Command /Developer/usr/bin/llvm-gcc-4.2 failed with exit code 1
The reason this fails is that while the link line is correctly trying to
link the Debug/libmylib.a library, the library that Xcode actually built
is quite different:
$ find . -name libmylib\*
./TestLib.build/Debug/mylib_OBJECTS.build/Objects-normal/libmylib_OBJECTS.a
This is not right.
Cheers!
--
Powered by www.kitware.com
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Kitware offers various services to support the CMake community. For more
information on each offering, please visit:
CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake