aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
blob: dd5f6df4e78bfde4afc6486dcfce14360ea4fad4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
cmake_minimum_required(VERSION 3.10)
project(ochess VERSION 0.0.4)

# Configure CXX Standards
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

# wxWidgets
find_package(wxWidgets COMPONENTS net gl core base adv aui propgrid richtext REQUIRED)
include(${wxWidgets_USE_FILE})

# Ochess
include_directories(src)
file(GLOB_RECURSE CPP_FILES src/*.cpp)
string(TIMESTAMP BUILD_TIME "%Y-%m-%d %H:%M")
configure_file(${CMAKE_SOURCE_DIR}/src/config.h.in ${CMAKE_BINARY_DIR}/config.h)
include_directories(${CMAKE_CURRENT_BINARY_DIR}) # Enable access to config.h
add_executable(ochess ${CPP_FILES})
target_link_libraries(ochess ${wxWidgets_LIBRARIES})

# chessarbiter
add_subdirectory(libs/chessarbiter)
target_link_libraries(ochess chessarbiter)

# CGEditor
add_subdirectory(libs/cgeditor)
target_link_libraries(ochess cgeditor)

# pgnp
add_subdirectory(libs/pgnp)
target_link_libraries(ochess pgnp)

#uciadapter
add_subdirectory(libs/uciadapter)
target_link_libraries(ochess uciadapter)

# ChessMoveInterface
add_subdirectory(libs/chess-move-interface)
target_link_libraries(ochess ChessMoveInterface)

# Assets
add_custom_command(TARGET ochess PRE_BUILD
                   COMMAND ${CMAKE_COMMAND} -E copy_directory
                   ${CMAKE_SOURCE_DIR}/tools/assets ${CMAKE_BINARY_DIR}/assets)