# Part of the MUST Project, under BSD-3-Clause License
# See https://hpc.rwth-aachen.de/must/LICENSE for license information.
# SPDX-License-Identifier: BSD-3-Clause

# @file CMakeLists.cmake
#       CMake file for the modules/TSan directory.
#

IF (NOT ENABLE_TSAN)
    RETURN()
ENDIF ()

INCLUDE_DIRECTORIES(
    ${PROJECT_SOURCE_DIR}/externals/fiber-pool
)

#Install headers
MUST_INSTALL(FILES I_TSan.h I_InitTSanSyncClock.h DESTINATION include)

add_library(fiberpool SHARED ${PROJECT_SOURCE_DIR}/externals/fiber-pool/fiberpool.cpp)

#Build and install modules 
GTI_MAC_ADD_MODULE (tSan "TSan.cpp;${BASE_SOURCES}" "CXX")
target_link_libraries(tSan fiberpool)

GTI_MAC_ADD_MODULE (initTSanSyncClock "InitTSanSyncClock.cpp;${BASE_SOURCES}" "CXX")

ADD_SUBDIRECTORY (Messages)

set_target_properties(tSan PROPERTIES
        MUST_NO_UBSAN TRUE
        MUST_NO_ASAN TRUE)
INSTALL(TARGETS fiberpool DESTINATION lib)