diff --git a/Applications/CoreApp/CMakeLists.txt b/Applications/CoreApp/CMakeLists.txt index 75f728f70e..28a216b791 100644 --- a/Applications/CoreApp/CMakeLists.txt +++ b/Applications/CoreApp/CMakeLists.txt @@ -1,70 +1,68 @@ FIND_PACKAGE(BlueBerry REQUIRED) INCLUDE(${QT_USE_FILE}) INCLUDE_DIRECTORIES( ${BLUEBERRY_PLUGIN_SOURCE_DIRS} ${org_blueberry_osgi_INCLUDE_DIRS} ${Poco_INCLUDE_DIRS} ${mbilog_INCLUDE_DIRS} ) -LINK_DIRECTORIES(${Poco_LIBRARY_DIRS} - ${BLUEBERRY_PLUGINS_OUTPUT_DIR}/org.blueberry.osgi/bin - ) +LINK_DIRECTORIES(${Poco_LIBRARY_DIRS}) IF(MITK_SHOW_CONSOLE_WINDOW) ADD_EXECUTABLE(CoreApp MACOSX_BUNDLE CoreApp.cpp) ELSE(MITK_SHOW_CONSOLE_WINDOW) ADD_EXECUTABLE(CoreApp MACOSX_BUNDLE WIN32 CoreApp.cpp) ENDIF(MITK_SHOW_CONSOLE_WINDOW) IF (WIN32) FIND_PACKAGE(Qt4) TARGET_LINK_LIBRARIES(CoreApp ${QT_QTCORE_LIBRARY} ${QT_QTMAIN_LIBRARY}) ENDIF(WIN32) TARGET_LINK_LIBRARIES(CoreApp optimized PocoFoundation debug PocoFoundationd optimized PocoUtil debug PocoUtild org_blueberry_osgi) -SET_TARGET_PROPERTIES(CoreApp PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_RPATH};${CMAKE_INSTALL_RPATH}/BlueBerry/org.blueberry.osgi/bin") +SET_TARGET_PROPERTIES(CoreApp PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_RPATH};${CMAKE_INSTALL_RPATH}/plugins") # subproject support ADD_DEPENDENCIES(MITK-CoreUI CoreApp) IF(MITK_ENABLE_GUI_TESTING) ADD_DEPENDENCIES(MITK-CoreUI solstice) ENDIF() SET(_plugin_deps ${BLUEBERRY_ENABLED_PLUGINS} ${MITK_CORE_ENABLED_PLUGINS} ) IF(_plugin_deps) # Make sure all enabled plug-ins are up to date ADD_DEPENDENCIES(CoreApp ${_plugin_deps}) ENDIF() SET(BLUEBERRY_PLUGIN_CACHE_DIR "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/plugin_cache") CONFIGURE_FILE(CoreApp.ini ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/CoreApp.ini) IF(WIN32) FOREACH(COREAPP_BUILD_TYPE debug release) mitkFunctionCreateWindowsBatchScript(startCoreApp.bat.in ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/startCoreApp_${COREAPP_BUILD_TYPE}.bat ${COREAPP_BUILD_TYPE}) ENDFOREACH() ENDIF(WIN32) MITK_INSTALL_TARGETS(EXECUTABLES CoreApp GLOB_PLUGINS ) mitkFunctionInstallProvisioningFiles(${BLUEBERRY_PLUGIN_PROVISIONING_FILE} ${MITK_COREAPP_PROVISIONING_FILE}) IF(UNIX AND MITK_INSTALL_RPATH_RELATIVE AND NOT APPLE) INSTALL(PROGRAMS "${MITK_SOURCE_DIR}/CMake/RunInstalledApp.sh" DESTINATION "." RENAME CoreApp.sh) ENDIF() SET(MITK_CPACK_PACKAGE_EXECUTABLES ${MITK_CPACK_PACKAGE_EXECUTABLES} "CoreApp;MITK - CoreApp Application" CACHE INTERNAL "Collecting windows shortcuts to executables") diff --git a/Applications/ExtApp/CMakeLists.txt b/Applications/ExtApp/CMakeLists.txt index 224844c43a..cb642d3637 100644 --- a/Applications/ExtApp/CMakeLists.txt +++ b/Applications/ExtApp/CMakeLists.txt @@ -1,68 +1,66 @@ FIND_PACKAGE(BlueBerry REQUIRED) # TODO: this can be removed after resolving factory issues, it's only necessary for the registration call in main() MITK_USE_MODULE(MitkExt) INCLUDE(${QT_USE_FILE}) INCLUDE_DIRECTORIES( ${BLUEBERRY_PLUGIN_SOURCE_DIRS} ${org_blueberry_osgi_INCLUDE_DIRS} ${Poco_INCLUDE_DIRS} ${ALL_INCLUDE_DIRECTORIES} ) -LINK_DIRECTORIES(${Poco_LIBRARY_DIRS} - ${BLUEBERRY_PLUGINS_OUTPUT_DIR}/org.blueberry.osgi/bin - ) +LINK_DIRECTORIES(${Poco_LIBRARY_DIRS}) IF(MITK_SHOW_CONSOLE_WINDOW) ADD_EXECUTABLE(ExtApp MACOSX_BUNDLE ExtApp.cpp) ELSE(MITK_SHOW_CONSOLE_WINDOW) ADD_EXECUTABLE(ExtApp MACOSX_BUNDLE WIN32 ExtApp.cpp) ENDIF(MITK_SHOW_CONSOLE_WINDOW) IF (WIN32) FIND_PACKAGE(Qt4) TARGET_LINK_LIBRARIES(ExtApp ${QT_QTCORE_LIBRARY} ${QT_QTMAIN_LIBRARY}) ENDIF(WIN32) TARGET_LINK_LIBRARIES(ExtApp optimized PocoFoundation debug PocoFoundationd optimized PocoUtil debug PocoUtild org_blueberry_osgi ${ALL_LIBRARIES}) -SET_TARGET_PROPERTIES(ExtApp PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_RPATH};${CMAKE_INSTALL_RPATH}/BlueBerry/org.blueberry.osgi/bin") +SET_TARGET_PROPERTIES(ExtApp PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_RPATH};${CMAKE_INSTALL_RPATH}/plugins") SET(_plugin_deps ${BLUEBERRY_ENABLED_PLUGINS} ${MITK_EXT_ENABLED_PLUGINS} ${MITK_MODULES_ENABLED_PLUGINS} ) IF(_plugin_deps) # Make sure all enabled plug-ins are up to date ADD_DEPENDENCIES(ExtApp ${_plugin_deps}) ENDIF() SET(BLUEBERRY_PLUGIN_CACHE_DIR "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/plugin_cache") CONFIGURE_FILE(ExtApp.ini ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ExtApp.ini) IF(WIN32) FOREACH(EXTAPP_BUILD_TYPE debug release) mitkFunctionCreateWindowsBatchScript(startExtApp.bat.in ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/startExtApp_${EXTAPP_BUILD_TYPE}.bat ${EXTAPP_BUILD_TYPE}) ENDFOREACH() ENDIF(WIN32) MITK_INSTALL_TARGETS(EXECUTABLES ExtApp GLOB_PLUGINS ) mitkFunctionInstallProvisioningFiles(${BLUEBERRY_PLUGIN_PROVISIONING_FILE} ${MITK_EXTAPP_PROVISIONING_FILE}) IF(UNIX AND MITK_INSTALL_RPATH_RELATIVE AND NOT APPLE) INSTALL(PROGRAMS "${MITK_SOURCE_DIR}/CMake/RunInstalledApp.sh" DESTINATION "." RENAME ExtApp.sh) ENDIF() SET(MITK_CPACK_PACKAGE_EXECUTABLES ${MITK_CPACK_PACKAGE_EXECUTABLES} "ExtApp;MITK - ExtApp Application" CACHE INTERNAL "Collecting windows shortcuts to executables") diff --git a/BlueBerry/CMake/MacroInstallPlugin.cmake b/BlueBerry/CMake/MacroInstallPlugin.cmake index 7bc5d5cf38..4a2b84b372 100644 --- a/BlueBerry/CMake/MacroInstallPlugin.cmake +++ b/BlueBerry/CMake/MacroInstallPlugin.cmake @@ -1,75 +1,77 @@ # Install the given plug-in directory to the desintation directory # # MACRO_INSTALL_PLUGIN(plugindir [TARGETS target...] [DESTINATION dest_dir]) # MACRO(MACRO_INSTALL_PLUGIN _plugin_dir) MACRO_PARSE_ARGUMENTS(_INSTALL "TARGETS;DESTINATION" "" ${ARGN}) # Convert _plugin_dir into an absolute path IF(NOT IS_ABSOLUTE _plugin_dir) SET(_plugin_dir "${CMAKE_CURRENT_SOURCE_DIR}/${_plugin_dir}") ENDIF() # Check if target names have been specified IF(NOT _INSTALL_TARGETS) # no targets specified. get the main target from the plug-ins manifest MACRO_PARSE_MANIFEST("${_plugin_dir}/META-INF/MANIFEST.MF") STRING(REPLACE "." "_" _INSTALL_TARGETS ${BUNDLE-SYMBOLICNAME}) ENDIF() IF(NOT _INSTALL_DESTINATION) SET(_INSTALL_DESTINATION "bin/") ELSE() SET(_INSTALL_DESTINATION "${_INSTALL_DESTINATION}/") ENDIF() STRING(REGEX REPLACE ".*/(.+)/?$" "\\1" _toplevel_plugindir ${_plugin_dir}) SET(_plugin_install_dir "${_INSTALL_DESTINATION}${_toplevel_plugindir}") # Install the directory without shared libraries INSTALL(DIRECTORY ${_plugin_dir} DESTINATION ${_INSTALL_DESTINATION} CONFIGURATIONS Debug PATTERN "Release/*" EXCLUDE PATTERN "bin/*" EXCLUDE PATTERN "lib/*" EXCLUDE) INSTALL(DIRECTORY ${_plugin_dir} DESTINATION ${_INSTALL_DESTINATION} CONFIGURATIONS Release PATTERN "Debug/*" EXCLUDE PATTERN "bin/*" EXCLUDE PATTERN "lib/*" EXCLUDE) SET(_target_install_rpath ${CMAKE_INSTALL_RPATH}) FOREACH(_dep ${_plugin_dependencies}) SET(_linklib_path "${${_dep}_OUT_DIR}") - IF(BLUEBERRY_INSTALL_RPATH_RELATIVE) - #MESSAGE("replace ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} with \".\" in ${_linklib_path} ") - STRING(REPLACE "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" "." _linklib_path "${_linklib_path}") - ELSE() - STRING(REPLACE "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" "${CMAKE_INSTALL_PREFIX}/bin" _linklib_path "${_linklib_path}") + IF(_linklib_path) + IF(BLUEBERRY_INSTALL_RPATH_RELATIVE) + #MESSAGE("replace ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} with \".\" in ${_linklib_path} ") + STRING(REPLACE "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" "." _linklib_path "${_linklib_path}") + ELSE() + STRING(REPLACE "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" "${CMAKE_INSTALL_PREFIX}/bin" _linklib_path "${_linklib_path}") + ENDIF() + LIST(APPEND _target_install_rpath "${_linklib_path}/bin") ENDIF() - LIST(APPEND _target_install_rpath "${_linklib_path}/bin") ENDFOREACH() SET_TARGET_PROPERTIES(${_INSTALL_TARGETS} PROPERTIES INSTALL_RPATH "${_target_install_rpath}") FOREACH(_install_target ${_INSTALL_TARGETS}) GET_TARGET_PROPERTY(_is_imported ${_install_target} IMPORTED) IF(_is_imported) GET_TARGET_PROPERTY(_import_loc_debug ${_install_target} IMPORTED_LOCATION_DEBUG) GET_TARGET_PROPERTY(_import_loc_release ${_install_target} IMPORTED_LOCATION_RELEASE) INSTALL(FILES ${_import_loc_debug} DESTINATION ${_plugin_install_dir}/bin CONFIGURATIONS Debug) INSTALL(FILES ${_import_loc_release} DESTINATION ${_plugin_install_dir}/bin CONFIGURATIONS Release) ELSE() INSTALL(TARGETS ${_INSTALL_TARGETS} RUNTIME DESTINATION ${_plugin_install_dir}/bin LIBRARY DESTINATION ${_plugin_install_dir}/bin #ARCHIVE DESTINATION ${_plugin_install_dir}/bin ) ENDIF() ENDFOREACH() ENDMACRO()