Files
geant4/source/visualization/ToolsSG/sources.cmake
T
2022-12-09 14:43:28 +01:00

93 lines
2.7 KiB
CMake

# - G4ToolsSG module build definition
# Define the Geant4 Module.
geant4_add_module(G4ToolsSG
PUBLIC_HEADERS
G4ToolsSGNode.hh
G4ToolsSGSceneHandler.hh
G4ToolsSGViewer.hh
G4ToolsSGOffscreen.hh
G4ToolsSGOffscreenViewer.hh
SOURCES
G4ToolsSGSceneHandler.cc
G4ToolsSGOffscreen.cc)
geant4_module_link_libraries(G4ToolsSG
PUBLIC
G4intercoms
G4modeling
G4vis_management
G4tools
PRIVATE
G4graphics_reps
G4navigation)
# Freetype support if selected
if(GEANT4_USE_FREETYPE)
geant4_module_compile_definitions(G4ToolsSG PRIVATE TOOLS_USE_FREETYPE)
geant4_module_link_libraries(G4ToolsSG PUBLIC Freetype::Freetype)
endif()
# X11 sources if selected
if(GEANT4_USE_TOOLSSG_X11_GLES)
geant4_module_sources(G4ToolsSG PUBLIC_HEADERS G4ToolsSGX11GLES.hh SOURCES G4ToolsSGX11GLES.cc)
endif()
# Xt sources if selected
if(GEANT4_USE_TOOLSSG_XT_GLES)
geant4_module_sources(G4ToolsSG PUBLIC_HEADERS G4ToolsSGXtGLES.hh SOURCES G4ToolsSGXtGLES.cc)
geant4_module_compile_definitions(G4ToolsSG PRIVATE TOOLS_USE_GL_GL_H)
# A minor hack around a likely issue in geant4_module_link_libraries
# When Qt is activated, G4UIcommon is a public dependency. CMake will deduplicate
# this (in favour of PUBLIC at final library link time, but geant4_module_link_libraries
# does not do this internally yet (To be checked). We then get validation
# warnings on duplicated deps. NB: Also demonstrates awkward vis system of more than
# one driver per library...
if(GEANT4_USE_TOOLSSG_QT_GLES)
geant4_module_link_libraries(G4ToolsSG PUBLIC G4UIcommon)
else()
geant4_module_link_libraries(G4ToolsSG PRIVATE G4UIcommon)
endif()
endif()
# X11/Xt links if selected
if(GEANT4_USE_TOOLSSG_X11_GLES OR GEANT4_USE_TOOLSSG_XT_GLES)
geant4_module_link_libraries(G4ToolsSG PUBLIC X11::SM X11::ICE X11::X11 X11::Xext X11::Xmu)
if(APPLE)
geant4_module_link_libraries(G4ToolsSG PUBLIC XQuartzGL::GL)
else()
geant4_module_link_libraries(G4ToolsSG PUBLIC OpenGL::GL)
endif()
endif()
# Qt sources/links if selected
if(GEANT4_USE_TOOLSSG_QT_GLES)
geant4_module_sources(G4ToolsSG
PUBLIC_HEADERS
G4ToolsSGQtViewer.hh
G4ToolsSGQtGLES.hh
SOURCES
G4ToolsSGQtGLES.cc
G4ToolsSGQtViewer.cc)
geant4_module_link_libraries(G4ToolsSG
PUBLIC
Qt${QT_VERSION_MAJOR}::OpenGL
Qt${QT_VERSION_MAJOR}::Gui
Qt${QT_VERSION_MAJOR}::PrintSupport
Qt${QT_VERSION_MAJOR}::Widgets
OpenGL::GL
G4UIbasic
G4UIcommon)
endif()
# Windows sources if selected
if(GEANT4_USE_TOOLSSG_WINDOWS_GLES)
geant4_module_sources(G4ToolsSG PUBLIC_HEADERS G4ToolsSGWindowsGLES.hh SOURCES G4ToolsSGWindowsGLES.cc)
geant4_module_link_libraries(G4ToolsSG PUBLIC OpenGL::GL)
endif()