set(HEADERS
    ChamberHitEvent.h
    DetectorChamber.h
    ExperimentFitEvent.h
    HierarchicalEncoding.h
    Hit.h
    HitMC.h
    LinearFit.h
    MuonError.h
    MuonEvent.h
    MuonScatter.h
)

set(SOURCES
    DetectorChamber.cpp
)

set(LIBRARIES
       ${PACKAGE_LIBPREFIX}Core
       ${PACKAGE_LIBPREFIX}Math
)

set(libname ${PACKAGE_LIBPREFIX}Detectors)
set(ULIB_SHARED_LIBRARIES ${ULIB_SHARED_LIBRARIES} ${libname} PARENT_SCOPE)
set(ULIB_SELECTED_MODULES ${ULIB_SELECTED_MODULES} Detectors PARENT_SCOPE)

## SHARED library
add_library(${libname} SHARED ${SOURCES})
set_target_properties(${libname} PROPERTIES
                      VERSION ${PROJECT_VERSION}
                      SOVERSION ${PROJECT_SOVERSION}
                      CXX_STANDARD 17)
target_link_libraries(${libname} PRIVATE ${LIBRARIES})

install(TARGETS ${libname}
        EXPORT "uLibTargets"
        RUNTIME DESTINATION ${INSTALL_BIN_DIR} COMPONENT bin
        LIBRARY DESTINATION ${INSTALL_LIB_DIR} COMPONENT lib)

install(FILES ${HEADERS}
        DESTINATION ${INSTALL_INC_DIR}/HEP/Detectors)

if(BUILD_TESTING)
  include(uLibTargetMacros)
  add_subdirectory(testing)
endif()
