summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorFuwn <[email protected]>2022-06-24 04:34:06 -0700
committerFuwn <[email protected]>2022-06-24 04:34:06 -0700
commit06a2da38c0bffa43c9e8a26b6d98dc95595dc081 (patch)
tree09d1c29f9202b1cb8670fa1f0d6bcf256f8f738c /CMakeLists.txt
parentdocs(license): add gpl-3.0 (diff)
downloadcait-06a2da38c0bffa43c9e8a26b6d98dc95595dc081.tar.xz
cait-06a2da38c0bffa43c9e8a26b6d98dc95595dc081.zip
ci: push source to remote
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt33
1 files changed, 33 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..c348f88
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,33 @@
+cmake_minimum_required(VERSION 3.15)
+
+project(cait)
+
+string(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UPPER)
+
+set(CMAKE_CXX_EXTENSIONS OFF)
+set(CMAKE_CXX_STANDARD 23)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+option(${PROJECT_NAME_UPPER}_BUILD_BINARY "Build ${PROJECT_NAME} binary" ON)
+
+if(MSVC)
+ add_compile_options(/Wall)
+
+ add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
+else()
+ add_compile_options(-Weverything -Wno-c++98-compat)
+endif(MSVC)
+
+file(GLOB LIB${PROJECT_NAME_UPPER}_SOURCES ${PROJECT_SOURCE_DIR}/src/*.cc)
+
+list(REMOVE_ITEM LIB${PROJECT_NAME_UPPER}_SOURCES ${PROJECT_SOURCE_DIR}/src/${PROJECT_NAME}.cc)
+
+add_library(lib${PROJECT_NAME} OBJECT ${LIB${PROJECT_NAME_UPPER}_SOURCES})
+
+if(${PROJECT_NAME_UPPER}_BUILD_BINARY)
+ add_executable(${PROJECT_NAME} src/${PROJECT_NAME}.cc)
+
+ target_link_libraries(${PROJECT_NAME} PRIVATE lib${PROJECT_NAME})
+
+ install(TARGETS ${PROJECT_NAME})
+endif(${PROJECT_NAME_UPPER}_BUILD_BINARY)