source: trunk/source/visualization/OpenGL/sources.cmake

Last change on this file was 1350, checked in by garnier, 13 years ago

update to last version 4.9.4

File size: 5.5 KB
Line 
1#------------------------------------------------------------------------------
2# sources.cmake
3# Module : G4OpenGL
4# Package: Geant4.src.G4visualization.G4OpenGL
5#
6# Sources description for a library.
7# Lists the sources and headers of the code explicitely.
8# Lists include paths needed.
9# Lists the internal granular and global dependencies of the library.
10# Source specific properties should be added at the end.
11#
12# Generated on : 24/9/2010
13#
14# $Id: sources.cmake,v 1.5 2010/12/01 16:57:53 bmorgan Exp $
15# GEANT4 Tag $Name:  $
16#
17#------------------------------------------------------------------------------
18
19# List external includes needed.
20include_directories(${CLHEP_INCLUDE_DIRS})
21
22# List internal includes needed.
23include_directories(${CMAKE_SOURCE_DIR}/source/digits_hits/hits/include)
24include_directories(${CMAKE_SOURCE_DIR}/source/geometry/management/include)
25include_directories(${CMAKE_SOURCE_DIR}/source/geometry/solids/CSG/include)
26include_directories(${CMAKE_SOURCE_DIR}/source/geometry/solids/specific/include)
27include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
28include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
29include_directories(${CMAKE_SOURCE_DIR}/source/graphics_reps/include)
30include_directories(${CMAKE_SOURCE_DIR}/source/intercoms/include)
31include_directories(${CMAKE_SOURCE_DIR}/source/interfaces/basic/include)
32include_directories(${CMAKE_SOURCE_DIR}/source/interfaces/common/include)
33include_directories(${CMAKE_SOURCE_DIR}/source/tracking/include)
34include_directories(${CMAKE_SOURCE_DIR}/source/visualization/externals/gl2ps/include)
35include_directories(${CMAKE_SOURCE_DIR}/source/visualization/management/include)
36include_directories(${CMAKE_SOURCE_DIR}/source/visualization/modeling/include)
37
38#
39# Module has optional sources
40#
41include(Geant4MacroDefineModule)
42
43#
44# Define the core sources, includes and libraries which all Geant4
45# OpenGL implementations use
46#
47set(G4VIS_MODULE_OPENGL_HEADERS 
48    G4OpenGL.hh
49    G4OpenGLImmediateViewer.hh
50    G4OpenGLImmediateSceneHandler.hh
51    G4OpenGLViewer.hh
52    G4OpenGLStoredViewer.hh
53    G4OpenGLStoredSceneHandler.hh
54    G4OpenGLBitMapStore.hh
55    G4OpenGLFontBaseStore.hh
56    G4OpenGLSceneHandler.hh
57    G4OpenGLSceneHandler.icc
58    G4OpenGLViewerMessenger.hh
59    G4OpenGLTransform3D.hh
60)
61
62set(G4VIS_MODULE_OPENGL_SOURCES 
63    G4OpenGLImmediateViewer.cc
64    G4OpenGLImmediateSceneHandler.cc
65    G4OpenGLViewer.cc
66    G4OpenGLStoredViewer.cc
67    G4OpenGLStoredSceneHandler.cc
68    G4OpenGLBitMapStore.cc
69    G4OpenGLFontBaseStore.cc
70    G4OpenGLSceneHandler.cc
71    G4OpenGLViewerMessenger.cc
72    G4OpenGLTransform3D.cc
73)
74
75#
76# May need OpenGL include here
77#
78include_directories(${OPENGL_INCLUDE_DIR})
79set(G4VIS_MODULE_OPENGL_LINK_LIBRARIES ${OPENGL_LIBRARIES})
80
81#
82# All of the above files must have the G4VIS_BUILD_OPENGL_DRIVER definition
83#
84GEANT4_ADD_COMPILE_DEFINITIONS(SOURCES ${G4VIS_MODULE_OPENGL_SOURCES}
85    COMPILE_DEFINITIONS G4VIS_BUILD_OPENGL_DRIVER)
86
87
88#
89# Qt only if selected
90#
91if(GEANT4_USE_QT)
92    #
93    # Add in the extra Qt GL sources
94    #
95    list(APPEND G4VIS_MODULE_OPENGL_HEADERS
96        G4OpenGLImmediateQt.hh
97        G4OpenGLImmediateQtViewer.hh
98        G4OpenGLQtExportDialog.hh
99        G4OpenGLQtMovieDialog.hh
100        G4OpenGLQtViewer.hh
101        G4OpenGLStoredQt.hh
102        G4OpenGLStoredQtViewer.hh)
103
104    list(APPEND G4VIS_MODULE_OPENGL_SOURCES
105        G4OpenGLImmediateQt.cc
106        G4OpenGLImmediateQtViewer.cc
107        G4OpenGLQtExportDialog.cc
108        G4OpenGLQtMovieDialog.cc
109        G4OpenGLQtViewer.cc
110        G4OpenGLStoredQt.cc
111        G4OpenGLStoredQtViewer.cc)
112
113
114    # Include the UseQt file to build the moc wrappers
115    include(${QT_USE_FILE})
116
117    # Add the moc sources - must use absolute path to the files
118    QT4_WRAP_CPP(G4OPENGL_MOC_SOURCES
119        ${CMAKE_SOURCE_DIR}/source/visualization/OpenGL/include/G4OpenGLQtExportDialog.hh
120        ${CMAKE_SOURCE_DIR}/source/visualization/OpenGL/include/G4OpenGLQtMovieDialog.hh
121        ${CMAKE_SOURCE_DIR}/source/visualization/OpenGL/include/G4OpenGLQtViewer.hh
122         OPTIONS -DG4VIS_BUILD_OPENGLQT_DRIVER)
123
124    list(APPEND G4VIS_MODULE_OPENGL_SOURCES ${G4OPENGL_MOC_SOURCES})
125
126    # Add the definitions
127    # Argh.. Have to remember about INTY and UI because of their use...
128    GEANT4_ADD_COMPILE_DEFINITIONS(SOURCES ${G4VIS_MODULE_OPENGL_SOURCES}
129        COMPILE_DEFINITIONS
130        G4VIS_BUILD_OPENGL_DRIVER;G4VIS_BUILD_OPENGLQT_DRIVER;G4INTY_BUILD_QT;G4UI_BUILD_QT_SESSION)
131
132    # And for the moc files because these are in the build tree
133    set_source_files_properties(${G4OPENGL_MOC_SOURCES}
134       PROPERTIES 
135       COMPILE_DEFINITIONS
136       "G4VIS_BUILD_OPENGL_DRIVER;G4VIS_BUILD_OPENGLQT_DRIVER"
137    )
138
139    # Add in Qt libraries
140    list(APPEND G4VIS_MODULE_OPENGL_LINK_LIBRARIES ${QT_LIBRARIES})
141
142endif()
143
144#
145# Define the Geant4 Module.
146#
147GEANT4_DEFINE_MODULE(NAME G4OpenGL
148    HEADERS
149        ${G4VIS_MODULE_OPENGL_HEADERS}
150    SOURCES
151        ${G4VIS_MODULE_OPENGL_SOURCES}
152    GRANULAR_DEPENDENCIES
153        G4UIbasic
154        G4UIcommon
155        G4csg
156        G4geometrymng
157        G4gl2ps
158        G4globman
159        G4graphics_reps
160        G4hits
161        G4intercoms
162        G4modeling
163        G4specsolids
164        G4tracking
165        G4vis_management
166    GLOBAL_DEPENDENCIES
167        G4digits_hits
168        G4geometry
169        G4gl2ps
170        G4global
171        G4graphics_reps
172        G4intercoms
173        G4interfaces
174        G4modeling
175        G4tracking
176        G4vis_management
177    LINK_LIBRARIES
178        ${G4VIS_MODULE_OPENGL_LINK_LIBRARIES}
179)
180
181# List any source specific properties here
182
Note: See TracBrowser for help on using the repository browser.