-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
26 lines (20 loc) 路 911 Bytes
/
Copy pathCMakeLists.txt
File metadata and controls
26 lines (20 loc) 路 911 Bytes
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
cmake_minimum_required(VERSION 3.28)
project(SemioNative VERSION 1.0.0 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 23 CACHE STRING "C++ language standard")
set(CMAKE_CXX_STANDARD_REQUIRED ON CACHE BOOL "Require the configured C++ standard")
set(CMAKE_CXX_EXTENSIONS OFF CACHE BOOL "Disable compiler-specific C++ extensions")
set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE BOOL "Export compile_commands.json")
set(CMAKE_POSITION_INDEPENDENT_CODE ON CACHE BOOL "Build position-independent native code")
option(SEMIO_CPP_TOPOLOGIC "Build the Topologic C++ geometry package" ON)
option(SEMIO_CPP_ENABLE_TESTS "Enable native CTest registration" ON)
if(SEMIO_CPP_ENABLE_TESTS)
include(CTest)
endif()
if(MSVC)
add_compile_options(/permissive- /Zc:__cplusplus /W4)
else()
add_compile_options(-Wall -Wextra -Wpedantic)
endif()
if(SEMIO_CPP_TOPOLOGIC)
add_subdirectory(elements/client/lib/geometry/topologic)
endif()