Fix up RPATH issues for bundling

This commit is contained in:
Petr Mrázek 2023-05-25 14:52:39 +02:00
parent 9fe877be50
commit 9a3bfac870
2 changed files with 15 additions and 7 deletions

View File

@ -150,9 +150,6 @@ elseif(UNIX)
set(BUNDLE_DEST_DIR ".")
# Set RPATH
SET(Launcher_BINARY_RPATH "$ORIGIN/")
# Install basic runner script
configure_file(launcher/Launcher.in "${CMAKE_CURRENT_BINARY_DIR}/LauncherScript" @ONLY)
install(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/LauncherScript" DESTINATION ${BUNDLE_DEST_DIR} RENAME ${Launcher_Name})

View File

@ -944,11 +944,22 @@ target_link_libraries(Launcher_logic secrets)
add_executable(${Launcher_Name} MACOSX_BUNDLE WIN32 main.cpp ${LAUNCHER_RCS})
target_link_libraries(${Launcher_Name} Launcher_logic)
if(DEFINED Launcher_APP_BINARY_NAME)
set_target_properties(${Launcher_Name} PROPERTIES OUTPUT_NAME "${Launcher_APP_BINARY_NAME}")
if (MSVC)
set_target_properties(${Launcher_Name} PROPERTIES
WIN32_EXECUTABLE YES
LINK_FLAGS "/ENTRY:mainCRTStartup /MANIFEST:NO"
)
endif()
if(DEFINED Launcher_BINARY_RPATH)
SET_TARGET_PROPERTIES(${Launcher_Name} PROPERTIES INSTALL_RPATH "${Launcher_BINARY_RPATH}")
# NOTE fix up rpath so the macOS loader finds the frameworks
if (APPLE)
set_target_properties(${Launcher_Name} PROPERTIES
INSTALL_RPATH "@executable_path/../Frameworks"
)
elseif(UNIX)
set_target_properties(${Launcher_Name} PROPERTIES
INSTALL_RPATH "$ORIGIN/"
)
endif()
if(DEFINED Launcher_APP_BINARY_DEFS)