OpenRCT2/src/openrct2/CMakeLists.txt

58 lines
2.1 KiB
CMake
Raw Normal View History

# CMAKE project for libopenrct2 (core OpenRCT2 component)
cmake_minimum_required(VERSION 2.6)
if (CMAKE_BINARY_DIR STREQUAL CMAKE_SOURCE_DIR)
message(FATAL_ERROR "Building in-source is not supported! Create a build dir and remove ${CMAKE_SOURCE_DIR}/CMakeCache.txt")
endif()
# CMake dependencies
INCLUDE(FindPkgConfig)
# Third party libraries
PKG_CHECK_MODULES(JANSSON REQUIRED jansson>=2.5)
PKG_CHECK_MODULES(LIBCURL REQUIRED libcurl)
PKG_CHECK_MODULES(LIBZIP REQUIRED libzip>=1.0)
PKG_CHECK_MODULES(SSL REQUIRED openssl>=1.0.0)
PKG_CHECK_MODULES(PNG libpng>=1.6)
PKG_CHECK_MODULES(ZLIB REQUIRED zlib)
# Third party libraries (which we want to eventually remove from libopenrct2)
PKG_CHECK_MODULES(FONTCONFIG REQUIRED fontconfig)
PKG_CHECK_MODULES(SDL2 REQUIRED sdl2)
PKG_CHECK_MODULES(SDL2_TTF REQUIRED SDL2_ttf)
PKG_CHECK_MODULES(SPEEX REQUIRED speexdsp)
PKG_CHECK_MODULES(GL REQUIRED gl)
message(STATUS "SDL: ${SDL2_INCLUDE_DIRS}")
message(STATUS "SSL: ${SSL_INCLUDE_DIRS}")
message(STATUS "TTF: ${SDL2_TTF_INCLUDE_DIRS}")
# Includes
INCLUDE_DIRECTORIES(SYSTEM ${LIBZIP_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${SDL2_INCLUDE_DIRS}
${LIBCURL_INCLUDE_DIRS}
${JANSSON_INCLUDE_DIRS}
${SPEEX_INCLUDE_DIRS}
${PNG_INCLUDE_DIRS}
${ZLIB_INCLUDE_DIRS}
${BREAKPAD_INCLUDE_DIR}
${SSL_INCLUDE_DIRS}
${FONTCONFIG_INCLUDE_DIRS})
# Sources
file(GLOB_RECURSE OPENRCT2_CORE_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/*.c"
"${CMAKE_CURRENT_SOURCE_DIR}/*.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/*.h"
"${CMAKE_CURRENT_SOURCE_DIR}/*.hpp")
# Compiler flags
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${TARGET_M} -std=gnu11 ${COMMON_COMPILE_OPTIONS} -Wimplicit")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TARGET_M} -std=gnu++14 ${COMMON_COMPILE_OPTIONS}")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${TARGET_M}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS} ${PIE_FLAG}")
# Outputs
set (PROJECT openrct2)
project(${PROJECT})
add_library(${PROJECT} SHARED ${OPENRCT2_CORE_SOURCES})