comparison Resources/CMake/OrthancStoneConfiguration.cmake @ 673:3f13f7f1b55d am-dev

merge default -> am-dev
author Alain Mazy <alain@mazy.be>
date Thu, 16 May 2019 09:11:14 +0200
parents e9339f2b5de7
children 7719eb852dd5
comparison
equal deleted inserted replaced
657:9e3bb8b4f726 673:3f13f7f1b55d
54 54
55 if (ENABLE_SSL) 55 if (ENABLE_SSL)
56 message(FATAL_ERROR "Cannot enable SSL in sandboxed environments") 56 message(FATAL_ERROR "Cannot enable SSL in sandboxed environments")
57 endif() 57 endif()
58 endif() 58 endif()
59
60 if (ENABLE_WASM)
61 if (NOT ORTHANC_SANDBOXED)
62 message(FATAL_ERROR "WebAssembly target must me configured as sandboxed")
63 endif()
64
65 if (NOT CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
66 message(FATAL_ERROR "WebAssembly target requires the emscripten compiler")
67 endif()
68
69 add_definitions(-DORTHANC_ENABLE_WASM=1)
70 else()
71 if (CMAKE_SYSTEM_NAME STREQUAL "Emscripten" OR
72 CMAKE_SYSTEM_NAME STREQUAL "PNaCl" OR
73 CMAKE_SYSTEM_NAME STREQUAL "NaCl32" OR
74 CMAKE_SYSTEM_NAME STREQUAL "NaCl64")
75 message(FATAL_ERROR "Trying to use a Web compiler for a native build")
76 endif()
77
78 add_definitions(-DORTHANC_ENABLE_WASM=0)
79 endif()
59 80
60 81
61 ##################################################################### 82 #####################################################################
62 ## Configure mandatory third-party components 83 ## Configure mandatory third-party components
63 ##################################################################### 84 #####################################################################
65 SET(ORTHANC_STONE_ROOT ${CMAKE_CURRENT_LIST_DIR}/../..) 86 SET(ORTHANC_STONE_ROOT ${CMAKE_CURRENT_LIST_DIR}/../..)
66 87
67 include(FindPkgConfig) 88 include(FindPkgConfig)
68 include(${CMAKE_CURRENT_LIST_DIR}/BoostExtendedConfiguration.cmake) 89 include(${CMAKE_CURRENT_LIST_DIR}/BoostExtendedConfiguration.cmake)
69 include(${CMAKE_CURRENT_LIST_DIR}/CairoConfiguration.cmake) 90 include(${CMAKE_CURRENT_LIST_DIR}/CairoConfiguration.cmake)
91 include(${CMAKE_CURRENT_LIST_DIR}/FreetypeConfiguration.cmake)
70 include(${CMAKE_CURRENT_LIST_DIR}/PixmanConfiguration.cmake) 92 include(${CMAKE_CURRENT_LIST_DIR}/PixmanConfiguration.cmake)
71 93
72 94
73 95
74 ##################################################################### 96 #####################################################################
85 if (ENABLE_SDL AND ENABLE_QT) 107 if (ENABLE_SDL AND ENABLE_QT)
86 message("SDL and QT may not be defined together") 108 message("SDL and QT may not be defined together")
87 elseif(ENABLE_SDL) 109 elseif(ENABLE_SDL)
88 message("SDL is enabled") 110 message("SDL is enabled")
89 include(${CMAKE_CURRENT_LIST_DIR}/SdlConfiguration.cmake) 111 include(${CMAKE_CURRENT_LIST_DIR}/SdlConfiguration.cmake)
90 add_definitions(-DORTHANC_ENABLE_NATIVE=1) 112 add_definitions(
91 add_definitions(-DORTHANC_ENABLE_QT=0) 113 -DORTHANC_ENABLE_NATIVE=1
92 add_definitions(-DORTHANC_ENABLE_SDL=1) 114 -DORTHANC_ENABLE_QT=0
115 -DORTHANC_ENABLE_SDL=1
116 )
93 elseif(ENABLE_QT) 117 elseif(ENABLE_QT)
94 message("QT is enabled") 118 message("QT is enabled")
95 include(${CMAKE_CURRENT_LIST_DIR}/QtConfiguration.cmake) 119 include(${CMAKE_CURRENT_LIST_DIR}/QtConfiguration.cmake)
96 add_definitions(-DORTHANC_ENABLE_NATIVE=1) 120 add_definitions(
97 add_definitions(-DORTHANC_ENABLE_QT=1) 121 -DORTHANC_ENABLE_NATIVE=1
98 add_definitions(-DORTHANC_ENABLE_SDL=0) 122 -DORTHANC_ENABLE_QT=1
123 -DORTHANC_ENABLE_SDL=0
124 )
99 else() 125 else()
100 message("SDL and QT are both disabled") 126 message("SDL and QT are both disabled")
101 unset(USE_SYSTEM_SDL CACHE) 127 unset(USE_SYSTEM_SDL CACHE)
102 add_definitions(-DORTHANC_ENABLE_SDL=0) 128 add_definitions(
103 add_definitions(-DORTHANC_ENABLE_QT=0) 129 -DORTHANC_ENABLE_SDL=0
104 add_definitions(-DORTHANC_ENABLE_NATIVE=0) 130 -DORTHANC_ENABLE_QT=0
131 -DORTHANC_ENABLE_NATIVE=0
132 )
133 endif()
134
135
136 if (ENABLE_OPENGL AND CMAKE_SYSTEM_NAME STREQUAL "Windows")
137 include(${CMAKE_CURRENT_LIST_DIR}/GlewConfiguration.cmake)
138 add_definitions(
139 -DORTHANC_ENABLE_GLEW=1
140 )
141 else()
142 add_definitions(
143 -DORTHANC_ENABLE_GLEW=0
144 )
145 endif()
146
147
148 if (ENABLE_OPENGL)
149 if (NOT CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
150 # If including "FindOpenGL.cmake" using Emscripten (targeting
151 # WebAssembly), the "OPENGL_LIBRARIES" value incorrectly includes
152 # the "nul" library, which leads to warning message in Emscripten:
153 # 'shared:WARNING: emcc: cannot find library "nul"'.
154 include(FindOpenGL)
155 if (NOT OPENGL_FOUND)
156 message(FATAL_ERROR "Cannot find OpenGL on your system")
157 endif()
158
159 link_libraries(${OPENGL_LIBRARIES})
160 endif()
161
162 add_definitions(
163 -DGL_GLEXT_PROTOTYPES=1
164 -DORTHANC_ENABLE_OPENGL=1
165 )
166 else()
167 add_definitions(-DORTHANC_ENABLE_OPENGL=0)
105 endif() 168 endif()
106 169
107 170
108 171
109 ##################################################################### 172 #####################################################################
121 ) 184 )
122 185
123 if (CMAKE_BUILD_TYPE STREQUAL "Debug") 186 if (CMAKE_BUILD_TYPE STREQUAL "Debug")
124 add_definitions(-DCHECK_OBSERVERS_MESSAGES) 187 add_definitions(-DCHECK_OBSERVERS_MESSAGES)
125 endif() 188 endif()
189
190
126 191
127 ##################################################################### 192 #####################################################################
128 ## Embed the colormaps into the binaries 193 ## Embed the colormaps into the binaries
129 ##################################################################### 194 #####################################################################
130 195
198 ${ORTHANC_STONE_ROOT}/Applications/Generic/NativeStoneApplicationRunner.cpp 263 ${ORTHANC_STONE_ROOT}/Applications/Generic/NativeStoneApplicationRunner.cpp
199 ${ORTHANC_STONE_ROOT}/Applications/Generic/NativeStoneApplicationContext.cpp 264 ${ORTHANC_STONE_ROOT}/Applications/Generic/NativeStoneApplicationContext.cpp
200 ) 265 )
201 if (ENABLE_SDL) 266 if (ENABLE_SDL)
202 list(APPEND APPLICATIONS_SOURCES 267 list(APPEND APPLICATIONS_SOURCES
268 ${ORTHANC_STONE_ROOT}/Applications/Sdl/SdlCairoSurface.cpp
269 ${ORTHANC_STONE_ROOT}/Applications/Sdl/SdlEngine.cpp
270 ${ORTHANC_STONE_ROOT}/Applications/Sdl/SdlOpenGLWindow.cpp
271 ${ORTHANC_STONE_ROOT}/Applications/Sdl/SdlOrthancSurface.cpp
203 ${ORTHANC_STONE_ROOT}/Applications/Sdl/SdlStoneApplicationRunner.cpp 272 ${ORTHANC_STONE_ROOT}/Applications/Sdl/SdlStoneApplicationRunner.cpp
204 ${ORTHANC_STONE_ROOT}/Applications/Sdl/SdlEngine.cpp
205 ${ORTHANC_STONE_ROOT}/Applications/Sdl/SdlCairoSurface.cpp
206 ${ORTHANC_STONE_ROOT}/Applications/Sdl/SdlOrthancSurface.cpp
207 ${ORTHANC_STONE_ROOT}/Applications/Sdl/SdlWindow.cpp 273 ${ORTHANC_STONE_ROOT}/Applications/Sdl/SdlWindow.cpp
208 ) 274 )
209 endif() 275 endif()
210 endif() 276 endif()
211 elseif (ENABLE_WASM) 277 elseif (ENABLE_WASM)
241 307
242 list(APPEND ORTHANC_STONE_SOURCES 308 list(APPEND ORTHANC_STONE_SOURCES
243 #${ORTHANC_STONE_ROOT}/Framework/Layers/SeriesFrameRendererFactory.cpp 309 #${ORTHANC_STONE_ROOT}/Framework/Layers/SeriesFrameRendererFactory.cpp
244 #${ORTHANC_STONE_ROOT}/Framework/Layers/SingleFrameRendererFactory.cpp 310 #${ORTHANC_STONE_ROOT}/Framework/Layers/SingleFrameRendererFactory.cpp
245 311
312 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/CairoCompositor.cpp
313 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/ColorTextureSceneLayer.cpp
314 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/FloatTextureSceneLayer.cpp
315 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/InfoPanelSceneLayer.cpp
316 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/Internals/CairoColorTextureRenderer.cpp
317 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/Internals/CairoFloatTextureRenderer.cpp
318 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/Internals/CairoInfoPanelRenderer.cpp
319 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/Internals/CairoPolylineRenderer.cpp
320 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/Internals/CairoTextRenderer.cpp
321 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/Internals/CompositorHelper.cpp
322 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/Internals/FixedPointAligner.cpp
323 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/PanSceneTracker.cpp
324 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/PointerEvent.cpp
325 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/PolylineSceneLayer.cpp
326 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/RotateSceneTracker.cpp
327 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/Scene2D.cpp
328 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/TextSceneLayer.cpp
329 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/TextureBaseSceneLayer.cpp
330 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/ZoomSceneTracker.cpp
331
332 ${ORTHANC_STONE_ROOT}/Framework/Fonts/FontRenderer.cpp
333 ${ORTHANC_STONE_ROOT}/Framework/Fonts/Glyph.cpp
334 ${ORTHANC_STONE_ROOT}/Framework/Fonts/GlyphAlphabet.cpp
335 ${ORTHANC_STONE_ROOT}/Framework/Fonts/GlyphBitmapAlphabet.cpp
336 ${ORTHANC_STONE_ROOT}/Framework/Fonts/GlyphTextureAlphabet.cpp
337 ${ORTHANC_STONE_ROOT}/Framework/Fonts/TextBoundingBox.cpp
246 ${ORTHANC_STONE_ROOT}/Framework/Layers/CircleMeasureTracker.cpp 338 ${ORTHANC_STONE_ROOT}/Framework/Layers/CircleMeasureTracker.cpp
247 ${ORTHANC_STONE_ROOT}/Framework/Layers/ColorFrameRenderer.cpp 339 ${ORTHANC_STONE_ROOT}/Framework/Layers/ColorFrameRenderer.cpp
248 ${ORTHANC_STONE_ROOT}/Framework/Layers/DicomSeriesVolumeSlicer.cpp 340 ${ORTHANC_STONE_ROOT}/Framework/Layers/DicomSeriesVolumeSlicer.cpp
249 ${ORTHANC_STONE_ROOT}/Framework/Layers/DicomStructureSetSlicer.cpp 341 ${ORTHANC_STONE_ROOT}/Framework/Layers/DicomStructureSetSlicer.cpp
250 ${ORTHANC_STONE_ROOT}/Framework/Layers/FrameRenderer.cpp 342 ${ORTHANC_STONE_ROOT}/Framework/Layers/FrameRenderer.cpp
271 ${ORTHANC_STONE_ROOT}/Framework/Radiography/RadiographyWidget.cpp 363 ${ORTHANC_STONE_ROOT}/Framework/Radiography/RadiographyWidget.cpp
272 ${ORTHANC_STONE_ROOT}/Framework/Radiography/RadiographyWindowingTracker.cpp 364 ${ORTHANC_STONE_ROOT}/Framework/Radiography/RadiographyWindowingTracker.cpp
273 ${ORTHANC_STONE_ROOT}/Framework/SmartLoader.cpp 365 ${ORTHANC_STONE_ROOT}/Framework/SmartLoader.cpp
274 ${ORTHANC_STONE_ROOT}/Framework/StoneEnumerations.cpp 366 ${ORTHANC_STONE_ROOT}/Framework/StoneEnumerations.cpp
275 ${ORTHANC_STONE_ROOT}/Framework/StoneException.h 367 ${ORTHANC_STONE_ROOT}/Framework/StoneException.h
368 ${ORTHANC_STONE_ROOT}/Framework/StoneInitialization.cpp
276 ${ORTHANC_STONE_ROOT}/Framework/Toolbox/AffineTransform2D.cpp 369 ${ORTHANC_STONE_ROOT}/Framework/Toolbox/AffineTransform2D.cpp
277 ${ORTHANC_STONE_ROOT}/Framework/Toolbox/BaseWebService.cpp 370 ${ORTHANC_STONE_ROOT}/Framework/Toolbox/BaseWebService.cpp
278 ${ORTHANC_STONE_ROOT}/Framework/Toolbox/CoordinateSystem3D.cpp 371 ${ORTHANC_STONE_ROOT}/Framework/Toolbox/CoordinateSystem3D.cpp
279 ${ORTHANC_STONE_ROOT}/Framework/Toolbox/DicomFrameConverter.cpp 372 ${ORTHANC_STONE_ROOT}/Framework/Toolbox/DicomFrameConverter.cpp
280 ${ORTHANC_STONE_ROOT}/Framework/Toolbox/DicomStructureSet.cpp 373 ${ORTHANC_STONE_ROOT}/Framework/Toolbox/DicomStructureSet.cpp
281 ${ORTHANC_STONE_ROOT}/Framework/Toolbox/DownloadStack.cpp 374 ${ORTHANC_STONE_ROOT}/Framework/Toolbox/DownloadStack.cpp
375 ${ORTHANC_STONE_ROOT}/Framework/Toolbox/DynamicBitmap.cpp
282 ${ORTHANC_STONE_ROOT}/Framework/Toolbox/Extent2D.cpp 376 ${ORTHANC_STONE_ROOT}/Framework/Toolbox/Extent2D.cpp
283 ${ORTHANC_STONE_ROOT}/Framework/Toolbox/FiniteProjectiveCamera.cpp 377 ${ORTHANC_STONE_ROOT}/Framework/Toolbox/FiniteProjectiveCamera.cpp
284 ${ORTHANC_STONE_ROOT}/Framework/Toolbox/GeometryToolbox.cpp 378 ${ORTHANC_STONE_ROOT}/Framework/Toolbox/GeometryToolbox.cpp
285 ${ORTHANC_STONE_ROOT}/Framework/Toolbox/IDelayedCallExecutor.h 379 ${ORTHANC_STONE_ROOT}/Framework/Toolbox/IDelayedCallExecutor.h
286 ${ORTHANC_STONE_ROOT}/Framework/Toolbox/IWebService.cpp 380 ${ORTHANC_STONE_ROOT}/Framework/Toolbox/IWebService.cpp
318 ${ORTHANC_STONE_ROOT}/Framework/Widgets/TestCairoWidget.cpp 412 ${ORTHANC_STONE_ROOT}/Framework/Widgets/TestCairoWidget.cpp
319 ${ORTHANC_STONE_ROOT}/Framework/Widgets/TestWorldSceneWidget.cpp 413 ${ORTHANC_STONE_ROOT}/Framework/Widgets/TestWorldSceneWidget.cpp
320 ${ORTHANC_STONE_ROOT}/Framework/Widgets/WidgetBase.cpp 414 ${ORTHANC_STONE_ROOT}/Framework/Widgets/WidgetBase.cpp
321 ${ORTHANC_STONE_ROOT}/Framework/Widgets/WorldSceneWidget.cpp 415 ${ORTHANC_STONE_ROOT}/Framework/Widgets/WorldSceneWidget.cpp
322 ${ORTHANC_STONE_ROOT}/Framework/Widgets/ZoomMouseTracker.cpp 416 ${ORTHANC_STONE_ROOT}/Framework/Widgets/ZoomMouseTracker.cpp
417
323 ${ORTHANC_STONE_ROOT}/Framework/dev.h 418 ${ORTHANC_STONE_ROOT}/Framework/dev.h
324 419
325 ${ORTHANC_STONE_ROOT}/Framework/Messages/ICallable.h 420 ${ORTHANC_STONE_ROOT}/Framework/Messages/ICallable.h
326 ${ORTHANC_STONE_ROOT}/Framework/Messages/IMessage.h 421 ${ORTHANC_STONE_ROOT}/Framework/Messages/IMessage.h
327 ${ORTHANC_STONE_ROOT}/Framework/Messages/IObservable.cpp 422 ${ORTHANC_STONE_ROOT}/Framework/Messages/IObservable.cpp
341 ${ORTHANC_DICOM_SOURCES} 436 ${ORTHANC_DICOM_SOURCES}
342 ${AUTOGENERATED_SOURCES} 437 ${AUTOGENERATED_SOURCES}
343 438
344 # Mandatory components 439 # Mandatory components
345 ${CAIRO_SOURCES} 440 ${CAIRO_SOURCES}
441 ${FREETYPE_SOURCES}
346 ${PIXMAN_SOURCES} 442 ${PIXMAN_SOURCES}
347 443
348 # Optional components 444 # Optional components
349 ${SDL_SOURCES} 445 ${SDL_SOURCES}
350 ${QT_SOURCES} 446 ${QT_SOURCES}
351 ${BOOST_EXTENDED_SOURCES} 447 ${BOOST_EXTENDED_SOURCES}
448 ${GLEW_SOURCES}
352 ) 449 )
450
451
452 if (ENABLE_OPENGL)
453 list(APPEND ORTHANC_STONE_SOURCES
454 ${ORTHANC_STONE_ROOT}/Framework/Fonts/OpenGLTextCoordinates.cpp
455 ${ORTHANC_STONE_ROOT}/Framework/OpenGL/OpenGLProgram.cpp
456 ${ORTHANC_STONE_ROOT}/Framework/OpenGL/OpenGLShader.cpp
457 ${ORTHANC_STONE_ROOT}/Framework/OpenGL/OpenGLTexture.cpp
458 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/OpenGLCompositor.cpp
459 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/Internals/OpenGLAdvancedPolylineRenderer.cpp
460 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/Internals/OpenGLBasicPolylineRenderer.cpp
461 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/Internals/OpenGLColorTextureProgram.cpp
462 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/Internals/OpenGLColorTextureRenderer.cpp
463 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/Internals/OpenGLFloatTextureProgram.cpp
464 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/Internals/OpenGLFloatTextureRenderer.cpp
465 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/Internals/OpenGLInfoPanelRenderer.cpp
466 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/Internals/OpenGLLinesProgram.cpp
467 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/Internals/OpenGLTextProgram.cpp
468 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/Internals/OpenGLTextRenderer.cpp
469 ${ORTHANC_STONE_ROOT}/Framework/Scene2D/Internals/OpenGLTextureProgram.cpp
470 )
471
472 if (ENABLE_WASM)
473 list(APPEND ORTHANC_STONE_SOURCES
474 ${ORTHANC_STONE_ROOT}/Framework/OpenGL/WebAssemblyOpenGLContext.cpp
475 )
476 endif()
477 endif()
478
353 479
354 include_directories(${ORTHANC_STONE_ROOT}) 480 include_directories(${ORTHANC_STONE_ROOT})
355 481
356 482
357 ## 483 ##