From ebee8ff0a69dec6837207780d3d78c663678cd74 Mon Sep 17 00:00:00 2001 From: WerWolv Date: Sun, 30 Nov 2025 12:02:48 +0100 Subject: [PATCH] build: Include a launcher shell script with the executables Closes #2528 --- cmake/build_helpers.cmake | 44 ++++++++++++++++++++++++++++++++------- dist/cli/imhex.bat | 3 +++ dist/cli/imhex.sh | 5 +++++ 3 files changed, 45 insertions(+), 7 deletions(-) create mode 100644 dist/cli/imhex.bat create mode 100644 dist/cli/imhex.sh diff --git a/cmake/build_helpers.cmake b/cmake/build_helpers.cmake index c8f0cc5b9..150732ca2 100644 --- a/cmake/build_helpers.cmake +++ b/cmake/build_helpers.cmake @@ -333,19 +333,18 @@ macro(createPackage) downloadImHexPatternsFiles(".") elseif(UNIX AND NOT APPLE) - set_target_properties(libimhex PROPERTIES SOVERSION ${IMHEX_VERSION}) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/dist/DEBIAN/control.in ${CMAKE_BINARY_DIR}/DEBIAN/control) + configure_file(${IMHEX_BASE_FOLDER}/dist/DEBIAN/control.in ${CMAKE_BINARY_DIR}/DEBIAN/control) - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE DESTINATION ${CMAKE_INSTALL_PREFIX}/share/licenses/imhex) - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/dist/imhex.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications) - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/dist/imhex.mime.xml DESTINATION ${CMAKE_INSTALL_PREFIX}/share/mime/packages RENAME imhex.xml) - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/resources/icon.svg DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps RENAME imhex.svg) + install(FILES ${IMHEX_BASE_FOLDER}/LICENSE DESTINATION ${CMAKE_INSTALL_PREFIX}/share/licenses/imhex) + install(FILES ${IMHEX_BASE_FOLDER}/dist/imhex.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications) + install(FILES ${IMHEX_BASE_FOLDER}/dist/imhex.mime.xml DESTINATION ${CMAKE_INSTALL_PREFIX}/share/mime/packages RENAME imhex.xml) + install(FILES ${IMHEX_BASE_FOLDER}/resources/icon.svg DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps RENAME imhex.svg) downloadImHexPatternsFiles("./share/imhex") # install AppStream file - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/dist/net.werwolv.ImHex.metainfo.xml DESTINATION ${CMAKE_INSTALL_PREFIX}/share/metainfo) + install(FILES ${IMHEX_BASE_FOLDER}/dist/net.werwolv.ImHex.metainfo.xml DESTINATION ${CMAKE_INSTALL_PREFIX}/share/metainfo) endif() if (APPLE) @@ -369,6 +368,15 @@ macro(createPackage) install(FILES ${IMHEX_ICON} DESTINATION "${CMAKE_INSTALL_PREFIX}/${BUNDLE_NAME}/Contents/Resources") install(TARGETS main BUNDLE DESTINATION ".") install(TARGETS updater DESTINATION "${CMAKE_INSTALL_PREFIX}/${BUNDLE_NAME}/Contents/MacOS") + install( + FILES ${IMHEX_BASE_FOLDER}/dist/cli/imhex.sh + DESTINATION "${CMAKE_INSTALL_PREFIX}/${BUNDLE_NAME}/Contents/MacOS/cli" + RENAME imhex + PERMISSIONS + OWNER_READ OWNER_WRITE OWNER_EXECUTE + GROUP_READ GROUP_EXECUTE + WORLD_READ WORLD_EXECUTE + ) # Update library references to make the bundle portable postprocess_bundle(imhex_all main) @@ -399,6 +407,28 @@ macro(createPackage) if (TARGET main-forwarder) install(TARGETS main-forwarder BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR}) endif() + + if (WIN32) + install( + FILES ${IMHEX_BASE_FOLDER}/dist/cli/imhex.bat + DESTINATION ${CMAKE_INSTALL_BINDIR}/cli + RENAME imhex + PERMISSIONS + OWNER_READ OWNER_WRITE OWNER_EXECUTE + GROUP_READ GROUP_EXECUTE + WORLD_READ WORLD_EXECUTE + ) + else() + install( + FILES ${IMHEX_BASE_FOLDER}/dist/cli/imhex.sh + DESTINATION ${CMAKE_INSTALL_SBINDIR} + RENAME imhex + PERMISSIONS + OWNER_READ OWNER_WRITE OWNER_EXECUTE + GROUP_READ GROUP_EXECUTE + WORLD_READ WORLD_EXECUTE + ) + endif() endif() if (IMHEX_GENERATE_PACKAGE) diff --git a/dist/cli/imhex.bat b/dist/cli/imhex.bat new file mode 100644 index 000000000..26b629f6f --- /dev/null +++ b/dist/cli/imhex.bat @@ -0,0 +1,3 @@ +@echo off + +start "" "%~dp0..\imhex.exe" %* \ No newline at end of file diff --git a/dist/cli/imhex.sh b/dist/cli/imhex.sh new file mode 100644 index 000000000..42ecf528a --- /dev/null +++ b/dist/cli/imhex.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +script_path=$(readlink -f "$0") +script_dir=$(dirname "${script_path}") +"${script_dir}/../imhex" "$@" > /dev/null 2>&1 & \ No newline at end of file