generated from CoolLibs/library-template
-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CMakeLists.txt
42 lines (34 loc) · 1.33 KB
/
CMakeLists.txt
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
cmake_minimum_required(VERSION 3.20)
set(WARNINGS_AS_ERRORS_FOR_GLPP_EXTENDED OFF CACHE BOOL "ON iff you want to treat warnings as errors")
add_library(glpp-extended)
add_library(glpp::extended ALIAS glpp-extended)
target_compile_features(glpp-extended PRIVATE cxx_std_20)
# Set warning level
if(MSVC)
target_compile_options(glpp-extended PRIVATE /W4)
else()
target_compile_options(glpp-extended PRIVATE -Wall -Wextra -Wpedantic -pedantic-errors -Wconversion -Wsign-conversion)
endif()
# Maybe enable warnings as errors
if(WARNINGS_AS_ERRORS_FOR_GLPP_EXTENDED)
if(MSVC)
target_compile_options(glpp-extended PRIVATE /WX)
else()
target_compile_options(glpp-extended PRIVATE -Werror)
endif()
endif()
# ---Add glpp---
add_subdirectory(lib/glpp)
target_link_libraries(glpp-extended PUBLIC glpp::glpp)
# ---Add glm---
add_subdirectory(lib/glm)
target_link_libraries(glpp-extended PUBLIC glm)
install(FILES "lib/glm/copying.txt" DESTINATION "license/glm")
# ---Add source files---
if(WARNINGS_AS_ERRORS_FOR_GLPP_EXTENDED)
target_include_directories(glpp-extended INTERFACE include)
else()
target_include_directories(glpp-extended SYSTEM INTERFACE include)
endif()
file(GLOB_RECURSE SRC_FILES CONFIGURE_DEPENDS src/*.cpp)
target_sources(glpp-extended PRIVATE ${SRC_FILES})