aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
blob: 8641fab84c05fb2296b3fe90a57aed795ac53706 (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
cmake_minimum_required(VERSION 3.10)
project(pgnp)

# Shared library
add_library(pgnp STATIC src/PGN.cpp src/HalfMove.cpp src/LargeFileStream.cpp)

# Includes
set(PGNP_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/includes) # For conveniance
set(PGNP_INCLUDE_DIR ${PGNP_INCLUDE_DIR} PARENT_SCOPE) # To be used by other projects with add_subdirectory()
file(MAKE_DIRECTORY ${PGNP_INCLUDE_DIR})
configure_file(src/PGN.hpp ${PGNP_INCLUDE_DIR}/pgnp.hpp COPYONLY)
configure_file(src/HalfMove.hpp ${PGNP_INCLUDE_DIR} COPYONLY)
configure_file(src/LargeFileStream.hpp ${PGNP_INCLUDE_DIR} COPYONLY)
configure_file(src/Types.hpp ${PGNP_INCLUDE_DIR} COPYONLY)
include_directories(${PGNP_INCLUDE_DIR})

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

# Add include directiries to target to be independent of ${PGNP_INCLUDE_DIR} and ${CMI_INCLUDE_DIR}
target_include_directories(pgnp PUBLIC ${CMI_INCLUDE_DIR})
target_include_directories(pgnp PUBLIC ${PGNP_INCLUDE_DIR})

# Unit tests
set(COMPILE_TESTS OFF CACHE BOOL "Should unit tests be compiled")
if(COMPILE_TESTS)
    enable_testing()
    add_subdirectory(./tests)
endif()