diff --git a/CMakeLists.txt b/CMakeLists.txt index 9a0e73d36..14c07a503 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1071,30 +1071,57 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY ############################################################################ # installation ############################################################################ -file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/clonk.desktop DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) -file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/clonk.desktop "Path=${CMAKE_INSTALL_PREFIX}/share/${C4PROJECT_DOMAIN}") -file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/runclonk "#!/bin/sh\n") -file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/runclonk "cd ${CMAKE_INSTALL_PREFIX}/share/${C4PROJECT_DOMAIN}\n") -file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/runclonk "clonk $*") +# Install the icon into share/icons/hicolor/48x48/apps/clonk.png. Do this by +# extracting the correct size from oc.ico. Currently this is layer 2 - let's +# hope that it stays this way. +# TODO: Check for convert at configure step? +install(CODE " +EXECUTE_PROCESS(COMMAND \"convert\" \"${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc.ico[2]\" \"${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/48x48/apps/clonk.png\" RESULT_VARIABLE CONVERT_RESULT) +IF(NOT \${CONVERT_RESULT} EQUAL 0) + MESSAGE(SEND_ERROR \"Creating icon failed\") +ENDIF() +") -install(DIRECTORY share/ DESTINATION share/) -install(DIRECTORY planet/ DESTINATION share/${C4PROJECT_DOMAIN}/) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/clonk.desktop DESTINATION share/applications) +# Remove previously installed data files +FILE(GLOB OC_INSTALLED_DATA_FILES "${CMAKE_INSTALL_PREFIX}/share/openclonk/*.c4?") +install(CODE " +FOREACH(CURRENT_FILE ${OC_INSTALLED_DATA_FILES}) + FILE(REMOVE \${CURRENT_FILE}) +ENDFOREACH() +") -install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/clonk ${CMAKE_CURRENT_BINARY_DIR}/c4group ${CMAKE_CURRENT_BINARY_DIR}/runclonk DESTINATION bin/) +# Install new files +FILE(GLOB OC_DATA_FILES "${CMAKE_CURRENT_SOURCE_DIR}/planet/*.c4?") +install(DIRECTORY ${OC_DATA_FILES} DESTINATION share/openclonk) +install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/clonk.desktop DESTINATION share/applications) + +# Pack them +install(CODE " +FOREACH(CURRENT_FILE ${OC_DATA_FILES}) + GET_FILENAME_COMPONENT(CURRENT_FILENAME \"\${CURRENT_FILE}\" NAME) + MESSAGE(\"Packing \${CURRENT_FILENAME}...\") + EXECUTE_PROCESS(COMMAND \"${CMAKE_CURRENT_BINARY_DIR}/c4group\" \"${CMAKE_INSTALL_PREFIX}/share/openclonk/\${CURRENT_FILENAME}\" \"-p\" RESULT_VARIABLE C4GROUP_RESULT) + IF(NOT \${C4GROUP_RESULT} EQUAL 0) + MESSAGE(SEND_ERROR \"Packing ${CURRENT_FILENAME} failed\") + ENDIF() +ENDFOREACH() +") + +# Install binaries +install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/clonk ${CMAKE_CURRENT_BINARY_DIR}/c4group DESTINATION bin/) ############################################################################ # CPack support ############################################################################ -set(CPACK_PACKAGE_NAME "${C4PROJECT_DOMAIN}") +set(CPACK_PACKAGE_NAME "openclonk") set(CPACK_PACKAGE_VENDOR "${C4PROJECT_URL}") -set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "OpenClonk - An game mix out of tactic, strategy and JnR") +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "OpenClonk - A game mix out of tactic, strategy and Jump & Run") set(CPACK_PACKAGE_VERSION "${C4XVER1}.${C4XVER2}.${C4XVER3}") set(CPACK_PACKAGE_VERSION_MAJOR "${C4XVER1}") set(CPACK_PACKAGE_VERSION_MINOR "${C4XVER2}") -set(CPACK_PACKAGE_VERSION_PATCH "r${C4REVISION}") -set(CPACK_PACKAGE_FILE_NAME "openclonk${C4XVER1}.${C4XVER2}.${C4XVER3}") +set(CPACK_PACKAGE_VERSION_PATCH "${C4XVER3}") +set(CPACK_PACKAGE_FILE_NAME "openclonk-${C4XVER1}.${C4XVER2}.${C4XVER3}") set(CPACK_SOURCE_PACKAGE_FILE_NAME "openclonk-src-${C4XVER1}.${C4XVER2}.${C4XVER3}") set(CPACK_SOURCE_GENERATOR "TGZ;ZIP") # Somebody who uses Debian/Ubuntu should set this @@ -1102,4 +1129,4 @@ set(CPACK_SOURCE_GENERATOR "TGZ;ZIP") set(CPACK_RPM_PACKAGE_LICENSE "MIT") set(CPACK_RPM_PACKAGE_REQUIRES "libc6, libgcc1, libx11, libXrandr, libXpm, libGLEW, libGL, libpng, libssl, libSDL-1.2, libSDL_mixer-1.2, gtk2, libjpeg, zlib") -include(CPack) \ No newline at end of file +include(CPack) diff --git a/clonk.desktop b/clonk.desktop index 3543b6596..71ca23ba7 100644 --- a/clonk.desktop +++ b/clonk.desktop @@ -3,7 +3,7 @@ Type=Application Name=OpenClonk Comment=An action-packed game of strategy, tactics, and skill. Comment[de]=Ein actiongeladenes Taktikspiel. -GenericName=A multiplayer-action-tactic-skill game +GenericName=Multiplayer action, tactics and skill game Icon=clonk Exec=clonk Categories=Game;ActionGame; diff --git a/share/icons/hicolor/192x192/apps/clonk.png b/share/icons/hicolor/192x192/apps/clonk.png deleted file mode 100644 index 45a7e5279..000000000 Binary files a/share/icons/hicolor/192x192/apps/clonk.png and /dev/null differ diff --git a/share/icons/hicolor/48x48/apps/clonk.png b/share/icons/hicolor/48x48/apps/clonk.png deleted file mode 100644 index d10ec1636..000000000 Binary files a/share/icons/hicolor/48x48/apps/clonk.png and /dev/null differ diff --git a/share/icons/hicolor/96x96/apps/clonk.png b/share/icons/hicolor/96x96/apps/clonk.png deleted file mode 100644 index 4381ecb71..000000000 Binary files a/share/icons/hicolor/96x96/apps/clonk.png and /dev/null differ