华容道高性能计算引擎
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.5 KiB

cmake_minimum_required(VERSION 3.12)
project(klotski)
# ------------------------------------------------------------------------------------ #
option(KLSK_ENABLE_LTO "Enable LTO optimisation of the project." OFF)
option(KLSK_SHARED_LIB "Build klotski core as a dynamic library." OFF)
option(KLSK_ENABLE_TESTING "Enable testing of the klotski project." ON)
option(KLSK_ENABLE_BENCHMARK "Enable benchmark of the klotski project." ON)
option(KLSK_C_FFI "" ON)
option(KLSK_PYTHON_FFI "" ON)
option(KLSK_RUST_FFI "" ON)
# ------------------------------------------------------------------------------------ #
if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()
add_compile_options(-Wall -Wextra)
# TODO: enabled by LTO option
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
add_compile_options(-flto=full)
else ()
#add_compile_options(-flto) # TODO: only for g++
endif ()
# TODO: for python-ffi
#set(CMAKE_POSITION_INDEPENDENT_CODE ON)
get_filename_component(KLSK_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR} ABSOLUTE)
include(third_party/ThirdParty.cmake)
# ------------------------------------------------------------------------------------ #
#set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin)
#set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin)
#file(
# COPY ${PROJECT_SOURCE_DIR}/src/klotski_core/klotski.h
# DESTINATION ${PROJECT_SOURCE_DIR}/bin
# FOLLOW_SYMLINK_CHAIN
#)
add_subdirectory(src)
# ------------------------------------------------------------------------------------ #