better support for macos, this also closes #36

This commit is contained in:
filux 2015-02-23 20:19:49 +01:00
parent e7ae5d2ca2
commit 966da32472
6 changed files with 196 additions and 146 deletions

View File

@ -31,6 +31,7 @@ OPTION(BUILD_MEGAGLEST_MAP_EDITOR "Build map editor" ON)
OPTION(BUILD_MEGAGLEST "Build MegaGlest" ON)
OPTION(BUILD_MEGAGLEST_TESTS "Build MegaGlest Unit Tests" OFF)
OPTION(WITH_VLC "Use libVLC to play videos" ON)
OPTION(SINGLE_INSTALL_DIRECTORY "Use single install directory for everything. It is useful for example for MacOS cpack bundles." OFF)
FIND_PROGRAM(HELP2MAN "help2man")
@ -77,7 +78,6 @@ MESSAGE(STATUS "Detected MegaGlest Version is [v${MEGAGLEST_VERSION}] ")
## 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)
ENDIF(APPLE)
@ -247,7 +247,7 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW)
MESSAGE(STATUS "Using GIT revision stamp: [${GIT_COMMIT_COUNT}.${GIT_SHA1}] CMD [${GIT_LIVE_REV_CMD}]")
IF(CMAKE_GENERATOR STREQUAL Xcode)
SET(GIT_VERSION_CMD "-DGITVERSION='\\\\'${GIT_LIVE_REV_CMD}\\\\''")
SET(GIT_VERSION_CMD "-DGITVERSION='\\\\'${GIT_COMMIT_COUNT}.${GIT_SHA1}\\\\''")
ELSE()
SET(GIT_VERSION_CMD "-DGITVERSION='\\\"${GIT_LIVE_REV_CMD}\\\"'")
ENDIF()
@ -257,30 +257,51 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW)
IF(CMAKE_INSTALL_PREFIX STREQUAL "")
MESSAGE(STATUS "*NOTE: NOT USING a Custom Data Install Path...")
ELSE()
IF(SINGLE_INSTALL_DIRECTORY AND NOT MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH)
SET(MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH "megaglest-game/" CACHE STRING "The single directory installation path for game (this is appended to the CMAKE_INSTALL_PREFIX)")
ENDIF()
IF(NOT MEGAGLEST_BIN_INSTALL_PATH)
SET(MEGAGLEST_BIN_INSTALL_PATH "bin/" CACHE STRING "The installation path for binaries (this is appended to the CMAKE_INSTALL_PREFIX)")
IF(NOT SINGLE_INSTALL_DIRECTORY)
SET(MEGAGLEST_BIN_INSTALL_PATH "bin/" CACHE STRING "The installation path for binaries (this is appended to the CMAKE_INSTALL_PREFIX)")
ELSE()
SET(MEGAGLEST_BIN_INSTALL_PATH "${MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH}")
ENDIF()
ENDIF()
IF(NOT MEGAGLEST_DATA_INSTALL_PATH)
SET(MEGAGLEST_DATA_INSTALL_PATH "share/megaglest/" CACHE STRING "The installation path for data files (this is appended to the CMAKE_INSTALL_PREFIX)")
IF(NOT SINGLE_INSTALL_DIRECTORY)
SET(MEGAGLEST_DATA_INSTALL_PATH "share/megaglest/" CACHE STRING "The installation path for data files (this is appended to the CMAKE_INSTALL_PREFIX)")
ELSE()
SET(MEGAGLEST_DATA_INSTALL_PATH "${MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH}")
ENDIF()
ENDIF()
IF(NOT MEGAGLEST_DESKTOP_INSTALL_PATH)
SET(MEGAGLEST_DESKTOP_INSTALL_PATH "share/applications/" CACHE STRING "The installation path for desktop files (this is appended to the CMAKE_INSTALL_PREFIX)")
IF(NOT SINGLE_INSTALL_DIRECTORY)
SET(MEGAGLEST_DESKTOP_INSTALL_PATH "share/applications/" CACHE STRING "The installation path for desktop files (this is appended to the CMAKE_INSTALL_PREFIX)")
ELSE()
SET(MEGAGLEST_DESKTOP_INSTALL_PATH "${MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH}")
ENDIF()
ENDIF()
IF(NOT MEGAGLEST_ICON_INSTALL_PATH)
SET(MEGAGLEST_ICON_INSTALL_PATH "share/pixmaps/" CACHE STRING "The installation path for icon files (this is appended to the CMAKE_INSTALL_PREFIX)")
IF(NOT SINGLE_INSTALL_DIRECTORY)
SET(MEGAGLEST_ICON_INSTALL_PATH "share/pixmaps/" CACHE STRING "The installation path for icon files (this is appended to the CMAKE_INSTALL_PREFIX)")
ELSE()
SET(MEGAGLEST_ICON_INSTALL_PATH "${MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH}")
ENDIF()
ENDIF()
IF(NOT MEGAGLEST_MANPAGE_INSTALL_PATH)
SET(MEGAGLEST_MANPAGE_INSTALL_PATH "share/man/man6/" CACHE STRING "The installation path for manpage files (this is appended to the CMAKE_INSTALL_PREFIX)")
IF(NOT MEGAGLEST_MANPAGE_INSTALL_PATH AND NOT SINGLE_INSTALL_DIRECTORY)
IF(NOT SINGLE_INSTALL_DIRECTORY)
SET(MEGAGLEST_MANPAGE_INSTALL_PATH "share/man/man6/" CACHE STRING "The installation path for manpage files (this is appended to the CMAKE_INSTALL_PREFIX)")
ELSE()
SET(MEGAGLEST_MANPAGE_INSTALL_PATH "${MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH}")
ENDIF()
ENDIF()
IF(NOT CUSTOM_DATA_INSTALL_PATH AND NOT SINGLE_INSTALL_DIRECTORY)
SET(CUSTOM_DATA_INSTALL_PATH "${CMAKE_INSTALL_PREFIX}/${MEGAGLEST_DATA_INSTALL_PATH}" CACHE STRING "The FULL installation path for data files (this is build automatically by combining CMAKE_INSTALL_PREFIX and MEGAGLEST_DATA_INSTALL_PATH)")
SET(CUSTOM_DATA_INSTALL_PATH_VALUE "-DCUSTOM_DATA_INSTALL_PATH=${CUSTOM_DATA_INSTALL_PATH}")
ENDIF()
IF(NOT CUSTOM_DATA_INSTALL_PATH)
SET (CUSTOM_DATA_INSTALL_PATH "\"${CMAKE_INSTALL_PREFIX}/${MEGAGLEST_DATA_INSTALL_PATH}\"" CACHE STRING "The FULL installation path for data files (this is build automatically by combining CMAKE_INSTALL_PREFIX and MEGAGLEST_DATA_INSTALL_PATH)")
ENDIF()
SET(CUSTOM_DATA_INSTALL_PATH_VALUE "-DCUSTOM_DATA_INSTALL_PATH=${CUSTOM_DATA_INSTALL_PATH}")
SET(PKG_DATADIR ${CUSTOM_DATA_INSTALL_PATH_VALUE})
SET(PKG_BINDIR ${MEGAGLEST_BIN_INSTALL_PATH})
SET(PKG_DATADIR ${CUSTOM_DATA_INSTALL_PATH_VALUE})
SET(PKG_BINDIR ${MEGAGLEST_BIN_INSTALL_PATH})
MESSAGE(STATUS "*NOTE: Custom Data Install Path is [${CUSTOM_DATA_INSTALL_PATH}]")
ENDIF()

View File

@ -1,91 +1,64 @@
# Set defaults for Universal Binaries. We want 32-bit Intel/PPC on 10.4
# and 32/64-bit Intel/PPC on >= 10.5. Anything <= 10.3 doesn't support.
# These are just defaults/recommendations, but how we want to build
# out of the box. But the user needs to be able to change these options.
# Anything <= 10.3 isn't supported. We want 32-bit Intel/PPC on 10.4, 10.5.
# On 10.6 32/64-bit Intel. On >= 10.7 unset architecture mean default 64-bit Intel.
# Using oldest available sdk with current Xcode is recommended.
# User needs to be able to change these options.
# So we must only set the values the first time CMake is run, or we
# will overwrite any changes the user sets.
# FORCE is used because the options are not reflected in the UI otherwise.
# Seems like a good place to add version specific compiler flags too.
IF(NOT CONFIG_HAS_BEEN_RUN_BEFORE)
IF(EXISTS /Developer/SDKs/MacOSX10.6.sdk)
SET(CMAKE_OSX_ARCHITECTURES "i386" CACHE STRING "Build architectures for OSX" FORCE)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.6 -ftree-vectorize -fvisibility-inlines-hidden" CACHE STRING "Flags used by the compiler during all build types." FORCE)
ELSEIF(EXISTS /Developer/SDKs/MacOSX10.5.sdk)
# 64-bit compiles are not supported with Carbon. We should enable
# 64-bit compilation by default once osgviewer has been
# rewritten with Cocoa.
#SET(CMAKE_OSX_ARCHITECTURES "ppc;i386;ppc64;x86_64" CACHE STRING "Build architectures for OSX" FORCE)
SET(CMAKE_OSX_ARCHITECTURES "i386" CACHE STRING "Build architectures for OSX" FORCE)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.5 -ftree-vectorize -fvisibility-inlines-hidden" CACHE STRING "Flags used by the compiler during all build types." FORCE)
ELSE()
# No Universal Binary support
# Should break down further to set the -mmacosx-version-min,
# but the SDK detection is too unreliable here.
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++")
#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden")
ENDIF()
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftree-vectorize" CACHE STRING "Flags used by the compiler during all build types." FORCE)
ENDIF(NOT CONFIG_HAS_BEEN_RUN_BEFORE)
# don't try to be too much "modern"
ADD_DEFINITIONS(-Wno-deprecated -Wno-deprecated-declarations)
# Include extra paths to search for includes; this is the default system wide macports path.
INCLUDE_DIRECTORIES(/opt/local/include)
LINK_DIRECTORIES(/opt/local/lib)
# Set custom data path as macos apps don't use /local/
SET(CUSTOM_DATA_INSTALL_PATH "/Applications/MegaGlest.app/Contents/Resources/share/megaglest/")
##install part
# This file is in git CRLF but that causes the cpack run to fail
EXECUTE_PROCESS(COMMAND dos2unix -k docs/COPYRIGHT.source_code.txt WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/docs/COPYRIGHT.source_code.txt"
"${CMAKE_CURRENT_BINARY_DIR}/docs/COPYRIGHT.source_code.txt" NEWLINE_STYLE UNIX)
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/docs/COPYRIGHT.source_code.txt")
# 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")
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/bundle_resources/Info.plist.in"
"${CMAKE_CURRENT_BINARY_DIR}/mk/macosx/bundle_resources/Info.plist")
SET(CPACK_BUNDLE_PLIST "${CMAKE_CURRENT_BINARY_DIR}/mk/macosx/bundle_resources/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_BUNDLE_NAME "MegaGlest")
# This variable changs depending on the build type
IF(CMAKE_GENERATOR STREQUAL Xcode)
IF(CMAKE_BUILD_TYPE STREQUAL Release)
set (CPACK_BUNDLE_STARTUP_COMMAND "${PROJECT_SOURCE_DIR}/source/glest_game/Release/megaglest")
ELSEIF(CMAKE_BUILD_TYPE STREQUAL Debug)
set (CPACK_BUNDLE_STARTUP_COMMAND "${PROJECT_SOURCE_DIR}/source/glest_game/Debug/megaglest")
ENDIF()
ELSE()
# Assume gnumake
set (CPACK_BUNDLE_STARTUP_COMMAND "${PROJECT_SOURCE_DIR}/source/glest_game/megaglest")
ENDIF()
set (CPACK_BUNDLE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/MegaGlest.icns")
set (CPACK_BUNDLE_PLIST "${CMAKE_CURRENT_BINARY_DIR}/Info.plist")
SET(CPACK_GENERATOR "Bundle")
SET(CPACK_BUNDLE_NAME "MegaGlest")
SET(CPACK_PACKAGE_FILE_NAME "MegaGlest-game-macos-${MEGAGLEST_VERSION}")
SET(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/bundle_resources/MegaGlest.icns")
SET(CPACK_BUNDLE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/mk/macosx/bundle_resources/MegaGlest.icns")
SET(CPACK_BUNDLE_STARTUP_COMMAND "${PROJECT_SOURCE_DIR}/mk/macosx/bundle_resources/MegaGlest.sh")
# Install files in to the package (FIXME: how? we sure?)
INSTALL(FILES
INSTALL(FILES
${LUA_LIBRARIES}
DESTINATION ../Frameworks
DESTINATION ../Frameworks
)
#the SDL_LIBRARY is seen as a framework thus we need to remove the suffix...
STRING(REGEX REPLACE ";.*" "" SDL_LIBRARY_DIR "${SDL_LIBRARY}")
#INSTALL(DIRECTORY
#INSTALL(DIRECTORY
# ${OGG_LIBRARY}
# ${XERCESC_LIBRARY}
# ${VORBIS_LIBRARY}
# ${SDL_LIBRARY_DIR}
# ${PNG_LIBRARY}
# DESTINATION ../Frameworks
# )
# DESTINATION ../Frameworks
# )

View File

@ -6,6 +6,10 @@ SET(TARGET_NAME_MANPAGE "${TARGET_NAME}.6")
IF(BUILD_MEGAGLEST_MODEL_VIEWER)
MESSAGE(STATUS "Will try to build MegaGlest model viewer")
IF(UNIX AND APPLE AND NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
ADD_DEFINITIONS("-std=c++11")
ENDIF()
FIND_PACKAGE(SDL REQUIRED)
INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR})
@ -128,13 +132,15 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER)
ENDFOREACH(DIR)
OPTION(WANT_DEV_OUTPATH "use developer friendly output paths" OFF)
IF(WANT_DEV_OUTPATH)
IF(UNIX AND NOT APPLE)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux/)
ELSE()
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game/)
ENDIF()
ENDIF()
IF(WANT_DEV_OUTPATH)
IF(UNIX AND NOT APPLE)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux/)
ELSEIF(UNIX AND APPLE)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/macosx/)
ELSE()
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game/)
ENDIF()
ENDIF()
SET(HELP2MAN_OUT_PATH ${EXECUTABLE_OUTPUT_PATH})
IF("${EXECUTABLE_OUTPUT_PATH}" STREQUAL "")
@ -199,12 +205,21 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER)
"${PROJECT_SOURCE_DIR}/mk/shared/g3dviewer.ico"
DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH})
# Installation of the program desktop file
SET(MG_DESKTOP_FILE ${PROJECT_SOURCE_DIR}/mk/linux/megaglest_g3dviewer.desktop)
IF(UNIX AND NOT APPLE)
# Installation of the program desktop file
SET(MG_DESKTOP_FILE ${PROJECT_SOURCE_DIR}/mk/linux/megaglest_g3dviewer.desktop)
INSTALL(FILES
"${MG_DESKTOP_FILE}"
DESTINATION ${MEGAGLEST_DESKTOP_INSTALL_PATH})
INSTALL(FILES
"${MG_DESKTOP_FILE}"
DESTINATION ${MEGAGLEST_DESKTOP_INSTALL_PATH})
IF(NOT BUILD_MEGAGLEST)
INSTALL(FILES
"${PROJECT_SOURCE_DIR}/mk/linux/megaglest.png"
"${PROJECT_SOURCE_DIR}/mk/linux/megaglest.xpm"
DESTINATION ${MEGAGLEST_ICON_INSTALL_PATH})
ENDIF()
ENDIF()
ENDIF()
ENDIF()

View File

@ -217,13 +217,15 @@ IF(BUILD_MEGAGLEST)
ENDIF()
OPTION(WANT_DEV_OUTPATH "use developer friendly output paths" OFF)
IF(WANT_DEV_OUTPATH)
IF(UNIX AND NOT APPLE)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux/)
ELSE()
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game/)
ENDIF()
ENDIF()
IF(WANT_DEV_OUTPATH)
IF(UNIX AND NOT APPLE)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux/)
ELSEIF(UNIX AND APPLE)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/macosx/)
ELSE()
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game/)
ENDIF()
ENDIF()
MESSAGE(STATUS "***Note: The final output path for Megaglest Game will be [${EXECUTABLE_OUTPUT_PATH}]")
@ -299,17 +301,27 @@ IF(BUILD_MEGAGLEST)
DESTINATION ${MEGAGLEST_MANPAGE_INSTALL_PATH})
ENDIF()
# rename the ini for installation
INSTALL(FILES
"${PROJECT_SOURCE_DIR}/mk/shared/glestkeys.ini"
"${PROJECT_SOURCE_DIR}/mk/shared/servers.ini"
DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH})
IF(WIN32)
INSTALL(FILES
"${PROJECT_SOURCE_DIR}/mk/windoze/glest.ini"
"${PROJECT_SOURCE_DIR}/mk/shared/glestkeys.ini"
DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH})
ELSE()
INSTALL(FILES
"${PROJECT_SOURCE_DIR}/mk/linux/glest.ini"
"${PROJECT_SOURCE_DIR}/mk/shared/glestkeys.ini"
DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH})
INSTALL(FILES
"${PROJECT_SOURCE_DIR}/mk/windoze/glest.ini"
DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH})
ELSEIF(UNIX AND NOT APPLE)
INSTALL(FILES
"${PROJECT_SOURCE_DIR}/mk/linux/glest.ini"
DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH})
ELSEIF(UNIX AND APPLE)
INSTALL(FILES
"${PROJECT_SOURCE_DIR}/mk/macosx/glest.ini"
DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH})
IF(SINGLE_INSTALL_DIRECTORY AND EXISTS "${PROJECT_SOURCE_DIR}/mk/macosx/p7zip/")
INSTALL(DIRECTORY
"${PROJECT_SOURCE_DIR}/mk/macosx/p7zip"
DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH})
ENDIF()
ENDIF()
# Installation of data files from outside normal data folder
@ -319,19 +331,32 @@ IF(BUILD_MEGAGLEST)
#MESSAGE(STATUS "**Source package detected git folder structure.")
# Installation of the program desktop file
INSTALL(FILES
"${PROJECT_SOURCE_DIR}/mk/linux/megaglest.desktop"
DESTINATION ${MEGAGLEST_DESKTOP_INSTALL_PATH})
IF(NOT APPLE)
# Installation of the program desktop file
INSTALL(FILES
"${PROJECT_SOURCE_DIR}/mk/linux/megaglest.desktop"
DESTINATION ${MEGAGLEST_DESKTOP_INSTALL_PATH})
ENDIF()
# Installation of the program desktop icon file
INSTALL(FILES
"${PROJECT_SOURCE_DIR}/mk/linux/megaglest.png"
"${PROJECT_SOURCE_DIR}/mk/linux/megaglest.xpm"
"${PROJECT_SOURCE_DIR}/mk/linux/megaglest.bmp"
"${PROJECT_SOURCE_DIR}/mk/shared/editor.ico"
"${PROJECT_SOURCE_DIR}/mk/shared/glest.ico"
"${PROJECT_SOURCE_DIR}/mk/shared/g3dviewer.ico"
DESTINATION ${MEGAGLEST_ICON_INSTALL_PATH})
ENDIF()
# Installation of the program desktop icon file
INSTALL(FILES
"${PROJECT_SOURCE_DIR}/mk/shared/megaglest.ico"
DESTINATION ${MEGAGLEST_ICON_INSTALL_PATH})
IF(UNIX AND NOT APPLE)
INSTALL(FILES
"${PROJECT_SOURCE_DIR}/mk/linux/megaglest.png"
"${PROJECT_SOURCE_DIR}/mk/linux/megaglest.xpm"
DESTINATION ${MEGAGLEST_ICON_INSTALL_PATH})
ELSEIF(UNIX AND APPLE)
IF(NOT SINGLE_INSTALL_DIRECTORY)
INSTALL(FILES
"${PROJECT_SOURCE_DIR}/mk/macosx/bundle_resources/MegaGlest.icns"
DESTINATION ${MEGAGLEST_ICON_INSTALL_PATH})
ENDIF()
ELSE()
INSTALL(FILES
"${PROJECT_SOURCE_DIR}/mk/linux/megaglest.bmp"
DESTINATION ${MEGAGLEST_ICON_INSTALL_PATH})
ENDIF()
ENDIF()
ENDIF()

View File

@ -6,6 +6,10 @@ SET(TARGET_NAME_MANPAGE "${TARGET_NAME}.6")
IF(BUILD_MEGAGLEST_MAP_EDITOR)
MESSAGE(STATUS "Will try to build MegaGlest map editor")
IF(UNIX AND APPLE AND NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
ADD_DEFINITIONS("-std=c++11")
ENDIF()
FIND_PACKAGE(SDL REQUIRED)
INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR})
@ -112,13 +116,15 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR)
ENDFOREACH(DIR)
OPTION(WANT_DEV_OUTPATH "use developer friendly output paths" OFF)
IF(WANT_DEV_OUTPATH)
IF(UNIX AND NOT APPLE)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux/)
ELSE()
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game/)
ENDIF()
ENDIF()
IF(WANT_DEV_OUTPATH)
IF(UNIX AND NOT APPLE)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux/)
ELSEIF(UNIX AND APPLE)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/macosx/)
ELSE()
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game/)
ENDIF()
ENDIF()
SET(HELP2MAN_OUT_PATH ${EXECUTABLE_OUTPUT_PATH})
IF("${EXECUTABLE_OUTPUT_PATH}" STREQUAL "")
@ -193,12 +199,20 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR)
"${PROJECT_SOURCE_DIR}/mk/shared/editor.ico"
DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH})
# Installation of the program desktop file
SET(MG_DESKTOP_FILE ${PROJECT_SOURCE_DIR}/mk/linux/megaglest_editor.desktop)
IF(UNIX AND NOT APPLE)
# Installation of the program desktop file
SET(MG_DESKTOP_FILE ${PROJECT_SOURCE_DIR}/mk/linux/megaglest_editor.desktop)
INSTALL(FILES
"${MG_DESKTOP_FILE}"
DESTINATION ${MEGAGLEST_DESKTOP_INSTALL_PATH})
INSTALL(FILES
"${MG_DESKTOP_FILE}"
DESTINATION ${MEGAGLEST_DESKTOP_INSTALL_PATH})
IF(NOT BUILD_MEGAGLEST)
INSTALL(FILES
"${PROJECT_SOURCE_DIR}/mk/linux/megaglest.png"
"${PROJECT_SOURCE_DIR}/mk/linux/megaglest.xpm"
DESTINATION ${MEGAGLEST_ICON_INSTALL_PATH})
ENDIF()
ENDIF()
ENDIF()
ENDIF()

View File

@ -140,13 +140,15 @@ IF(BUILD_MEGAGLEST_TESTS)
SET_SOURCE_FILES_PROPERTIES(${MG_INCLUDE_FILES} PROPERTIES HEADER_FILE_ONLY 1)
OPTION(WANT_DEV_OUTPATH "use developer friendly output paths" OFF)
IF(WANT_DEV_OUTPATH)
IF(UNIX AND NOT APPLE)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux/)
ELSE()
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game/)
ENDIF()
ENDIF()
IF(WANT_DEV_OUTPATH)
IF(UNIX AND NOT APPLE)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux/)
ELSEIF(UNIX AND APPLE)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/macosx/)
ELSE()
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game/)
ENDIF()
ENDIF()
MESSAGE(STATUS "EXTERNAL_LIBS = [${EXTERNAL_LIBS}]")
@ -164,19 +166,19 @@ IF(BUILD_MEGAGLEST_TESTS)
ENDIF()
TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS})
IF(NOT "${CMAKE_GENERATOR}" STREQUAL "Xcode")
# Run the unit tests after build
IF(EXISTS ${XVFB_EXEC})
MESSAGE("***-- Found xvfb-run: ${XVFB_EXEC} will run tests with it.")
# Run the unit tests after build
IF(EXISTS ${XVFB_EXEC})
MESSAGE("***-- Found xvfb-run: ${XVFB_EXEC} will run tests with it.")
add_custom_command(TARGET ${TARGET_NAME} POST_BUILD
COMMAND ${XVFB_EXEC} --auto-servernum --server-num=770 ${EXECUTABLE_OUTPUT_PATH}${TARGET_NAME}
COMMENT "***-- Found megaglest test runner: ${TARGET_NAME} about to run unit tests via xvfb...")
ELSE()
add_custom_command(TARGET ${TARGET_NAME} POST_BUILD
COMMAND ${EXECUTABLE_OUTPUT_PATH}${TARGET_NAME}
COMMENT "***-- Found megaglest test runner: ${TARGET_NAME} about to run unit tests...")
add_custom_command(TARGET ${TARGET_NAME} POST_BUILD
COMMAND ${XVFB_EXEC} --auto-servernum --server-num=770 ${EXECUTABLE_OUTPUT_PATH}${TARGET_NAME}
COMMENT "***-- Found megaglest test runner: ${TARGET_NAME} about to run unit tests via xvfb...")
ELSE()
add_custom_command(TARGET ${TARGET_NAME} POST_BUILD
COMMAND ${EXECUTABLE_OUTPUT_PATH}${TARGET_NAME}
COMMENT "***-- Found megaglest test runner: ${TARGET_NAME} about to run unit tests...")
ENDIF()
ENDIF()
ENDIF()