I've also done something like this: set(SOURCES LockFreeBuffer.h Saturate.h Stride.h)
add_custom_target(UtilityHeaders SOURCES ${SOURCES}) Ryan On 11/01/2010 08:58 AM, aaron_wri...@selinc.com wrote:
I have a couple projects like that in my build. I just make a "dumby.cpp" file that is completely empty and give that to add_library() with the other headers. It seems to make everyone happy. --- Aaron Wright From: "Pedro d'Aquino"<bud...@gmail.com> To: cmake@cmake.org Date: 11/01/2010 06:02 AM Subject: [CMake] Are header-only targets supported? Sent by: cmake-boun...@cmake.org Hi, I'd like to add some header-only targets to my build in order to aid in project-browsing in IDEs such as Xcode. If I do "add_library( Common ${header_list} )" the new target shows up and compiles fine in Xcode, but when I try to compile it using make, I get the following errors: ------------------------- MacBook-Pro:build_mac pfranco$ cmake ../../myproject ... -- Configuring done CMake Error: Cannot determine link language for target "Common". CMake Error: CMake can not determine linker language for target:Common ... MacBook-Pro:build_mac pfranco$ make Common Scanning dependencies of target Common make[3]: *** No rule to make target `common/CMakeFiles/Common.dir/build'. Stop. make[2]: *** [common/CMakeFiles/Common.dir/all] Error 2 make[1]: *** [common/CMakeFiles/Common.dir/rule] Error 2 make: *** [Common] Error 2 ------------------------- I tried to work around this by adding "set_target_properties( Common PROPERTIES LINKER_LANGUAGE CXX)", in which case CMake runs without hiccups but make fails (still no problems in Xcode though): ------------------------- MacBook-Pro:build_mac pfranco$ make Common Linking CXX static library libCommon.a ar: no archive members specified usage: ar -d [-TLsv] archive file ... ar -m [-TLsv] archive file ... ar -m [-abiTLsv] position archive file ... ar -p [-TLsv] archive [file ...] ar -q [-cTLsv] archive file ... ar -r [-cuTLsv] archive file ... ar -r [-abciuTLsv] position archive file ... ar -t [-TLsv] archive [file ...] ar -x [-ouTLsv] archive [file ...] make[3]: *** [common/libCommon.a] Error 1 make[2]: *** [common/CMakeFiles/Common.dir/all] Error 2 make[1]: *** [common/CMakeFiles/Common.dir/rule] Error 2 make: *** [Common] Error 2 ------------------------- Adding a dummy source file works, but causes some ugly warnings I'd really like to avoid (besides being a bit hackish): ------------------------- MacBook-Pro:build_mac pfranco$ make Common [100%] Building CXX object common/CMakeFiles/Common.dir/dummy.cpp.o Linking CXX static library libCommon.a /usr/bin/ranlib: for architecture: i386 file: libCommon.a(dummy.cpp.o) has no symbols /usr/bin/ranlib: for architecture: x86_64 file: libCommon.a(dummy.cpp.o) has no symbols /usr/bin/ranlib: warning for library: libCommon.a for architecture: i386 the table of contents is empty (no object file members in the library define global symbols) /usr/bin/ranlib: warning for library: libCommon.a for architecture: x86_64 the table of contents is empty (no object file members in the library define global symbols) [100%] Built target Common ------------------------- I've looked up a 3 year old e-mail thread (http://www.cmake.org/pipermail/cmake/2007-May/014238.html) from which I gather this isn't really a supported scenario. Has anything changed since then? What is the best way of doing this? Thanks, Pedro d'Aquino _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
-- Ryan Pavlik HCI Graduate Student Virtual Reality Applications Center Iowa State University Member, ACM and ACM SIGCHI Member, ASME http://academic.cleardefinition.com _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake