Home | History | Annotate | Download | only in esan
      1 # Build for the EfficiencySanitizer runtime support library.
      2 
      3 add_custom_target(esan)
      4 set_target_properties(esan PROPERTIES FOLDER "Compiler-RT Misc")
      5 
      6 set(ESAN_RTL_CFLAGS ${SANITIZER_COMMON_CFLAGS})
      7 append_rtti_flag(OFF ESAN_RTL_CFLAGS)
      8 
      9 include_directories(..)
     10 
     11 set(ESAN_SOURCES
     12   esan.cpp
     13   esan_flags.cpp
     14   esan_interface.cpp
     15   esan_interceptors.cpp
     16   esan_linux.cpp
     17   esan_sideline_linux.cpp
     18   cache_frag.cpp
     19   working_set.cpp
     20   working_set_posix.cpp)
     21 
     22 foreach (arch ${ESAN_SUPPORTED_ARCH})
     23   add_compiler_rt_runtime(clang_rt.esan
     24     STATIC
     25     ARCHS ${arch}
     26     SOURCES ${ESAN_SOURCES}
     27             $<TARGET_OBJECTS:RTInterception.${arch}>
     28             $<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
     29             $<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>
     30     CFLAGS ${ESAN_RTL_CFLAGS})
     31   add_sanitizer_rt_symbols(clang_rt.esan
     32     ARCHS ${arch}
     33     EXTRA esan.syms.extra)
     34   add_dependencies(esan
     35     clang_rt.esan-${arch}
     36     clang_rt.esan-${arch}-symbols)
     37 endforeach()
     38 
     39 add_dependencies(compiler-rt esan)
     40 
     41 if (COMPILER_RT_INCLUDE_TESTS)
     42   # TODO(bruening): add tests via add_subdirectory(tests)
     43 endif()
     44