aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorLoic Guegan <manzerbredes@mailbox.org>2023-01-18 21:53:37 +0100
committerLoic Guegan <manzerbredes@mailbox.org>2023-01-18 21:53:37 +0100
commit8fd85102ab8e80d8327b4cf95592dd84579ac492 (patch)
tree92e8ce8b06c1120ad5f6cb87cce65f3d95570852 /CMakeLists.txt
parent5d3004e555079ba018e5f7de1dcb7dda2e99a174 (diff)
Create CMI interface
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt22
1 files changed, 22 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..1d7545a
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,22 @@
+cmake_minimum_required(VERSION 3.18)
+project(ChessMoveInterface)
+
+# Includes
+set(CMI_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/includes) # For conveniance
+set(CMI_INCLUDE_DIR ${CMI_INCLUDE_DIR} PARENT_SCOPE) # To be used by other projects with add_subdirectory()
+file(MAKE_DIRECTORY ${CMI_INCLUDE_DIR})
+
+# Copy all includes
+file(GLOB_RECURSE HEADER_FILES src/*.hpp)
+foreach(FILE ${HEADER_FILES})
+file(RELATIVE_PATH FILE_SUBDIR ${CMAKE_CURRENT_SOURCE_DIR}/src ${FILE})
+configure_file(${FILE} ${CMI_INCLUDE_DIR}/${FILE_SUBDIR} COPYONLY)
+endforeach(FILE ${HEADER_FILES})
+
+# Add target if not exists
+# This way ChessMoveInterface can be used in multiple submodules
+include_directories(src)
+file(GLOB_RECURSE SRC_CPP_FILES src/*.cpp)
+if(NOT TARGET ChessMoveInterface)
+ add_library(ChessMoveInterface SHARED ${SRC_CPP_FILES})
+endif() \ No newline at end of file