mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-06 06:32:56 +01:00
This is mostly refactoring of cmake scripts, but also touches build.sh and install.sh. The cmake should be much more palatable now for major Linux distributions. At the same time, new configuration is introduced to Linux version, one with Twitch enabled. Please note, however, this change requires update of orctlibs.zip for mingw builds.
84 lines
2.5 KiB
CMake
84 lines
2.5 KiB
CMake
cmake_minimum_required(VERSION 2.6)
|
|
|
|
#
|
|
# Execute these commands in this directory:
|
|
#
|
|
# 1. mkdir build/; cd build/
|
|
#
|
|
# 2. Choose compiler:
|
|
# Build with native toolchain:
|
|
# cmake -DCMAKE_BUILD_TYPE=Debug ..
|
|
#
|
|
# Build with mingw:
|
|
# cmake -DCMAKE_TOOLCHAIN_FILE=../CMakeLists_mingw.txt -DCMAKE_BUILD_TYPE=Debug ..
|
|
#
|
|
# 3. make
|
|
#
|
|
|
|
|
|
# project title
|
|
set (PROJECT openrct2)
|
|
# OpenRCT2 resource directory
|
|
set (ORCT2_RESOURCE_DIR ${CMAKE_INSTALL_PREFIX}/share/${PROJECT}/)
|
|
|
|
project(${PROJECT})
|
|
|
|
add_definitions(-DORCT2_RESOURCE_DIR="${ORCT2_RESOURCE_DIR}")
|
|
add_definitions(-DHAVE_CONFIG_H)
|
|
add_definitions(-DCURL_STATICLIB)
|
|
|
|
INCLUDE(FindPkgConfig)
|
|
|
|
option(DISABLE_HTTP_TWITCH "Disable HTTP and Twitch support.")
|
|
if (DISABLE_HTTP_TWITCH)
|
|
add_definitions(-DDISABLE_HTTP -DDISABLE_TWITCH)
|
|
else (DISABLE_HTTP_TWITCH)
|
|
PKG_CHECK_MODULES(LIBCURL REQUIRED libcurl)
|
|
PKG_CHECK_MODULES(JANSSON REQUIRED jansson)
|
|
SET(HTTPLIBS ${LIBCURL_LIBRARIES} ${JANSSON_LIBRARIES})
|
|
if (WIN32)
|
|
SET(HTTPLIBS ${HTTPLIBS} ssl crypto winmm.lib ws2_32)
|
|
endif (WIN32)
|
|
endif (DISABLE_HTTP_TWITCH)
|
|
|
|
option(DISABLE_NETWORK "Disable multiplayer functionality. Mainly for testing.")
|
|
if (DISABLE_NETWORK)
|
|
add_definitions(-DDISABLE_NETWORK)
|
|
endif (DISABLE_NETWORK)
|
|
|
|
# include lib
|
|
include_directories("lib/")
|
|
# include speex header
|
|
include_directories("lib/libspeex/")
|
|
# add source files
|
|
file(GLOB_RECURSE ORCT2_SOURCES "src/*.c" "src/*.cpp" "lib/*.c")
|
|
|
|
if (UNIX)
|
|
# force 32bit build for now and set necessary flags to compile code as is
|
|
set(CMAKE_C_FLAGS "-m32 -masm=intel -fvar-tracking-assignments -std=gnu99")
|
|
set(CMAKE_CXX_FLAGS "-m32 -std=gnu++11 -fvar-tracking-assignments -masm=intel")
|
|
set(CMAKE_SHARED_LINKER_FLAGS "-m32 -Wl,-melf_i386")
|
|
set(CMAKE_EXE_LINKER_FLAGS ${CMAKE_SHARED_LINKER_FLAGS})
|
|
endif (UNIX)
|
|
|
|
# find and include SDL2
|
|
PKG_CHECK_MODULES(SDL2 REQUIRED sdl2 SDL2_ttf)
|
|
INCLUDE_DIRECTORIES(${SDL2_INCLUDE_DIRS} ${LIBCURL_INCLUDE_DIRS} ${JANSSON_INCLUDE_DIRS})
|
|
|
|
LINK_DIRECTORIES(${SDL2_LIBRARY_DIRS} ${JANSSON_LIBRARY_DIRS} ${LIBCURL_LIBRARY_DIRS})
|
|
|
|
if (WIN32)
|
|
# build as library for now, replace with add_executable
|
|
add_library(${PROJECT} SHARED ${ORCT2_SOURCES})
|
|
else (WIN32)
|
|
add_executable(${PROJECT} ${ORCT2_SOURCES})
|
|
endif (WIN32)
|
|
|
|
# install into ${CMAKE_INSTALL_PREFIX}/bin/
|
|
#install (TARGETS ${PROJECT} DESTINATION bin)
|
|
|
|
# libopenrct2.dll -> openrct2.dll
|
|
set_target_properties(${PROJECT} PROPERTIES PREFIX "")
|
|
|
|
TARGET_LINK_LIBRARIES(${PROJECT} ${SDL2_LIBRARIES} ${ORCTLIBS_LIB} ${JANSSON_LIBRARIES} ${HTTPLIBS})
|