##############################################################################
#   Copyright (C) 2019 GSI Helmholtzzentrum für Schwerionenforschung GmbH    #
#   Copyright (C) 2019-2024 Members of R3B Collaboration                     #
#                                                                            #
#             This software is distributed under the terms of the            #
#                 GNU General Public Licence (GPL) version 3,                #
#                    copied verbatim in the file "LICENSE".                  #
#                                                                            #
# In applying this license GSI does not waive the privileges and immunities  #
# granted to it by virtue of its status as an Intergovernmental Organization #
# or submit itself to any jurisdiction.                                      #
##############################################################################

# Create a library called "libR3Bsource" which includes the source files given
# in the array. The extension is already found. Any number of sources could be
# listed here.

set(INCLUDE_DIRECTORIES
    #cmake-format: sortable
    ${CMAKE_CURRENT_SOURCE_DIR}
    alpide
    ams
    base
    base/utils
    beammonitor
    califa
    fibers
    foot
    frssci
    music
    musli
    mwpc
    neuland
    pdc
    pspx
    rolu
    rpc
    sci2
    sci8
    strack
    stubes
    sync_check
    tofd
    tofi
    trloii
    twim
    wr)

set(SRCS
    base/utils/R3BUcesbLauncher.cxx
    base/utils/R3BUcesbStructInfo.cxx
    base/R3BUcesbSource.cxx
    base/R3BUcesbSource2.cxx
    base/R3BReader.cxx
    base/R3BUnpackReader.cxx
    wr/R3BWhiterabbitMasterReader.cxx
    califa/R3BWhiterabbitCalifaReader.cxx
    neuland/R3BWhiterabbitNeulandReader.cxx
    ams/R3BWhiterabbitAmsReader.cxx
    foot/R3BWhiterabbitFootReader.cxx
    wr/R3BWhiterabbitS2Reader.cxx
    wr/R3BWhiterabbitS8Reader.cxx
    los/R3BWhiterabbitLosReader.cxx
    wr/R3BWhiterabbitPspReader.cxx
    music/R3BWhiterabbitMusicReader.cxx
    trloii/R3BTrloiiTpatReader.cxx
    trloii/R3BTrloiiSampReader.cxx
    trloii/R3BTrloiiScalerReader.cxx
    trloii/R3BTrloiiScalerReader_s467.cxx
    wr/R3BTimestampMasterReader.cxx
    pspx/R3BS515PspxReader.cxx
    fibers/R3BBunchedFiberReader.cxx
    fibers/R3BBunchedFiberSPMTTrigReader.cxx
    beammonitor/R3BBeamMonitorReader.cxx
    fibers/R3BFi0Reader.cxx
    fibers/R3BFi1aReader.cxx
    fibers/R3BFi1bReader.cxx
    fibers/R3BFi3aReader.cxx
    fibers/R3BFi3bReader.cxx
    fibers/R3BFi4Reader.cxx
    fibers/R3BFi5Reader.cxx
    fibers/R3BFi6Reader.cxx
    fibers/R3BFi7Reader.cxx
    fibers/R3BFi8Reader.cxx
    fibers/R3BFiberReader.cxx
    los/R3BLosReader.cxx
    rolu/R3BRoluReader.cxx
    rolu/R3BRoluReaderOnline.cxx
    frssci/R3BFrsSciReader.cxx
    sci2/R3BSci2Reader.cxx
    sci8/R3BSci8Reader.cxx
    fibers/R3BSfibReader.cxx
    tofd/R3BTofdReader.cxx
    tofi/R3BTofiReader.cxx
    pdc/R3BPdcReader.cxx
    califa/R3BCalifaFebexReader.cxx
    califa/R3BCalifaJulichReader.cxx
    tofd/R3BPtofReader.cxx
    neuland/R3BNeulandTamexReader.cxx
    neuland/R3BNeulandTacquilaReader.cxx
    stubes/R3BStrawtubesReader.cxx
    ams/R3BAmsReader.cxx
    foot/R3BFootReader.cxx
    foot/R3BFootSiReader.cxx
    alpide/R3BAlpideReader.cxx
    alpide/R3BMosaicReader.cxx
    music/R3BMusicReader.cxx
    rpc/R3BRpcReader.cxx
    twim/R3BTwimReader.cxx
    tttx/R3BTttxReader.cxx
    musli/R3BMusliReader.cxx
    mwpc/R3BMwpcReader.cxx
    sync_check/R3BSyncCheckReader.cxx)

set(STRUCT_HEADERS
    base/ext_h101_unpack.h
    wr/ext_h101_whiterabbit.h
    wr/ext_h101_wrmaster.h
    califa/ext_h101_wrcalifa.h
    neuland/ext_h101_wrneuland.h
    ams/ext_h101_wrams.h
    foot/ext_h101_wrfoot.h
    music/ext_h101_wrmusic.h
    wr/ext_h101_timestamp_pspx.h
    wr/ext_h101_wrs2.h
    wr/ext_h101_wrs8.h
    los/ext_h101_wrlos.h
    trloii/ext_h101_tpat.h
    trloii/ext_h101_trlo.h
    trloii/ext_h101_trlo_s467.h
    wr/ext_h101_timestamp_master.h
    beammonitor/ext_h101_bmon.h
    fibers/ext_h101_fib.h
    fibers/ext_h101_fibzero.h
    fibers/ext_h101_fibonea.h
    fibers/ext_h101_fiboneb.h
    fibers/ext_h101_fibthreea.h
    fibers/ext_h101_fibthreeb.h
    fibers/ext_h101_fibfour.h
    fibers/ext_h101_fibfive.h
    fibers/ext_h101_fibsix.h
    fibers/ext_h101_fibseven.h
    fibers/ext_h101_fibeight.h
    fibers/ext_h101_fibten.h
    fibers/ext_h101_fibeleven.h
    fibers/ext_h101_fibtwelve.h
    fibers/ext_h101_fibthirteen.h
    fibers/ext_h101_fib23a.h
    fibers/ext_h101_fib23b.h
    fibers/ext_h101_fib30.h
    fibers/ext_h101_fib31.h
    fibers/ext_h101_fib32.h
    fibers/ext_h101_fib33.h
    los/ext_h101_los_dez19.h
    rolu/ext_h101_rolu.h
    rolu/ext_h101_rolu_online.h
    frssci/ext_h101_frssci.h
    sci2/ext_h101_sci2.h
    sci8/ext_h101_sci8.h
    fibers/ext_h101_sfib.h
    tofd/ext_h101_tofd.h
    tofi/ext_h101_tofi.h
    tofd/ext_h101_ptof.h
    pspx/ext_h101_psp.h
    califa/ext_h101_califa.h
    neuland/ext_h101_raw_nnp_tacquila.h
    neuland/ext_h101_raw_nnp_tamex.h
    stubes/ext_h101_strawtubes.h
    ams/ext_h101_ams.h
    foot/ext_h101_foot.h
    alpide/ext_h101_alpide.h
    alpide/ext_h101_mosaic.h
    music/ext_h101_music.h
    twim/ext_h101_twim.h
    tttx/ext_h101_ttt10.h
    musli/ext_h101_musli.h
    mwpc/ext_h101_mwpc.h
    trloii/ext_h101_samp.h
    trloii/ext_h101_samplos.h
    trloii/ext_h101_sampms.h
    trloii/ext_h101_samplosms.h
    pdc/ext_h101_pdc.h
    rpc/ext_h101_rpc.h
    sync_check/ext_h101_sync_check.h)

set(HEADERS
    base/R3BUcesbSource.h
    base/R3BReader.h
    base/R3BUnpackReader.h
    base/utils/R3BUcesbDecl.h
    base/utils/R3BUcesbLauncher.h
    base/utils/R3BUcesbMappingFlag.h
    base/utils/R3BUcesbStructInfo.h
    wr/R3BWhiterabbitMasterReader.h
    califa/R3BWhiterabbitCalifaReader.h
    neuland/R3BWhiterabbitNeulandReader.h
    ams/R3BWhiterabbitAmsReader.h
    foot/R3BWhiterabbitFootReader.h
    wr/R3BWhiterabbitS2Reader.h
    wr/R3BWhiterabbitS8Reader.h
    los/R3BWhiterabbitLosReader.h
    wr/R3BWhiterabbitPspReader.h
    music/R3BWhiterabbitMusicReader.h
    trloii/R3BTrloiiTpatReader.h
    trloii/R3BTrloiiSampReader.h
    trloii/R3BTrloiiScalerReader.h
    trloii/R3BTrloiiScalerReader_s467.h
    wr/R3BTimestampMasterReader.h
    pspx/R3BS515PspxReader.h
    fibers/R3BBunchedFiberReader.h
    fibers/R3BBunchedFiberSPMTTrigReader.h
    beammonitor/R3BBeamMonitorReader.h
    fibers/R3BFi0Reader.h
    fibers/R3BFi1aReader.h
    fibers/R3BFi1bReader.h
    fibers/R3BFi3aReader.h
    fibers/R3BFi3bReader.h
    fibers/R3BFi4Reader.h
    fibers/R3BFi5Reader.h
    fibers/R3BFi6Reader.h
    fibers/R3BFi7Reader.h
    fibers/R3BFi8Reader.h
    fibers/R3BFiberReader.h
    frssci/R3BFrsSciReader.h
    los/R3BLosReader.h
    rolu/R3BRoluReader.h
    rolu/R3BRoluReaderOnline.h
    sci2/R3BSci2Reader.h
    sci8/R3BSci8Reader.h
    fibers/R3BSfibReader.h
    tofd/R3BTofdReader.h
    tofi/R3BTofiReader.h
    pdc/R3BPdcReader.h
    califa/R3BCalifaFebexReader.h
    califa/R3BCalifaJulichReader.h
    tofd/R3BPtofReader.h
    neuland/R3BNeulandTamexReader.h
    neuland/R3BNeulandTacquilaReader.h
    stubes/R3BStrawtubesReader.h
    ams/R3BAmsReader.h
    foot/R3BFootReader.h
    foot/R3BFootSiReader.h
    alpide/R3BAlpideReader.h
    alpide/R3BMosaicReader.h
    music/R3BMusicReader.h
    rpc/R3BRpcReader.h
    tttx/R3BTttxReader.h
    twim/R3BTwimReader.h
    musli/R3BMusliReader.h
    mwpc/R3BMwpcReader.h
    sync_check/R3BSyncCheckReader.h)

set(HEADERS ${STRUCT_HEADERS} ${HEADERS})

set(DIRS
    alpide
    ams
    base
    base/utils
    beammonitor
    califa
    fibers
    foot
    los
    music
    musli
    mwpc
    neuland
    pdc
    pspx
    rolu
    rpc
    sci2
    sci8
    stubes
    sync_check
    tofd
    tofi
    trloii
    twim
    wr)

add_library_with_dictionary(
    LIBNAME
    R3BSource
    LINKDEF
    SourceLinkDef.h
    HEADERS
    ${HEADERS}
    SRCS
    ${SRCS}
    INCLUDEDIRS
    ${DIRS}
    DEPENDENCIES
    R3BData
    Ucesb)
