diff --git a/CMakeLists.txt b/CMakeLists.txt index 3446e3d6..496cd638 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,6 +36,35 @@ set(COLOBOT_VERSION_FULL "${COLOBOT_VERSION_MAJOR}.${COLOBOT_VERSION_MINOR}.${CO message(STATUS "Building Colobot \"${COLOBOT_VERSION_CODENAME}\" (${COLOBOT_VERSION_FULL})") +## +# Platform detection and some related checks +## +if("${CMAKE_SYSTEM_NAME}" MATCHES "Windows") + message(STATUS "Build for Windows system") + set(PLATFORM_WINDOWS 1) + set(PLATFORM_LINUX 0) + set(PLATFORM_MACOSX 0) + set(PLATFORM_OTHER 0) +elseif("${CMAKE_SYSTEM_NAME}" MATCHES "Linux") + message(STATUS "Build for Linux system") + set(PLATFORM_WINDOWS 0) + set(PLATFORM_LINUX 1) + set(PLATFORM_MACOSX 0) + set(PLATFORM_OTHER 0) +elseif("${CMAKE_SYSTEM_NAME}" MATCHES "Darwin") + message(STATUS "Build for Mac OSX system") + set(PLATFORM_WINDOWS 0) + set(PLATFORM_LINUX 0) + set(PLATFORM_MACOSX 1) + set(PLATFORM_OTHER 0) +else() + message(STATUS "Build for other system") + set(PLATFORM_WINDOWS 0) + set(PLATFORM_LINUX 0) + set(PLATFORM_MACOSX 0) + set(PLATFORM_OTHER 1) +endif() + ## # Build options @@ -150,24 +179,6 @@ if (OPENAL_SOUND) endif() -## -# Platform detection and some related checks -## - -if("${CMAKE_SYSTEM_NAME}" MATCHES "Windows") - set(PLATFORM_WINDOWS 1) - set(PLATFORM_LINUX 0) - set(PLATFORM_OTHER 0) -elseif("${CMAKE_SYSTEM_NAME}" MATCHES "Linux") - set(PLATFORM_WINDOWS 0) - set(PLATFORM_LINUX 1) - set(PLATFORM_OTHER 0) -else() - set(PLATFORM_WINDOWS 0) - set(PLATFORM_LINUX 0) - set(PLATFORM_OTHER 1) -endif() - if(NOT ASSERTS) add_definitions(-DNDEBUG) endif() @@ -195,14 +206,14 @@ include("${colobot_SOURCE_DIR}/cmake/msys.cmake") ## -# Summary of detected things +# Clipboard support needs X11 libraries ## -if (PLATFORM_WINDOWS) - message(STATUS "Build for Windows system") -elseif(PLATFORM_LINUX) - message(STATUS "Build for Linux system") -else() - message(STATUS "Build for other system") +if(PLATFORM_LINUX OR PLATFORM_MACOSX) + find_package(X11 REQUIRED) + if(PLATFORM_MACOSX) + # Add the includes for X11 + include_directories("/opt/X11/include") + endif() endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 40373a3f..c01fe0fc 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -31,6 +31,9 @@ elseif(PLATFORM_WINDOWS) elseif(PLATFORM_LINUX) # for clock_gettime set(PLATFORM_LIBS "-lrt -lX11") +elseif(PLATFORM_MACOSX) + find_library(LIBINTL_LIBRARY NAMES intl libintl ) + set(PLATFORM_LIBS ${LIBINTL_LIBRARY} ${X11_X11_LIB}) endif() diff --git a/src/common/config.h.cmake b/src/common/config.h.cmake index 76b37b50..2f403fa5 100644 --- a/src/common/config.h.cmake +++ b/src/common/config.h.cmake @@ -3,6 +3,7 @@ // Macros set by CMake #cmakedefine PLATFORM_WINDOWS @PLATFORM_WINDOWS@ #cmakedefine PLATFORM_LINUX @PLATFORM_LINUX@ +#cmakedefine PLATFORM_MACOSX @PLATFORM_MACOSX@ #cmakedefine PLATFORM_OTHER @PLATFORM_OTHER@ #cmakedefine GLEW_STATIC diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt index d5256ec2..34570a6a 100644 --- a/test/unit/CMakeLists.txt +++ b/test/unit/CMakeLists.txt @@ -9,6 +9,8 @@ elseif(PLATFORM_WINDOWS) elseif(PLATFORM_LINUX) # for clock_gettime set(PLATFORM_LIBS "-lrt -lX11") +elseif(PLATFORM_MACOSX) + set(PLATFORM_LIBS ${X11_X11_LIB}) endif() diff --git a/test/unit/ui/CMakeLists.txt b/test/unit/ui/CMakeLists.txt index a6ab6699..97dd6818 100644 --- a/test/unit/ui/CMakeLists.txt +++ b/test/unit/ui/CMakeLists.txt @@ -14,6 +14,9 @@ if(PLATFORM_WINDOWS) elseif(PLATFORM_LINUX) set(SYSTEM_CPP_MODULE "system_linux.cpp") set(ADDITIONAL_LIB "-lX11") +elseif(PLATFORM_MACOSX) + set(SYSTEM_CPP_MODULE "system_other.cpp") + set(ADDITIONAL_LIB "${X11_X11_LIB}") else() set(SYSTEM_CPP_MODULE "system_other.cpp") set(ADDITIONAL_LIB "-lX11")