diff --git a/.gitignore b/.gitignore index fe936aa2d..1e3f00478 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ reccmp-user.yml reccmp-build.yml reccmp-report* +/.cache +CMakeUserPresets.json diff --git a/CMakeLists.txt b/CMakeLists.txt index 9f9a62cab..a6f190e41 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -171,46 +171,5 @@ if(BUILD_TESTS) endif() if(DETHRACE_INSTALL) - install(FILES LICENSE - DESTINATION "${CMAKE_INSTALL_DOCDIR}" - ) - - set(DETHRACE_PACKAGE_PLATFORM "" CACHE STRING "Dethrace binary package platform") - set(DETHRACE_PACKAGE_ARCH "" CACHE STRING "Dethrace binary package architecture") - - if(NOT DETHRACE_PACKAGE_PLATFORM) - set(DETHRACE_PACKAGE_PLATFORM "${CMAKE_SYSTEM_NAME}") - endif() - - string(TOLOWER "${DETHRACE_PACKAGE_PLATFORM}" DETHRACE_PACKAGE_PLATFORM) - string(TOLOWER "${DETHRACE_PACKAGE_ARCH}" DETHRACE_PACKAGE_ARCH) - - set(CPACK_PACKAGE_NAME "dethrace") - set(CPACK_SYSTEM_NAME "${DETHRACE_PACKAGE_PLATFORM}") - - set(CPACK_PACKAGE_FILE_NAME "dethrace-${DETHRACE_VERSION}-${DETHRACE_PACKAGE_PLATFORM}") - - if(DETHRACE_PACKAGE_ARCH) - string(APPEND CPACK_PACKAGE_FILE_NAME "-${DETHRACE_PACKAGE_ARCH}") - endif() - - set(CPACK_PACKAGE_DIRECTORY dist) - - if(APPLE) - set(CPACK_DMG_DISABLE_APPLICATIONS_SYMLINK "ON") - set(CPACK_GENERATOR "DragNDrop") - set(ext ".dmg") - elseif(MSVC) - set(CPACK_GENERATOR ZIP) - set(ext ".zip") - else() - set(CPACK_GENERATOR TGZ) - set(ext ".tar.gz") - endif() - - if(EXISTS "$ENV{GITHUB_OUTPUT}") - file(APPEND "$ENV{GITHUB_OUTPUT}" "filename=${CPACK_PACKAGE_FILE_NAME}${ext}") - endif() - - include(CPack) + include(InstallConfig) endif() diff --git a/cmake/InstallConfig.cmake b/cmake/InstallConfig.cmake new file mode 100644 index 000000000..b0dee27f0 --- /dev/null +++ b/cmake/InstallConfig.cmake @@ -0,0 +1,63 @@ +install(FILES LICENSE + DESTINATION "${CMAKE_INSTALL_DOCDIR}" +) + +set(DETHRACE_PACKAGE_PLATFORM "" CACHE STRING "Dethrace binary package platform") +set(DETHRACE_PACKAGE_ARCH "" CACHE STRING "Dethrace binary package architecture") + +if(NOT DETHRACE_PACKAGE_PLATFORM) + set(DETHRACE_PACKAGE_PLATFORM "${CMAKE_SYSTEM_NAME}") +endif() + +string(TOLOWER "${DETHRACE_PACKAGE_PLATFORM}" DETHRACE_PACKAGE_PLATFORM) +string(TOLOWER "${DETHRACE_PACKAGE_ARCH}" DETHRACE_PACKAGE_ARCH) + +set(CPACK_PACKAGE_NAME "dethrace") +set(CPACK_SYSTEM_NAME "${DETHRACE_PACKAGE_PLATFORM}") + +set(CPACK_PACKAGE_FILE_NAME "dethrace-${DETHRACE_VERSION}-${DETHRACE_PACKAGE_PLATFORM}") + +if(DETHRACE_PACKAGE_ARCH) + string(APPEND CPACK_PACKAGE_FILE_NAME "-${DETHRACE_PACKAGE_ARCH}") +endif() + +set(CPACK_PACKAGE_DIRECTORY dist) + +if(NOT CPACK_GENERATOR) + if(APPLE) + set(CPACK_DMG_DISABLE_APPLICATIONS_SYMLINK "ON") + set(CPACK_GENERATOR "DragNDrop") + set(ext ".dmg") + elseif(MSVC) + set(CPACK_GENERATOR ZIP) + set(ext ".zip") + else() + set(CPACK_GENERATOR "TGZ") + set(ext ".tar.gz") + endif() +endif() + +set(CPACK_STRIP_FILES TRUE) + +set(CPACK_DEBIAN_FILE_NAME "dethrace_${DETHRACE_VERSION}") +if(DETHRACE_PACKAGE_ARCH) + string(APPEND CPACK_DEBIAN_FILE_NAME "_${DETHRACE_PACKAGE_ARCH}") +endif() +set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Dethrace-Labs") +set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "3D Racing/Destruction Derby") +set(CPACK_DEBIAN_PACKAGE_SECTION "games") +set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${TARGET_ARCH}) +set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + +set(CPACK_RPM_FILE_NAME "dethrace-${DETHRACE_VERSION}") +if(DETHRACE_PACKAGE_ARCH) + string(APPEND CPACK_RPM_FILE_NAME ".${DETHRACE_PACKAGE_ARCH}") +endif() +set(CPACK_RPM_PACKAGE_LICENSE "GPLv3") +set(CPACK_RPM_PACKAGE_VENDOR "Dethrace-Labs") + +if(EXISTS "$ENV{GITHUB_OUTPUT}") + file(APPEND "$ENV{GITHUB_OUTPUT}" "filename=${CPACK_PACKAGE_FILE_NAME}${ext}") +endif() + +include(CPack) \ No newline at end of file diff --git a/src/DETHRACE/CMakeLists.txt b/src/DETHRACE/CMakeLists.txt index 2ce543a40..2f11d328a 100644 --- a/src/DETHRACE/CMakeLists.txt +++ b/src/DETHRACE/CMakeLists.txt @@ -234,10 +234,14 @@ if(DETHRACE_IDE_ARGUMENTS) endif() if(DETHRACE_INSTALL) - install(TARGETS dethrace - BUNDLE DESTINATION . COMPONENT Runtime - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT Runtime - ) + if(CMAKE_SYSTEM_NAME MATCHES "Linux" AND DETHRACE_USE_LSB_GAMES) + install(TARGETS dethrace RUNTIME DESTINATION games) + else() + install(TARGETS dethrace + BUNDLE DESTINATION . COMPONENT Runtime + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT Runtime + ) + endif() if(APPLE) set_target_properties(dethrace PROPERTIES