diff options
Diffstat (limited to 'Tests/BundleUtilities/CMakeLists.txt')
-rw-r--r-- | Tests/BundleUtilities/CMakeLists.txt | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/Tests/BundleUtilities/CMakeLists.txt b/Tests/BundleUtilities/CMakeLists.txt new file mode 100644 index 0000000..2a649e4 --- /dev/null +++ b/Tests/BundleUtilities/CMakeLists.txt @@ -0,0 +1,70 @@ +cmake_minimum_required(VERSION 2.8) +project(BundleUtilities) + +###### the various types of dependencies we can have + +# a shared library +add_library(shared SHARED shared.cpp shared.h) + +# another shared library +add_library(shared2 SHARED shared2.cpp shared2.h) + +# a loadable module (depends on shared2) +# test app will load this at runtime +add_library(module MODULE module.cpp module.h) +set_target_properties(module PROPERTIES PREFIX "") +get_target_property(module_loc module LOCATION) +target_link_libraries(module shared2) + +# a framework library +add_library(framework SHARED framework.cpp framework.h) +# TODO: fix problems with local frameworks without rpaths +#set_target_properties(framework PROPERTIES FRAMEWORK 1) + +# make sure rpaths are not helping BundleUtilities or the executables +set_target_properties(shared shared2 module framework PROPERTIES + SKIP_BUILD_RPATH 1) + + +###### test a Bundle application using dependencies + +set(TESTBUNDLEDIR "${CMAKE_CURRENT_BINARY_DIR}/testdir1") +add_executable(testbundleutils1 MACOSX_BUNDLE testbundleutils.cpp) +target_link_libraries(testbundleutils1 shared framework ${CMAKE_DL_LIBS}) +set_target_properties(testbundleutils1 PROPERTIES + INSTALL_RPATH "${TESTBUNDLEDIR}" + BUILD_WITH_INSTALL_RPATH 1) +get_target_property(loc testbundleutils1 LOCATION) + +add_custom_target(testbundleutils1_test ALL + COMMAND ${CMAKE_COMMAND} + "-DINPUT=${loc}" + "-DMODULE=${module_loc}" + "-DINPUTDIR=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}" + "-DOUTPUTDIR=${TESTBUNDLEDIR}" + -P "${CMAKE_CURRENT_SOURCE_DIR}/bundleutils.cmake" + ) + +add_dependencies(testbundleutils1_test testbundleutils1) + + + +###### test a non-Bundle application using dependencies + +set(TESTBUNDLEDIR "${CMAKE_CURRENT_BINARY_DIR}/testdir2") +add_executable(testbundleutils2 testbundleutils.cpp) +target_link_libraries(testbundleutils2 shared framework ${CMAKE_DL_LIBS}) +set_target_properties(testbundleutils2 PROPERTIES + INSTALL_RPATH "${TESTBUNDLEDIR}" + BUILD_WITH_INSTALL_RPATH 1) +get_target_property(loc testbundleutils2 LOCATION) + +add_custom_target(testbundleutils2_test ALL + COMMAND ${CMAKE_COMMAND} + "-DINPUT=${loc}" + "-DMODULE=${module_loc}" + "-DINPUTDIR=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}" + "-DOUTPUTDIR=${TESTBUNDLEDIR}" + -P "${CMAKE_CURRENT_SOURCE_DIR}/bundleutils.cmake" + ) +add_dependencies(testbundleutils2_test testbundleutils2) |