2018-04-24 10:17:05 -04:00
|
|
|
# CMake 3.8.2 is needed for C++17 support.
|
2018-04-28 07:14:47 -04:00
|
|
|
# CMake 3.9 is needed for LTO support.
|
|
|
|
cmake_minimum_required(VERSION 3.9)
|
|
|
|
cmake_policy(SET CMP0069 NEW) # Link time optimization support
|
|
|
|
|
2017-05-31 10:25:38 -04:00
|
|
|
|
2018-04-24 10:17:05 -04:00
|
|
|
#######################
|
|
|
|
# Pre-project options #
|
|
|
|
#######################
|
|
|
|
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" cache string "Minimum OS X deployment version")
|
|
|
|
|
2017-06-01 20:47:29 -04:00
|
|
|
|
2017-11-18 01:39:28 -05:00
|
|
|
project(orbum CXX)
|
2018-01-01 08:35:08 -05:00
|
|
|
|
|
|
|
|
2018-03-02 09:44:03 -05:00
|
|
|
###########
|
|
|
|
# Options #
|
|
|
|
###########
|
2018-04-28 07:14:47 -04:00
|
|
|
|
2018-03-02 09:44:03 -05:00
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
2018-04-28 07:14:47 -04:00
|
|
|
|
2017-11-18 01:39:28 -05:00
|
|
|
set(BUILD_SHARED_LIBS on)
|
2018-04-28 07:14:47 -04:00
|
|
|
|
|
|
|
set(CMAKE_POSITION_INDEPENDENT_CODE on)
|
|
|
|
|
|
|
|
include(CheckIPOSupported)
|
|
|
|
check_ipo_supported(RESULT ipo_result)
|
|
|
|
if(ipo_result)
|
|
|
|
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION on)
|
|
|
|
endif()
|
2018-01-08 07:16:41 -05:00
|
|
|
|
2018-04-28 07:14:47 -04:00
|
|
|
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
|
2018-01-08 07:16:41 -05:00
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
|
|
|
|
endif()
|
2017-06-02 05:06:45 -04:00
|
|
|
|
2018-04-28 07:14:47 -04:00
|
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/out")
|
|
|
|
|
|
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/out")
|
|
|
|
|
|
|
|
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
|
|
|
|
|
2018-03-02 09:44:03 -05:00
|
|
|
|
|
|
|
################
|
|
|
|
# Dependencies #
|
|
|
|
################
|
|
|
|
|
|
|
|
# Threads
|
|
|
|
find_package(Threads)
|
|
|
|
|
|
|
|
# Boost
|
|
|
|
add_definitions(-DBOOST_ALL_DYN_LINK)
|
|
|
|
set(Boost_USE_STATIC_LIBS OFF)
|
|
|
|
set(Boost_USE_STATIC_RUNTIME OFF)
|
|
|
|
set(Boost_USE_MULTITHREADED ON)
|
|
|
|
find_package(Boost REQUIRED COMPONENTS log filesystem)
|
|
|
|
|
|
|
|
|
|
|
|
###########
|
|
|
|
# Project #
|
|
|
|
###########
|
|
|
|
|
|
|
|
add_subdirectory(liborbum)
|
|
|
|
add_subdirectory(orbumfront)
|
|
|
|
add_subdirectory(utilities)
|
2018-04-24 10:17:05 -04:00
|
|
|
|
|
|
|
|
|
|
|
#########################
|
|
|
|
# Visual Studio Options #
|
|
|
|
#########################
|
|
|
|
|
|
|
|
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT orbumfront)
|
|
|
|
set_property(TARGET orbumfront PROPERTY VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
|