# 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.txt
#       CMake file for modules of directory modules/OneSidedChecks.
#
# @author Simon Schwitanski 
# @date 22.05.2017
#

INCLUDE_DIRECTORIES(BEFORE . AppThrAnn Common RMAOp OriginChecks RMASanitize RMAWrapper ../VectorClock/Utility ../VectorClock/VectorClockBase)

#Install headers
MUST_INSTALL(FILES
    OneSidedChecksApi.h
    Common/DataPool.h
    AppThrAnn/I_AppThrAnn.h
    AppThrAnn/AppThrAnn.h
    AppThrAnn/AppThrAnn.cpp
    AppThrAnn/I_TSanSyncClockRecorder.h
    AppThrAnn/TSanSyncClockRecorder.h
    RMASanitize/I_RMASanitize.h
    RMASanitize/RMASanitize.h
    RMASanitize/RMASanitizeTypes.h
    RMAOp/I_RMAOp.h
    RMAOp/RMAOp.h
    RMAOp/I_OriginRMAOp.h
    RMAOp/OriginRMAOp.h
    RMAOp/I_TargetRMAOp.h
    RMAOp/TargetRMAOp.h
    RaceChecks/TSan/I_OriginChecks.h
    RaceChecks/TSan/I_TargetChecks.h
    RaceChecks/TSan/I_TargetRaceVerifier.h
    RMAWrapper/I_MPIRMAWrapper.h
    RMAWrapper/MPIRMAWrapper.h
    ../ResourceTracking/Utility/HandleInfoBase.h
    ../VectorClock/Utility/Clock.h
    DESTINATION include)

#Build and install modules 
GTI_MAC_ADD_MODULE (appThrAnn "AppThrAnn/AppThrAnn.cpp;${BASE_SOURCES}" "CXX")
GTI_MAC_ADD_MODULE (tSanSyncClockRecorder "AppThrAnn/TSanSyncClockRecorder.cpp;${BASE_SOURCES}" "CXX")
GTI_MAC_ADD_MODULE (originChecks "RaceChecks/TSan/OriginChecks.cpp;${BASE_SOURCES}" "CXX")
GTI_MAC_ADD_MODULE (targetChecks "RaceChecks/TSan/TargetChecks.cpp;../VectorClock/Utility/Clock.cpp;${BASE_SOURCES}" "CXX")
GTI_MAC_ADD_MODULE (targetRaceVerifier "RaceChecks/TSan/TargetRaceVerifier.cpp;../VectorClock/Utility/Clock.cpp;${BASE_SOURCES}" "CXX")

GTI_MAC_ADD_MODULE (RMASanitize "RMASanitize/RMASanitize.cpp;../ResourceTracking/Datatype/StridedBlock.cpp;../VectorClock/Utility/Clock.cpp;../ResourceTracking/Utility/HandleInfoBase.cpp;RMASanitize/OriginRMAMap.cpp;RMAOp/RMAOp.cpp;RMAOp/OriginRMAOp.cpp;RMAOp/TargetRMAOp.cpp;${BASE_SOURCES}" "CXX")

GTI_MAC_ADD_MODULE (MPIRMAWrapper "RMAWrapper/MPIRMAWrapper.cpp;../ResourceTracking/Datatype/StridedBlock.cpp;${BASE_SOURCES}" "CXX")
