Files
geant4/source/interfaces/common/sources.cmake
T
2021-12-10 16:15:15 +00:00

68 lines
1.8 KiB
CMake

# - G4UIcommon module build definition
# Module has optional sources
# List those always built
set(G4INTERFACES_COMMON_MODULE_HEADERS
G4InteractorMessenger.hh
G4VBasicShell.hh
G4VInteractiveSession.hh
G4VInteractorManager.hh)
set(G4INTERFACES_COMMON_MODULE_SOURCES
G4InteractorMessenger.cc
G4VBasicShell.cc
G4VInteractiveSession.cc
G4VInteractorManager.cc)
set(G4INTERFACES_COMMON_MODULE_LINK_LIBRARIES )
set(G4INTERFACES_COMMON_MODULE_COMPILE_DEFINITIONS )
# Add Qt if required
if(GEANT4_USE_QT)
list(APPEND G4INTERFACES_COMMON_MODULE_HEADERS G4Qt.hh)
list(APPEND G4INTERFACES_COMMON_MODULE_SOURCES G4Qt.cc)
# It uses Qt core and gui(?) libs
list(APPEND G4INTERFACES_COMMON_MODULE_LINK_LIBRARIES
Qt5::Gui Qt5::Core)
endif()
# Win32 option - always built when we're using MSVC
if(MSVC)
# Add the sources
list(APPEND G4INTERFACES_COMMON_MODULE_HEADERS G4Win32.hh)
list(APPEND G4INTERFACES_COMMON_MODULE_SOURCES G4Win32.cc)
endif()
# X11 options - we only need this for Xm (and Inventor, which activates XM)
if(UNIX AND GEANT4_USE_XM)
# Add the sources
list(APPEND G4INTERFACES_COMMON_MODULE_HEADERS G4Xt.hh)
list(APPEND G4INTERFACES_COMMON_MODULE_SOURCES G4Xt.cc)
# It uses the X11 libs?
list(APPEND G4INTERFACES_COMMON_MODULE_LINK_LIBRARIES
X11::SM X11::ICE X11::X11 X11::Xext X11::Xmu X11::Xt
)
endif()
if(GEANT4_USE_VTK)
list(APPEND G4INTERFACES_COMMON_MODULE_LINK_LIBRARIES
${VTK_LIBRARIES})
endif()
# Define the Geant4 Module.
geant4_add_module(G4UIcommon
PUBLIC_HEADERS
${G4INTERFACES_COMMON_MODULE_HEADERS}
SOURCES
${G4INTERFACES_COMMON_MODULE_SOURCES})
geant4_module_link_libraries(G4UIcommon
PUBLIC
G4intercoms
G4globman
# These are PUBLIC until use in client code better understood
${G4INTERFACES_COMMON_MODULE_LINK_LIBRARIES})