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
cmake_minimum_required(VERSION 3.19 FATAL_ERROR) project(Crucible DESCRIPTION "Crucible is an all-in-one framework for building cross-platform applications." HOMEPAGE_URL https://gitlab.com/bravelytyped/crucible LANGUAGES CXX VERSION 0.2.0) include(CTest) list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") include(AddCrucibleExecutable) include(AddCrucibleLibrary) include(AddCrucibleTest) include(CheckCrucibleSupportsTarget) set(CMAKE_CXX_STANDARD 20 CACHE INTERNAL "") set(CMAKE_CXX_STANDARD_REQUIRED ON CACHE INTERNAL "") set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/artifacts") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/artifacts") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/artifacts") set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON CACHE INTERNAL "") check_crucible_supports_target() add_subdirectory(executables) add_subdirectory(libraries)