@@ -21,6 +21,8 @@ endif()
2121
2222option (VIENNAPS_PRECOMPILE_HEADERS "Enable precompiled headers" OFF )
2323option (VIENNAPS_STATIC_BUILD "Build ViennaPS as static library" OFF )
24+ option (VIENNAPS_ENABLE_SANITIZER "Enable sanitizers" OFF )
25+ option (VIENNAPS_ENABLE_CLANG_TIDY "Run clang-tidy during build" OFF )
2426
2527option (VIENNAPS_USE_GPU "Enable GPU support" OFF )
2628
@@ -68,7 +70,7 @@ if(VIENNAPS_BUILD_PYTHON)
6870endif ()
6971
7072if (MSVC )
71- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS } - openmp:llvm /bigobj" )
73+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS } / openmp:llvm /bigobj" )
7274endif ()
7375
7476# --------------------------------------------------------------------------------------------------------
@@ -105,7 +107,7 @@ include("cmake/cpm.cmake")
105107
106108CPMAddPackage (
107109 NAME ViennaCore
108- VERSION 1.9.4
110+ VERSION 1.9.5
109111 GIT_REPOSITORY "https://github.com/ViennaTools/ViennaCore"
110112 EXCLUDE_FROM_ALL ${VIENNAPS_BUILD_PYTHON}
111113 OPTIONS "VIENNACORE_USE_GPU ${VIENNAPS_USE_GPU} " )
@@ -126,7 +128,8 @@ CPMAddPackage(
126128 NAME ViennaLS
127129 VERSION 5.5.0
128130 GIT_REPOSITORY "https://github.com/ViennaTools/ViennaLS"
129- EXCLUDE_FROM_ALL ${VIENNAPS_BUILD_PYTHON} )
131+ EXCLUDE_FROM_ALL ${VIENNAPS_BUILD_PYTHON}
132+ OPTIONS "VIENNALS_PRECOMPILE_HEADERS ${VIENNAPS_PRECOMPILE_HEADERS} " )
130133
131134CPMAddPackage (
132135 NAME ViennaCS
@@ -137,6 +140,29 @@ CPMAddPackage(
137140target_link_libraries (${PROJECT_NAME } INTERFACE ViennaTools::ViennaCore ViennaTools::ViennaLS
138141 ViennaTools::ViennaRay ViennaTools::ViennaCS )
139142
143+ # --------------------------------------------------------------------------------------------------------
144+ # Setup Sanitizer or Clang-Tidy
145+ # --------------------------------------------------------------------------------------------------------
146+
147+ if (VIENNAPS_ENABLE_SANITIZER)
148+ if (VIENNAPS_USE_GPU)
149+ message (WARNING "[ViennaPS] Sanitizers cannot be used with GPU support enabled!" )
150+ else ()
151+ viennacore_enable_sanitizer ()
152+ message (STATUS "[ViennaPS] Enabled Sanitizers" )
153+ endif ()
154+ endif ()
155+
156+ if (VIENNAPS_ENABLE_CLANG_TIDY)
157+ set (CMAKE_EXPORT_COMPILE_COMMANDS ON )
158+ find_program (CLANG_TIDY_EXE NAMES clang-tidy )
159+ if (NOT CLANG_TIDY_EXE)
160+ message (FATAL_ERROR "clang-tidy not found" )
161+ endif ()
162+
163+ set (CMAKE_CXX_CLANG_TIDY "${CLANG_TIDY_EXE} " "--quiet" "--warnings-as-errors=*" )
164+ endif ()
165+
140166# --------------------------------------------------------------------------------------------------------
141167# Setup Shared/Static Library
142168# --------------------------------------------------------------------------------------------------------
@@ -155,8 +181,9 @@ if(VIENNAPS_PRECOMPILE_HEADERS)
155181 target_link_libraries (${LIB_NAME} PRIVATE ${PROJECT_NAME } )
156182 target_compile_definitions (${LIB_NAME} PRIVATE VIENNAPS_USE_PRECOMPILED=1
157183 VIENNACORE_COMPILE_SHARED_LIB=1 )
158- target_sources (${LIB_NAME} PRIVATE "lib/specMain.cpp" "lib/specGeometries.cpp"
159- "lib/specModels.cpp" )
184+ target_sources (
185+ ${LIB_NAME} PRIVATE "lib/specMain.cpp" "lib/specGeometries.cpp" "lib/specModelsEmulation.cpp"
186+ "lib/specModelsSimulation.cpp" "lib/specProcess.cpp" )
160187
161188 set_target_properties (
162189 ${LIB_NAME}
0 commit comments