diff --git a/Base/CMakeLists.txt b/Base/CMakeLists.txt index 1c3f055..503ac5f 100644 --- a/Base/CMakeLists.txt +++ b/Base/CMakeLists.txt @@ -48,10 +48,13 @@ ctkMacroBuildLib( MOC_SRCS ${KIT_MOC_SRCS} TARGET_LIBRARIES ${KIT_target_libraries} RESOURCES ${KIT_resources} - LIBRARY_TYPE "STATIC" + LIBRARY_TYPE "SHARED" + EXPORT_DIRECTIVE ${PROJECT_NAME}Targets LABEL ctkAppLauncher ) +set_target_properties(CTKAppLauncherLib PROPERTIES VERSION 0 SOVERSION 0) + # Export targets for build tree set_property(GLOBAL APPEND PROPERTY CTKAppLauncherLib_TARGETS CTKAppLauncherLib) @@ -102,10 +105,19 @@ ctkMacroBuildLib( MOC_SRCS ${KIT_MOC_SRCS} TARGET_LIBRARIES ${KIT_target_libraries} RESOURCES ${KIT_resources} - LIBRARY_TYPE "STATIC" + LIBRARY_TYPE "SHARED" + EXPORT_DIRECTIVE ${PROJECT_NAME}Targets LABEL ctkAppLauncher ) +set_target_properties(${PROJECT_NAME} PROPERTIES VERSION 0 SOVERSION 0) + + install(TARGETS ${PROJECT_NAME} + EXPORT CTKAppLauncherLibTargets + RUNTIME DESTINATION ${CTK_INSTALL_BIN_DIR} COMPONENT Runtime + LIBRARY DESTINATION ${CTK_INSTALL_LIB_DIR} COMPONENT Runtime + ARCHIVE DESTINATION ${CTK_INSTALL_LIB_DIR} COMPONENT Development) + # Install rules if(CTKAppLauncher_INSTALL_DEVELOPMENT) install( diff --git a/Base/ctkAppLauncher.cpp b/Base/ctkAppLauncher.cpp index 76c6be1..635ecc8 100644 --- a/Base/ctkAppLauncher.cpp +++ b/Base/ctkAppLauncher.cpp @@ -453,13 +453,6 @@ bool ctkAppLauncherPrivate::extractLauncherNameAndDir(const QString& application } } - // Follow symlink if it applies - if (fileInfo.isSymLink()) - { - // symLinkTarget() handles links pointing to symlinks. - fileInfo = QFileInfo(fileInfo.symLinkTarget()); - } - // Make sure the obtained target exists and is a "file" if (!fileInfo.exists() && !fileInfo.isFile()) { @@ -546,9 +539,12 @@ void ctkAppLauncherPrivate::buildEnvironment(QProcessEnvironment &env) } #if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)) + auto copy_envvarsKeys = q->envVars().keys(); + auto copy_pathsEnvVarsKeys = q->pathsEnvVars().keys(); + QSet variables = - QSet (q->envVars().keys().begin(), q->envVars().keys().end()) + - QSet (q->pathsEnvVars().keys().begin(), q->pathsEnvVars().keys().end()) + + QSet (copy_envvarsKeys.begin(), copy_envvarsKeys.end()) + + QSet (copy_pathsEnvVarsKeys.begin(), copy_pathsEnvVarsKeys.end()) + QSet (this->SystemEnvironmentKeys.begin(), this->SystemEnvironmentKeys.end()); #else QSet variables = diff --git a/CMake/ctkAppLauncher.cmake b/CMake/ctkAppLauncher.cmake index 33c89a9..a9573b3 100644 --- a/CMake/ctkAppLauncher.cmake +++ b/CMake/ctkAppLauncher.cmake @@ -250,14 +250,14 @@ function(ctkAppLauncherConfigure) # If CTKAppLauncher_DIR is set, try to autodiscover the location of launcher executable and settings template file if(EXISTS "${CTKAppLauncher_DIR}") - set(CTKAPPLAUNCHER_SEARCH_PATHS ${CTKAppLauncher_DIR}/${CTK_INSTALL_BIN_DIR}) + set(CTKAPPLAUNCHER_SEARCH_PATHS ${CTKAppLauncher_DIR}) foreach(type ${CTKAPPLAUNCHER_BUILD_CONFIGURATIONS}) - list(APPEND CTKAPPLAUNCHER_SEARCH_PATHS ${CTKAppLauncher_DIR}/${CTK_INSTALL_BIN_DIR}/${type}) + list(APPEND CTKAPPLAUNCHER_SEARCH_PATHS ${CTKAppLauncher_DIR}/${type}) endforeach() unset(CTKAppLauncher_EXECUTABLE CACHE) find_program(CTKAppLauncher_EXECUTABLE CTKAppLauncher PATHS ${CTKAPPLAUNCHER_SEARCH_PATHS} NO_DEFAULT_PATH) unset(CTKAppLauncher_SETTINGS_TEMPLATE CACHE) - find_file(CTKAppLauncher_SETTINGS_TEMPLATE CTKAppLauncherSettings.ini.in PATHS ${CTKAppLauncher_DIR}/${CTK_INSTALL_BIN_DIR} NO_DEFAULT_PATH) + find_file(CTKAppLauncher_SETTINGS_TEMPLATE CTKAppLauncherSettings.ini.in PATHS ${CTKAppLauncher_DIR} NO_DEFAULT_PATH) endif() endif() @@ -621,7 +621,7 @@ function(ctk_applauncher_configure) set(cfg_intdir ".") endif() - set(copy_command ${CMAKE_COMMAND} -E copy + set(copy_command ${CMAKE_COMMAND} -E create_symlink ${CTKAppLauncher_EXECUTABLE} ${configured_launcher_executable} ) @@ -631,11 +631,11 @@ function(ctk_applauncher_configure) -DINSTALL_SETTINGS_CONFIGURATION_FILEPATH:FILEPATH=${INSTALL_SETTINGS_CONFIGURATION_FILEPATH} -DINSTALL_SETTINGS_FILEPATH:FILEPATH=${configured_launcher_settings_to_install} -DTARGET_SUBDIR:STRING=${cfg_intdir} - -P ${CTKAppLauncher_DIR}/${CTK_INSTALL_CMAKE_DIR}/ctkAppLauncher-configure.cmake + -P ${CTKAppLauncher_DIR}/ctkAppLauncher-configure.cmake ) set(commands_depends ${CTKAppLauncher_EXECUTABLE} - ${CTKAppLauncher_DIR}/${CTK_INSTALL_CMAKE_DIR}/ctkAppLauncher-configure.cmake + ${CTKAppLauncher_DIR}/ctkAppLauncher-configure.cmake ${BUILD_SETTINGS_CONFIGURATION_FILEPATH} ${INSTALL_SETTINGS_CONFIGURATION_FILEPATH} ) diff --git a/CMake/ctkMacroBuildLib.cmake b/CMake/ctkMacroBuildLib.cmake index a8d5093..20a58f5 100644 --- a/CMake/ctkMacroBuildLib.cmake +++ b/CMake/ctkMacroBuildLib.cmake @@ -68,7 +68,7 @@ macro(ctkMacroBuildLib) set(MY_LIBNAME ${lib_name}) configure_file( - ${CTK_SOURCE_DIR}/Libs/CTKExport.h.in + ${CMAKE_SOURCE_DIR}/Libs/CTKExport.h.in ${CMAKE_CURRENT_BINARY_DIR}/${MY_EXPORT_HEADER_PREFIX}Export.h ) set(dynamicHeaders diff --git a/CMakeLists.txt b/CMakeLists.txt index 409231b..8522a64 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -358,7 +358,7 @@ install(FILES install(FILES CTKAppLauncherSettings.ini.in - DESTINATION ${CTK_INSTALL_BIN_DIR} COMPONENT Development) + DESTINATION ${CTK_INSTALL_CMAKE_DIR} COMPONENT Development) #----------------------------------------------------------------------------- # Configure CTKAppLauncherLibConfig @@ -449,7 +449,7 @@ configure_package_config_file( set(BIN_DIR_CONFIG ${CTK_INSTALL_BIN_DIR}) set(CMAKE_DIR_CONFIG ${CTK_INSTALL_CMAKE_DIR}) set(CONFIG_DIR_CONFIG ${CTK_INSTALL_CONFIG_DIR}) -set(SETTINGS_TEMPLATE_CONFIG "${CTK_INSTALL_BIN_DIR}/CTKAppLauncherSettings.ini.in") +set(SETTINGS_TEMPLATE_CONFIG "${CTK_INSTALL_CMAKE_DIR}/CTKAppLauncherSettings.ini.in") set(CTKAppLauncher_CONFIG_CODE "####### Expanded from \@CTKAppLauncher_CONFIG_CODE\@ #######\n") set(CTKAppLauncher_CONFIG_CODE "${CTKAppLauncher_CONFIG_CODE}set(CTKAppLauncher_BIN_ADDITIONAL_PATHS \"\")\n") set(CTKAppLauncher_CONFIG_CODE "${CTKAppLauncher_CONFIG_CODE}##################################################")