From be6d060f4acda239302e0d1882e79123b136385c Mon Sep 17 00:00:00 2001 From: Matthias Hochsteger Date: Fri, 11 Dec 2015 17:53:06 +0100 Subject: [PATCH] new option: INSTALL_DEPENDENCIES --- CMakeLists.txt | 47 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f1bc95c0..0c1727f8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,6 +24,7 @@ option( USE_JPEG "enable snapshots using library libjpeg" OFF ) option( USE_MPEG "enable video recording with FFmpeg, uses libavcodec" OFF ) option( INTEL_MIC "cross compile for intel xeon phi") option( INSTALL_PROFILES "install environment variable settings to /etc/profile.d" OFF ) +option( INSTALL_DEPENDENCIES "install dependencies like tcl, useful for packaging" OFF ) option( USE_CCACHE "use ccache") @@ -263,6 +264,20 @@ if(INSTALL_PROFILES) set( CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_BINARY_DIR}/postinst") endif(INSTALL_PROFILES) +####################################################################### +if(INSTALL_DEPENDENCIES) + include (InstallRequiredSystemLibraries) + message("***********************************************") + message("${CMAKE_C_STANDARD_LIBRARIES}") + message("${CMAKE_CXX_STANDARD_LIBRARIES}") + message("${CMAKE_C_STANDARD_LIBRARIES_INIT}") + message("${CMAKE_CXX_STANDARD_LIBRARIES_INIT}") + message("${CMAKE_STANDARD_LIBRARIES}") + get_filename_component(MY_LIB_DIR ${TK_LIBRARY} DIRECTORY) + message("my_tcl lib dir: ${MY_LIB_DIR}") + install( DIRECTORY "${MY_LIB_DIR}" DESTINATION . COMPONENT netgen ) + install( FILES "${Boost_LIBRARIES}" DESTINATION lib COMPONENT netgen ) +endif(INSTALL_DEPENDENCIES) ####################################################################### add_subdirectory(libsrc) @@ -317,16 +332,44 @@ if(UNIX) endif(UNIX) if(APPLE) - install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/startup2.sh DESTINATION bin) set(CPACK_GENERATOR "Bundle") set(CPACK_BUNDLE_NAME "NGSuite") - set(CPACK_BUNDLE_PLIST ${CMAKE_CURRENT_BINARY_DIR}/Info.plist) + set(CPACK_BUNDLE_PLIST ${mac_plist}) set(CPACK_BUNDLE_ICON ${CMAKE_CURRENT_SOURCE_DIR}/../netgen/windows/netgen.ico) # set(CPACK_BUNDLE_STARTUP_COMMAND /Applications/NGSuite.app/Contents/MacOS/NGSuite) # set(CPACK_BUNDLE_STARTUP_COMMAND /Applications/NGSuite.app/Contents/Resources/bin/netgen) set(CPACK_BUNDLE_STARTUP_COMMAND startup.sh) # set(CPACK_SOURCE_GENERATOR "TGZ") + + # create some auxiliary files + set(mac_startup ${CMAKE_CURRENT_BINARY_DIR}/startup.sh) + file(WRITE ${mac_startup} "#!/bin/sh\n") + file(APPEND ${mac_startup} "NGSuite_BUNDLE=\"`echo \"$0\" | sed -e 's/\\/Contents\\/Resources\\/bin\\/startup.sh//'`\"\n") + file(APPEND ${mac_startup} "NGSuite_RESOURCES=\"$NGSuite_BUNDLE/Contents/Resources\"\n") + file(APPEND ${mac_startup} "export DYLD_LIBRARY_PATH=$NGSuite_RESOURCES/lib:$DYLD_LIBRARY_PATH\n") + file(APPEND ${mac_startup} "export NETGENDIR=$NGSuite_RESOURCES/bin\n") + file(APPEND ${mac_startup} "$NGSuite_RESOURCES/bin/netgen\n") + install(PROGRAMS ${mac_startup} DESTINATION bin) + + set(mac_ngsuite ${CMAKE_CURRENT_BINARY_DIR}/ngsuite.sh) + file(WRITE ${mac_ngsuite} "#!/bin/sh\n") + file(APPEND ${mac_ngsuite} "NGSuite_BUNDLE=\"`echo \"$0\" | sed -e 's/\\/Contents\\/MacOS\\/NGSuite//'`\"\n") + file(APPEND ${mac_ngsuite} "NGSuite_RESOURCES=\"$NGSuite_BUNDLE/Contents/Resources\"\n") + file(APPEND ${mac_ngsuite} "open -a /Applications/Utilities/Terminal.app $NGSuite_RESOURCES/bin/startup.sh\n") + install(PROGRAMS ${mac_ngsuite} DESTINATION bin) + + set(mac_plist ${CMAKE_CURRENT_BINARY_DIR}/Info.plist) + file(WRITE ${mac_plist} "\n") + file(APPEND ${mac_plist} "\n") + file(APPEND ${mac_plist} "\n") + file(APPEND ${mac_plist} "\n") + file(APPEND ${mac_plist} " CFBundleDevelopmentRegion\n") + file(APPEND ${mac_plist} " English\n") + file(APPEND ${mac_plist} " CFBundleExecutable\n") + file(APPEND ${mac_plist} " NGSuite\n") + file(APPEND ${mac_plist} "\n") + file(APPEND ${mac_plist} "\n") endif(APPLE) include(CPack)