diff --git a/CMakeLists.txt b/CMakeLists.txt index 21d86214..cf7db5cc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,7 +78,7 @@ else() endif() endif() -## Compiler flags +## Compiler flags, CPACK configuration and other Apple specific code. IF(APPLE) SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++") include(${PROJECT_SOURCE_DIR}/mk/macosx/CMakeLists.txt) @@ -381,6 +381,19 @@ IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") MESSAGE(WARNING ">> CLANG is NOT currently compatible as it does not support the following essential GCC compiler settings: -frounding-math -fsignaling-nans") ENDIF() +# CPack configuration shared accross platforms +SET(CPACK_PACKAGE_NAME ${PKG_NAME}) +SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "MegaGlest") +SET(CPACK_PACKAGE_VENDOR "megaglest.org") +#SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README") +#SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING") +SET(CPACK_PACKAGE_INSTALL_DIRECTORY "megaglest") +SET(CPACK_PACKAGE_VERSION_MAJOR ${VER_MAJOR}) +SET(CPACK_PACKAGE_VERSION_MINOR ${VER_MINOR}) +SET(CPACK_PACKAGE_VERSION_PATCH ${VER_RELEASE}) + + +# Debian specific generator options IF(NOT DEFINED CPACK_GENERATOR) SET(CPACK_GENERATOR "DEB") SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Mark Vejvoda") #required @@ -413,23 +426,15 @@ IF(NOT DEFINED CPACK_GENERATOR) # OUTPUT_STRIP_TRAILING_WHITESPACE # ) #endif(DPKG_PROGRAM) - - SET(CPACK_PACKAGE_NAME ${PKG_NAME}) - SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "MegaGlest") - SET(CPACK_PACKAGE_VENDOR "megaglest.org") - #SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README") - #SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING") - SET(CPACK_PACKAGE_INSTALL_DIRECTORY "megaglest") - SET(CPACK_PACKAGE_VERSION_MAJOR ${VER_MAJOR}) - SET(CPACK_PACKAGE_VERSION_MINOR ${VER_MINOR}) - SET(CPACK_PACKAGE_VERSION_PATCH ${VER_RELEASE}) - IF(WIN32) - SET(CPACK_NSIS_DISPLAY_NAME "MegaGlest") - SET(CPACK_NSIS_MUI_ICON "${PROJECT_SOURCE_DIR}/mk/windoze/glest.ico") - SET(CPACK_PACKAGE_ICON "${PROJECT_SOURCE_DIR}/mk/windoze/megaglest.ico") - SET(CPACK_NSIS_URL_INFO_ABOUT "http://megaglest.org") - ENDIF() ENDIF(NOT DEFINED CPACK_GENERATOR) + +IF(CPACK_GENERATOR STREQUAL "NSIS") + SET(CPACK_NSIS_DISPLAY_NAME "MegaGlest") + SET(CPACK_NSIS_MUI_ICON "${PROJECT_SOURCE_DIR}/mk/windoze/glest.ico") + SET(CPACK_PACKAGE_ICON "${PROJECT_SOURCE_DIR}/mk/windoze/megaglest.ico") + SET(CPACK_NSIS_URL_INFO_ABOUT "http://megaglest.org") +ENDIF(CPACK_GENERATOR STREQUAL "NSIS") + INCLUDE(CPack) get_directory_property( DirDefs DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITIONS ) diff --git a/mk/macosx/CMakeLists.txt b/mk/macosx/CMakeLists.txt index 7660b1d8..cecf5f9b 100644 --- a/mk/macosx/CMakeLists.txt +++ b/mk/macosx/CMakeLists.txt @@ -31,22 +31,28 @@ LINK_DIRECTORIES(/opt/local/lib) ##install part -set(CPACK_PACKAGE_FILE_NAME MegaGlest-${MG_VERSION_H_CONTENTS}) - -CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/Info.plist" "${CMAKE_CURRENT_BINARY_DIR}/Info.plist") - +# This changes Info.plist from something with variables and CMakeisms to +# something that can be installed on disk. +CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/Info.plist" + "${CMAKE_CURRENT_BINARY_DIR}/Info.plist") include (InstallRequiredSystemLibraries) +# Use bundle generator (OSX has 3 other options if you feel adventurous) +set (CPACK_GENERATOR "Bundle") + +# The following CPACK_* options are all required +set (CPACK_PACKAGE_FILE_NAME MegaGlest-${VER_MAJOR}.${VER_MINOR}.${VER_RELEASE}) +set (CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/MegaGlest.icns") + set (CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/docs/COPYRIGHT.source_code.txt") -set (CPACK_GENERATOR Bundle) set (CPACK_BUNDLE_NAME "MegaGlest") set (CPACK_BUNDLE_STARTUP_COMMAND "${PROJECT_SOURCE_DIR}/data/glest_game/megaglest") set (CPACK_BUNDLE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/MegaGlest.icns") -set (CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/MegaGlest.icns") set (CPACK_BUNDLE_PLIST "${CMAKE_CURRENT_BINARY_DIR}/Info.plist") -#set (CPACK_BUNDLE_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/Info.plist.template") + +# Install files in to the package (FIXME: how? we sure?) INSTALL(FILES ${LUA_LIBRARIES} DESTINATION ../Frameworks @@ -63,6 +69,4 @@ STRING(REGEX REPLACE ";.*" "" SDL_LIBRARY_DIR "${SDL_LIBRARY}") # ${PNG_LIBRARY} # DESTINATION ../Frameworks # ) - -include (CPack) - + diff --git a/mk/macosx/Info.plist b/mk/macosx/Info.plist index 8545199b..25372035 100644 --- a/mk/macosx/Info.plist +++ b/mk/macosx/Info.plist @@ -5,13 +5,13 @@ CFBundleDevelopmentRegion English CFBundleExecutable - MegaGlest + megaglest CFBundleGetInfoString - ${MG_VERSION_H_CONTENTS}, © 2001-2010 The Glest Team All Rights Reserved. + ${VER_MAJOR}.${VER_MINOR}.${VER_RELEASE}, © 2001-2015 The Glest Team All Rights Reserved. CFBundleIconFile MegaGlest CFBundleIdentifier - geovah.MegaGlest + org.megaglest.v${VER_MAJOR}-${VER_MINOR}-${VER_RELEASE} CFBundleInfoDictionaryVersion 6.0 CFBundleName @@ -19,11 +19,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - ${MG_VERSION_H_CONTENTS} + ${VER_MAJOR}.${VER_MINOR}.${VER_RELEASE} CFBundleSignature - ???? + MGGL CFBundleVersion - ${MG_VERSION_H_CONTENTS} + ${VER_MAJOR}.${VER_MINOR}.${VER_RELEASE} NSMainNibFile MainMenu NSPrincipalClass