diff options
Diffstat (limited to 'CMakeLists.txt')
| -rw-r--r-- | CMakeLists.txt | 33 |
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) |