[CMake] Mac Bundle installation with libraries
James Bigler
jamesbigler at gmail.com
Fri Feb 26 13:02:12 EST 2010
I have a project that builds a group of mac bundles that depend on a library
I also compile. I need to install the library within the bundle to get it
to be relocatable, but I have no way of doing this without creating a
circular dependency.
src/CMakeLists.txt:
add_subdirectory(mylib)
add_subdirectory(mysamples)
src/mylib/CMakeLists.txt:
add_library(mylib mylib.cpp mylib.h)
set_target_properties(mylib PROPERTIES VERSION "2.3.4" SOVERSION "1")
install(TARGETS mylib RUNTIME DESTINATION bin LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
src/mysamples/CMakeLists.txt:
foreach(sample fun lessfun)
add_executable(${sample} ${sample}.cpp MACOSX_BUNDLE)
target_link_libraries(${sample} mylib)
install(TARGETS ${sample} DESTINATION samples)
# I really want to install mylib in the bundle, but I don't have access to
the library target anymore.
install(TARGETS mylib DESTINATION samples/${sample}.app/Contents/MacOS)
endforeach()
I really want to install my library within the bundle, but I don't have
access to the library outside of the mylib subdirectory. I can't create
install targets in the mylib install directory, because I don't have the
list of bundles to install it to until after I parse the mysamples directory
and it's too late.
I tried to use the LOCATION_${CMAKE_BUILD_CONFIG} variable, but because I'm
using the VERSION and SOVERSION properties on my library I only get one of
the symlinks and not all three (libmylib.dylib -> libmylib.2.3.4.dylib,
libmylib.1.dylib -> libmylib.2.3.4.dylib, and libmylib.2.3.4.dylib).
Is there some way I can get mylib to also install with my executable
bundles?
James
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20100226/74324e14/attachment.htm>
More information about the CMake
mailing list