Unverified Commit b866ea68 authored by Axel Kohlmeyer's avatar Axel Kohlmeyer
Browse files

make sanitizers an explicit cmake option (again) so we can set the flags properly

parent b0842a3f
Loading
Loading
Loading
Loading
+22 −10
Original line number Diff line number Diff line
@@ -57,7 +57,6 @@ check_for_autogen_files(${LAMMPS_SOURCE_DIR})
# compiler tests
# these need ot be done early (before further tests).
#####################################################################
include(CheckCCompilerFlag)
include(CheckIncludeFileCXX)

# set required compiler flags and compiler/CPU arch specific optimizations
@@ -83,15 +82,6 @@ set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

# GNU compiler specific features for testing
if (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
  option(ENABLE_COVERAGE "Enable collecting code coverage data" OFF)
  mark_as_advanced(ENABLE_COVERAGE)
  if(ENABLE_COVERAGE)
    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage")
  endif()
endif()

########################################################################
# User input options                                                   #
########################################################################
@@ -248,6 +238,28 @@ if(BUILD_OMP)
  target_link_libraries(lammps PRIVATE OpenMP::OpenMP_CXX)
endif()

# Compiler specific features for testing
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
  option(ENABLE_COVERAGE "Enable collecting code coverage data" OFF)
  mark_as_advanced(ENABLE_COVERAGE)
  if(ENABLE_COVERAGE)
    target_compile_options(lammps PUBLIC --coverage)
    target_link_options(lammps PUBLIC --coverage)
  endif()
endif()
if((${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") OR (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang"))
  set(ENABLE_SANITIZER "none" CACHE STRING "Select a code sanitizer option (none (default), address, thread, undefined)")
  mark_as_advanced(ENABLE_SANITIZER)
  set(ENABLE_SANITIZER_VALUES none address thread undefined)
  set_property(CACHE ENABLE_SANITIZER PROPERTY STRINGS ${ENABLE_SANITIZER_VALUES})
  validate_option(ENABLE_SANITIZER ENABLE_SANITIZER_VALUES)
  string(TOLOWER ${ENABLE_SANITIZER} ENABLE_SANITIZER)
  if (NOT ENABLE_SANITIZER STREQUAL "none")
    target_compile_options(lammps PUBLIC -fsanitize=${ENABLE_SANITIZER})
    target_link_options(lammps PUBLIC -fsanitize=${ENABLE_SANITIZER})
  endif()
endif()

if(PKG_MSCG OR PKG_USER-ATC OR PKG_USER-AWPMD OR PKG_USER-QUIP OR PKG_LATTE)
  enable_language(C)
  find_package(LAPACK)