mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2024-11-13 00:24:17 +00:00
479ebc3f94
It is really messy at the moment. There is no support for copying the necessary frameworks and dylibs out to the bundle for distribution, and it is a frankenstein of manual find_library and find_package which can sometimes pick up Homebrew dylibs.
70 lines
1.7 KiB
CMake
70 lines
1.7 KiB
CMake
cmake_minimum_required(VERSION 3.0)
|
|
project(SRB2
|
|
VERSION 2.1.14)
|
|
|
|
# Set up CMAKE path
|
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
|
|
|
|
### Useful functions
|
|
|
|
# Prepend sources with current source directory
|
|
function(prepend_sources SOURCE_FILES)
|
|
foreach(SOURCE_FILE ${${SOURCE_FILES}})
|
|
set(MODIFIED ${MODIFIED} ${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE_FILE})
|
|
endforeach()
|
|
set(${SOURCE_FILES} ${MODIFIED} PARENT_SCOPE)
|
|
endfunction()
|
|
|
|
# Macro to add OSX framework
|
|
macro(add_framework fwname appname)
|
|
find_library(FRAMEWORK_${fwname}
|
|
NAMES ${fwname}
|
|
PATHS ${CMAKE_OSX_SYSROOT}/System/Library
|
|
${CMAKE_OSX_SYSROOT}/Library
|
|
/System/Library
|
|
/Library
|
|
PATH_SUFFIXES Frameworks
|
|
NO_DEFAULT_PATH)
|
|
if( ${FRAMEWORK_${fwname}} STREQUAL FRAMEWORK_${fwname}-NOTFOUND)
|
|
MESSAGE(ERROR ": Framework ${fwname} not found")
|
|
else()
|
|
TARGET_LINK_LIBRARIES(${appname} PRIVATE "${FRAMEWORK_${fwname}}/${fwname}")
|
|
MESSAGE(STATUS "Framework ${fwname} found at ${FRAMEWORK_${fwname}}")
|
|
endif()
|
|
endmacro()
|
|
|
|
# 64-bit check
|
|
if(${CMAKE_SIZEOF_VOID_P} EQUAL 8)
|
|
message(STATUS "Target is 64-bit")
|
|
set(SRB2_SYSTEM_BITS 64)
|
|
else()
|
|
set(SRB2_SYSTEM_BITS 32)
|
|
endif()
|
|
|
|
# DO NOT ALLOW MSVC!
|
|
if(MSVC)
|
|
message(FATAL_ERROR "MSVC is not supported!")
|
|
endif()
|
|
|
|
# OS macros
|
|
if (UNIX)
|
|
add_definitions(-DUNIXCOMMON)
|
|
endif()
|
|
|
|
if(${CMAKE_SYSTEM} MATCHES "Linux")
|
|
add_definitions(-DLINUX)
|
|
if(${SRB2_SYSTEM_BITS} EQUAL 64)
|
|
add_definitions(-DLINUX64)
|
|
endif()
|
|
endif()
|
|
|
|
if(${CMAKE_SYSTEM} MATCHES "Darwin")
|
|
add_definitions(-DMACOSX)
|
|
if(${CMAKE_C_COMPILER_ID} MATCHES "Clang")
|
|
set(CLANG ON)
|
|
endif()
|
|
endif()
|
|
|
|
# TODO support MacOSX builds
|
|
|
|
add_subdirectory(src/)
|