add CMake dependency handling for portability
This commit is contained in:
49
code/CMakeLists.txt
Normal file
49
code/CMakeLists.txt
Normal file
@@ -0,0 +1,49 @@
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
# Automatisch Projektname aus Parent-Ordner
|
||||
|
||||
set(PROJECT_NAME "ConformalLabpp")
|
||||
|
||||
project(${PROJECT_NAME} LANGUAGES CXX)
|
||||
|
||||
message(STATUS "Configuring ${PROJECT_NAME}...")
|
||||
|
||||
# Build-Setup
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build type" FORCE)
|
||||
endif()
|
||||
|
||||
# Compiler-Warnings & Optimierungen
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU")
|
||||
add_compile_options(-Wall -Wextra -Wpedantic)
|
||||
|
||||
# AddressSanitizer nur im Debug
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
add_compile_options(-fsanitize=address -fno-omit-frame-pointer)
|
||||
add_link_options(-fsanitize=address)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
add_subdirectory(deps)
|
||||
|
||||
# --------- Executable ---------
|
||||
add_executable(${PROJECT_NAME} src/main.cpp)
|
||||
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/deps/single_includes
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/deps/eigen-3.4.0/
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/deps/CGAL-6.1.1/include
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/deps/boost_1_90_0/
|
||||
)
|
||||
|
||||
# Output-Ordner
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
||||
)
|
||||
Reference in New Issue
Block a user