From 60cdd2fd7e54eed52bce599f5442c8ba1074c308 Mon Sep 17 00:00:00 2001 From: Joey Riches Date: Mon, 23 Dec 2024 19:14:45 +0000 Subject: [PATCH] launcher/CMake: Add symlink to bin on Linux So it's available in $PATH Since CMAKE_INSTALL_BINDIR is overridden to CMAKE_INSTALL_LIBDIR on Linux, hardcode the bin directory as it's universal. We also have to do a weird dance of a temporary .link file in the build dir to get this to work correctly for distribution packaging purposes. See https://github.com/zeek/cmake/blob/master/InstallSymlink.cmake#L24 --- code/Launcher/CMakeLists.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/code/Launcher/CMakeLists.txt b/code/Launcher/CMakeLists.txt index 133435ffd..4948a19b7 100644 --- a/code/Launcher/CMakeLists.txt +++ b/code/Launcher/CMakeLists.txt @@ -22,6 +22,19 @@ function (create_launcher name type) set_target_properties(openmohaa_launcher_${name} PROPERTIES OUTPUT_NAME "launch_openmohaa_${name}${TARGET_BIN_SUFFIX}") INSTALL(TARGETS openmohaa_launcher_${name} DESTINATION ${CMAKE_INSTALL_BINDIR}/${BIN_INSTALL_SUBDIR}) + + # Symlink launchers to $PATH + if(CMAKE_SYSTEM_NAME STREQUAL "Linux") + INSTALL(CODE "execute_process( \ + COMMAND ${CMAKE_COMMAND} -E create_symlink \ + ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}/${BIN_INSTALL_SUBDIR}/launch_openmohaa_${name}${TARGET_BIN_SUFFIX} \ + ${CMAKE_CURRENT_BINARY_DIR}/openmohaa_launcher_${name}.link \ + )") + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/openmohaa_launcher_${name}.link DESTINATION ${CMAKE_INSTALL_PREFIX}/bin + RENAME launch_openmohaa_${name}${TARGET_BIN_SUFFIX}) + install(CODE "file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/openmohaa_launcher_${name}.link)") + endif() + endif() #add_executable(omohaaded_launcher_${name} ${LAUNCHER_SOURCES})