################################################################################
# Copyright (C) 2014-2019 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH  #
#                                                                              #
#              This software is distributed under the terms of the             #
#              GNU Lesser General Public Licence (LGPL) version 3,             #
#                  copied verbatim in the file "LICENSE"                       #
################################################################################

set(target GeoBase)

set(sources
  FairGeoAsciiIo.cxx
  FairGeoAssembly.cxx
  FairGeoBasicShape.cxx
  FairGeoBrik.cxx
  FairGeoBuilder.cxx
  FairGeoCompositeVolume.cxx
  FairGeoCone.cxx
  FairGeoCons.cxx
  FairGeoEltu.cxx
  FairGeoInterface.cxx
  FairGeoIo.cxx
  FairGeoLoader.cxx
  FairGeoMatrix.cxx
  FairGeoMedia.cxx
  FairGeoMedium.cxx
  FairGeoNode.cxx
  FairGeoOldAsciiIo.cxx
  FairGeoPcon.cxx
  FairGeoPgon.cxx
  FairGeoRootBuilder.cxx
  FairGeoRotation.cxx
  FairGeoSet.cxx
  FairGeoShapes.cxx
  FairGeoSphe.cxx
  FairGeoTorus.cxx
  FairGeoTransform.cxx
  FairGeoTrap.cxx
  FairGeoTrd1.cxx
  FairGeoTube.cxx
  FairGeoTubs.cxx
  FairGeoVector.cxx
  FairGeoVolume.cxx
)

fair_change_extensions_if_exists(.cxx .h FILES "${sources}" OUTVAR headers)

add_library(${target} SHARED ${sources} ${headers})
add_library(FairRoot::${target} ALIAS ${target})
set_target_properties(${target} PROPERTIES ${PROJECT_LIBRARY_PROPERTIES})

target_include_directories(${target} PUBLIC
  $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
  $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>

  # TODO: DELETE ME ONCE USING root targets
  ${ROOT_INCLUDE_DIR}
)

target_link_directories(${target} PUBLIC
  ${ROOT_LIBRARY_DIR}
)

target_link_libraries(${target} PUBLIC
  FairRoot::FairTools

  Core
  MathCore
  Geom
  Graf3d # TRotMatrix
)

fairroot_target_root_dictionary(${target}
  HEADERS ${headers}
  LINKDEF GeoBaseLinkDef.h
)

install(TARGETS ${target} LIBRARY DESTINATION ${PROJECT_INSTALL_LIBDIR})
install(FILES ${headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
