Disable leak detection only while the instrumented exp2cxx build tool generates schema sources. LeakSanitizer cannot run under common tracers and sandboxes, which otherwise makes an ASan build fail before its tests can start.
41 lines
1.4 KiB
CMake
41 lines
1.4 KiB
CMake
|
|
# if oneshot is true, don't run exp2cxx if source files exist. if schema.cc exists, assume others do
|
|
if(NOT DEFINED API_VERSION OR "${API_VERSION}" STREQUAL "")
|
|
set(API_VERSION 1)
|
|
endif()
|
|
if(NOT DEFINED METADATA_PROFILE OR "${METADATA_PROFILE}" STREQUAL "")
|
|
set(METADATA_PROFILE full)
|
|
endif()
|
|
|
|
if(ONESHOT AND EXISTS "${SDIR}/schema.cc")
|
|
message("WARNING: SC_GENERATE_CXX_ONESHOT is enabled. If generated code has been modified, it will NOT be rewritten!")
|
|
message("This is ONLY for debugging STEPcode internals!")
|
|
else()
|
|
set(_exp2cxx_mode_args)
|
|
if(LATE_BOUND)
|
|
list(APPEND _exp2cxx_mode_args --late-bound)
|
|
endif()
|
|
if(COMPAT_NAMES)
|
|
list(APPEND _exp2cxx_mode_args --compat-names)
|
|
endif()
|
|
list(APPEND _exp2cxx_mode_args --metadata ${METADATA_PROFILE})
|
|
execute_process(COMMAND ${CMAKE_COMMAND} -E env ${GENERATOR_ENVIRONMENT}
|
|
${EXE} -k ${CHUNK_SIZE} -V ${API_VERSION} ${_exp2cxx_mode_args} ${EXP}
|
|
WORKING_DIRECTORY ${SDIR}
|
|
RESULT_VARIABLE _res
|
|
OUTPUT_FILE exp2cxx_stdout.txt
|
|
ERROR_FILE exp2cxx_stderr.txt
|
|
)
|
|
if(NOT "${_res}" STREQUAL "0")
|
|
message(FATAL_ERROR "${EXE} reported an error for ${EXP}.\nsee exp2cxx_stdout.txt and exp2cxx_stderr.txt in ${SDIR} for details.")
|
|
endif(NOT "${_res}" STREQUAL "0")
|
|
# TODO count number of lines in stdout/stderr and tell user?
|
|
endif()
|
|
|
|
# Local Variables:
|
|
# tab-width: 8
|
|
# mode: cmake
|
|
# indent-tabs-mode: t
|
|
# End:
|
|
# ex: shiftwidth=2 tabstop=8
|