From 74ac3adf128156126c8d88094be405852834259a Mon Sep 17 00:00:00 2001 From: jstefanelli Date: Thu, 23 Oct 2025 21:26:29 +0200 Subject: [PATCH 1/2] Add AppImage generation support In Startup.cpp, disable name checking if running from inside AppImage Added AppImage.cmake to generate AppDir and AppImage Includes icon (required for AppImage) --- AppImage.cmake | 62 ++++++++++++++++++++++++++++++++++++++++ CMakeLists.txt | 2 ++ beammp-launcher.desktop | 9 ++++++ beammp.png | Bin 0 -> 14476 bytes src/Startup.cpp | 4 +++ 5 files changed, 77 insertions(+) create mode 100644 AppImage.cmake create mode 100644 beammp-launcher.desktop create mode 100644 beammp.png diff --git a/AppImage.cmake b/AppImage.cmake new file mode 100644 index 00000000..9986e037 --- /dev/null +++ b/AppImage.cmake @@ -0,0 +1,62 @@ +find_program(APPIMAGETOOL_PATH appimagetool OPTIONAL) + +if (NOT APPIMAGETOOL_PATH) + function(generate_appimage TARGET DESKTOP ICON) + message("appimagetool was not found. Skipping AppImage generation") + endfunction() +else() + function(generate_appimage TARGET NAME DESKTOP ICON) + cmake_path(GET ICON FILENAME ICON_FILENAME) + cmake_path(GET DESKTOP FILENAME DESKTOP_FILENAME) + cmake_path(GET ICON STEM ICON_FILENAME_NOEXT) + + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/appdir/usr/bin/${NAME} + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/appdir/usr/bin + COMMAND ${CMAKE_COMMAND} -E copy $ ${CMAKE_CURRENT_BINARY_DIR}/appdir/usr/bin/${NAME} + DEPENDS ${TARGET}) + + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/appdir/usr/share/icons/hicolor/256x256/apps/${ICON_FILENAME} + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/appdir/usr/share/icons/hicolor/256x256 + COMMAND ${CMAKE_COMMAND} -E copy ${ICON} ${CMAKE_CURRENT_BINARY_DIR}/appdir/usr/share/icons/hicolor/256x256/apps/${ICON_FILENAME} + DEPENDS ${ICON}) + + configure_file(${DESKTOP} ${CMAKE_CURRENT_BINARY_DIR}/appdir/usr/share/applications/${DESKTOP_FILENAME}) + + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/appdir/.DirIcon + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/appdir + COMMAND ${CMAKE_COMMAND} -E copy usr/share/icons/hicolor/256x256/apps/${ICON_FILENAME} .DirIcon + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/appdir + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/appdir/usr/share/icons/hicolor/256x256/apps/${ICON_FILENAME}) + + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/appdir/AppRun + COMMAND ${CMAKE_COMMAND} -E create_symlink usr/bin/${NAME} AppRun + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/appdir + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/appdir/usr/bin/${NAME}) + + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/appdir/${ICON_FILENAME} + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/appdir + COMMAND ${CMAKE_COMMAND} -E copy usr/share/icons/hicolor/256x256/apps/${ICON_FILENAME} ${ICON_FILENAME} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/appdir + DEPENDS ${ICON}) + + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/appdir/${DESKTOP_FILENAME} + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/appdir + COMMAND ${CMAKE_COMMAND} -E create_symlink usr/share/applications/${DESKTOP_FILENAME} ${DESKTOP_FILENAME} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/appdir + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/appdir/usr/share/applications/${DESKTOP_FILENAME}) + + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.AppImage + COMMAND ${APPIMAGETOOL_PATH} ${CMAKE_CURRENT_BINARY_DIR}/appdir ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.AppImage + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/appdir/usr/bin/${NAME} + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/appdir/usr/share/icons/hicolor/256x256/apps/${ICON_FILENAME} + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/appdir/usr/share/applications/${DESKTOP_FILENAME} + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/appdir/.DirIcon + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/appdir/AppRun + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/appdir/${ICON_FILENAME} + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/appdir/${DESKTOP_FILENAME} + ) + + add_custom_target(${TARGET}_AppImage + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.AppImage) + endfunction() +endif() diff --git a/CMakeLists.txt b/CMakeLists.txt index 67e666ef..0c46a71d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -32,6 +32,8 @@ elseif (UNIX) find_package(OpenSSL REQUIRED) target_link_libraries(${PROJECT_NAME} PRIVATE ZLIB::ZLIB OpenSSL::SSL OpenSSL::Crypto CURL::libcurl) + include(AppImage.cmake) + generate_appimage(${PROJECT_NAME} "beammp-launcher" ${CMAKE_CURRENT_SOURCE_DIR}/beammp-launcher.desktop ${CMAKE_CURRENT_SOURCE_DIR}/beammp.png) else(WIN32) #MINGW add_definitions("-D_WIN32_WINNT=0x0600") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Os -s --static") diff --git a/beammp-launcher.desktop b/beammp-launcher.desktop new file mode 100644 index 00000000..9c6c0788 --- /dev/null +++ b/beammp-launcher.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Version=1.0 +Type=Application +Name=BeamMP Launcher +Icon=@ICON_FILENAME_NOEXT@ +TryExec=@NAME@ +Exec=@NAME@ +Categories=Game +Terminal=true diff --git a/beammp.png b/beammp.png new file mode 100644 index 0000000000000000000000000000000000000000..d4913fa3e6e3574f3071700a30daa4f3fb0701c9 GIT binary patch literal 14476 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 literal 0 HcmV?d00001 diff --git a/src/Startup.cpp b/src/Startup.cpp index abc3a8fa..414e3627 100644 --- a/src/Startup.cpp +++ b/src/Startup.cpp @@ -183,6 +183,10 @@ void CheckName() { std::wstring DN = GetEN(), CDir = Utils::ToWString(options.executable_name), FN = CDir.substr(CDir.find_last_of('\\') + 1); #elif defined(__linux__) std::string DN = GetEN(), CDir = options.executable_name, FN = CDir.substr(CDir.find_last_of('/') + 1); + if (DN.find_last_of(".AppImage") != std::string::npos) { + warn("Looks like launcher is an AppImage. Skipping name check"); + return; + } #endif if (FN != DN) { if (fs::exists(DN)) From d29114d799a4e5cae2c0559584c84970bc15c211 Mon Sep 17 00:00:00 2001 From: jstefanelli Date: Mon, 27 Oct 2025 10:26:44 +0100 Subject: [PATCH 2/2] Update AppImage icon --- beammp.png | Bin 14476 -> 18606 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/beammp.png b/beammp.png index d4913fa3e6e3574f3071700a30daa4f3fb0701c9..b0efa927ee6d2347a1e6c94cfe936262a7e0fe58 100644 GIT binary patch literal 18606 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 literal 14476 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