diff --git a/CMakeLists.txt b/CMakeLists.txt
index 21d862147..cf7db5ccd 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 7660b1d8a..cecf5f9b1 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 8545199b7..253720350 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