@ -328,108 +328,113 @@ else()
set ( MAGNUM_LIBRARY Magnum::Magnum )
endif ( )
# E n s u r e t h a t a l l i n t e r - c o m p o n e n t d e p e n d e n c i e s a r e s p e c i f i e d a s w e l l
set ( _MAGNUM_ADDITIONAL_COMPONENTS )
foreach ( _component ${ Magnum_FIND_COMPONENTS } )
string ( TOUPPER ${ _component } _COMPONENT )
# C o m p o n e n t distinction ( listing them explicitly to avoid mistakes with finding
# c o m p o n e n t s f r o m o t h e r r e p o s i t o r i e s )
set ( _MAGNUM_LIBRARY_COMPONENT_LIST
A u d i o D e b u g T o o l s G L M e s h T o o l s P r i m i t i v e s S c e n e G r a p h S h a d e r s S h a p e s T e x t
T e x t u r e T o o l s T r a d e
A n d r o i d A p p l i c a t i o n G l f w A p p l i c a t i o n G l u t A p p l i c a t i o n G l x A p p l i c a t i o n
S d l 2 A p p l i c a t i o n X E g l A p p l i c a t i o n W i n d o w l e s s C g l A p p l i c a t i o n
W i n d o w l e s s E g l A p p l i c a t i o n W i n d o w l e s s G l x A p p l i c a t i o n W i n d o w l e s s I o s A p p l i c a t i o n W i n d o w l e s s W g l A p p l i c a t i o n W i n d o w l e s s W i n d o w s E g l A p p l i c a t i o n
C g l C o n t e x t E g l C o n t e x t G l x C o n t e x t W g l C o n t e x t
O p e n G L T e s t e r )
set ( _MAGNUM_PLUGIN_COMPONENT_LIST
A n y A u d i o I m p o r t e r A n y I m a g e C o n v e r t e r A n y I m a g e I m p o r t e r A n y S c e n e I m p o r t e r
M a g n u m F o n t M a g n u m F o n t C o n v e r t e r O b j I m p o r t e r T g a I m a g e C o n v e r t e r T g a I m p o r t e r
W a v A u d i o I m p o r t e r )
set ( _MAGNUM_EXECUTABLE_COMPONENT_LIST
d i s t a n c e f i e l d c o n v e r t e r f o n t c o n v e r t e r i m a g e c o n v e r t e r g l - i n f o a l - i n f o )
# I n t e r - c o m p o n e n t d e p e n d e n c i e s
set ( _MAGNUM_Audio_DEPENDENCIES )
set ( _MAGNUM_DebugTools_DEPENDENCIES )
if ( MAGNUM_TARGET_GL )
# M e s h T o o l s , P r i m i t i v e s , S c e n e G r a p h , S h a d e r s a n d S h a p e s a r e u s e d o n l y f o r
# G L r e n d e r e r s
list ( APPEND _MAGNUM_DebugTools_DEPENDENCIES MeshTools Primitives SceneGraph Shaders Shapes Trade GL )
endif ( )
if ( _component STREQUAL Audio )
# n o i n t e r - c o m p o n e n t d e p e n d e n c i e s
elseif ( _component STREQUAL DebugTools )
if ( MAGNUM_TARGET_GL )
# M e s h T o o l s , P r i m i t i v e s , S c e n e G r a p h , S h a d e r s a n d S h a p e s a r e u s e d
# o n l y f o r G L r e n d e r e r s
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES MeshTools Primitives SceneGraph Shaders Shapes Trade GL )
endif ( )
elseif ( _component STREQUAL MeshTools )
if ( MAGNUM_TARGET_GL )
# T r a d e i s u s e d o n l y i n compile ( ) , w h i c h n e e d s G L a s w e l l
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES Trade GL )
endif ( )
elseif ( _component STREQUAL OpenGLTester )
if ( MAGNUM_TARGET_HEADLESS OR CORRADE_TARGET_EMSCRIPTEN OR CORRADE_TARGET_ANDROID )
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES WindowlessEglApplication GL )
elseif ( CORRADE_TARGET_IOS )
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES WindowlessIosApplication GL )
elseif ( CORRADE_TARGET_APPLE )
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES WindowlessCglApplication GL )
elseif ( CORRADE_TARGET_UNIX )
if ( MAGNUM_TARGET_GLES AND NOT MAGNUM_TARGET_DESKTOP_GLES )
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES WindowlessEglApplication GL )
else ( )
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES WindowlessGlxApplication GL )
endif ( )
elseif ( CORRADE_TARGET_WINDOWS )
if ( NOT MAGNUM_TARGET_GLES OR MAGNUM_TARGET_DESKTOP_GLES )
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES WindowlessWglApplication GL )
else ( )
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES WindowlessWindowsEglApplication GL )
endif ( )
endif ( )
elseif ( _component STREQUAL Primitives )
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES Trade )
elseif ( _component STREQUAL SceneGraph )
# n o d e p e n d e n c i e s e x c e p t f o r t h e m a i n l i b
elseif ( _component STREQUAL Shaders )
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES GL )
elseif ( _component STREQUAL Shapes )
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES SceneGraph )
elseif ( _component STREQUAL Text )
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES TextureTools GL )
elseif ( _component STREQUAL TextureTools )
if ( MAGNUM_TARGET_GL )
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES GL )
endif ( )
elseif ( _component STREQUAL Trade )
# n o d e p e n d e n c i e s e x c e p t f o r t h e m a i n l i b
elseif ( _component STREQUAL AndroidApplication )
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES GL )
elseif ( _component STREQUAL GlfwApplication )
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES GL )
elseif ( _component STREQUAL GlutApplication )
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES GL )
elseif ( _component STREQUAL GlxApplication )
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES GL )
elseif ( _component STREQUAL Sdl2Application )
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES GL )
elseif ( _component STREQUAL WindowlessCglApplication )
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES GL )
elseif ( _component STREQUAL WindowlessEglApplication )
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES GL )
elseif ( _component STREQUAL WindowlessGlxApplication )
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES GL )
elseif ( _component STREQUAL WindowlessIosApplication )
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES GL )
elseif ( _component STREQUAL WindowlessWglApplication )
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES GL )
elseif ( _component STREQUAL WindowlessWindowsEglApplication )
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES GL )
elseif ( _component STREQUAL XEglApplication )
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES GL )
elseif ( _component STREQUAL MagnumFont )
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES Trade TgaImporter ) # a n d b e l o w
elseif ( _component STREQUAL MagnumFontConverter )
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES Trade TgaImageConverter ) # a n d b e l o w
elseif ( _component STREQUAL ObjImporter )
set ( _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES MeshTools ) # a n d b e l o w
set ( _MAGNUM_MeshTools_DEPENDENCIES )
if ( MAGNUM_TARGET_GL )
# T r a d e i s u s e d o n l y i n compile ( ) , w h i c h n e e d s G L a s w e l l
list ( APPEND _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES Trade GL )
endif ( )
set ( _MAGNUM_OpenGLTester_DEPENDENCIES GL )
if ( MAGNUM_TARGET_HEADLESS OR CORRADE_TARGET_EMSCRIPTEN OR CORRADE_TARGET_ANDROID )
list ( APPEND _MAGNUM_OpenGLTester_DEPENDENCIES WindowlessEglApplication )
elseif ( CORRADE_TARGET_IOS )
list ( APPEND _MAGNUM_OpenGLTester_DEPENDENCIES WindowlessIosApplication )
elseif ( CORRADE_TARGET_APPLE )
list ( APPEND _MAGNUM_OpenGLTester_DEPENDENCIES WindowlessCglApplication )
elseif ( CORRADE_TARGET_UNIX )
if ( MAGNUM_TARGET_GLES AND NOT MAGNUM_TARGET_DESKTOP_GLES )
list ( APPEND _MAGNUM_OpenGLTester_DEPENDENCIES WindowlessEglApplication )
else ( )
list ( APPEND _MAGNUM_OpenGLTester_DEPENDENCIES WindowlessGlxApplication )
endif ( )
elseif ( CORRADE_TARGET_WINDOWS )
if ( NOT MAGNUM_TARGET_GLES OR MAGNUM_TARGET_DESKTOP_GLES )
list ( APPEND _MAGNUM_OpenGLTester_DEPENDENCIES WindowlessWglApplication )
else ( )
list ( APPEND _MAGNUM_OpenGLTester_DEPENDENCIES WindowlessWindowsEglApplication )
endif ( )
endif ( )
set ( _MAGNUM_Primitives_DEPENDENCIES Trade )
set ( _MAGNUM_SceneGraph_DEPENDENCIES )
set ( _MAGNUM_Shaders_DEPENDENCIES GL )
set ( _MAGNUM_Shapes_DEPENDENCIES SceneGraph )
set ( _MAGNUM_Text_DEPENDENCIES TextureTools GL )
set ( _MAGNUM_TextureTools_DEPENDENCIES )
if ( MAGNUM_TARGET_GL )
list ( APPEND _MAGNUM_TextureTools_DEPENDENCIES GL )
endif ( )
set ( _MAGNUM_Trade_DEPENDENCIES )
set ( _MAGNUM_AndroidApplication_DEPENDENCIES GL )
set ( _MAGNUM_GlfwApplication_DEPENDENCIES GL )
set ( _MAGNUM_GlutApplication_DEPENDENCIES GL )
set ( _MAGNUM_GlxApplication_DEPENDENCIES GL )
set ( _MAGNUM_Sdl2Application_DEPENDENCIES GL )
set ( _MAGNUM_WindowlessCglApplication_DEPENDENCIES GL )
set ( _MAGNUM_WindowlessEglApplication_DEPENDENCIES GL )
set ( _MAGNUM_WindowlessGlxApplication_DEPENDENCIES GL )
set ( _MAGNUM_WindowlessIosApplication_DEPENDENCIES GL )
set ( _MAGNUM_WindowlessWglApplication_DEPENDENCIES GL )
set ( _MAGNUM_WindowlessWindowsEglApplication_DEPENDENCIES GL )
set ( _MAGNUM_XEglApplication_DEPENDENCIES GL )
set ( _MAGNUM_CglContext_DEPENDENCIES GL )
set ( _MAGNUM_EglContext_DEPENDENCIES GL )
set ( _MAGNUM_GlxContext_DEPENDENCIES GL )
set ( _MAGNUM_WglContext_DEPENDENCIES GL )
set ( _MAGNUM_MagnumFont_DEPENDENCIES Trade TgaImporter ) # a n d b e l o w
set ( _MAGNUM_MagnumFontConverter_DEPENDENCIES Trade TgaImageConverter ) # a n d b e l o w
set ( _MAGNUM_ObjImporter_DEPENDENCIES MeshTools ) # a n d b e l o w
foreach ( _component ${ _MAGNUM_PLUGIN_COMPONENT_LIST } )
if ( _component MATCHES ".+AudioImporter" )
list ( APPEND _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES Audio )
list ( APPEND _MAGNUM_ ${ _component } _DEPENDENCIES Audio )
elseif ( _component MATCHES ".+(Importer|ImageConverter)" )
list ( APPEND _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES Trade )
list ( APPEND _MAGNUM_ ${ _component } _DEPENDENCIES Trade )
elseif ( _component MATCHES ".+(Font|FontConverter)" )
list ( APPEND _MAGNUM_ ${ _COMPONENT } _DEPENDENCIES Text TextureTools GL )
list ( APPEND _MAGNUM_ ${ _component } _DEPENDENCIES Text TextureTools GL )
endif ( )
endforeach ( )
# E n s u r e t h a t a l l i n t e r - c o m p o n e n t d e p e n d e n c i e s a r e s p e c i f i e d a s w e l l
set ( _MAGNUM_ADDITIONAL_COMPONENTS )
foreach ( _component ${ Magnum_FIND_COMPONENTS } )
# M a r k t h e d e p e n d e n c i e s a s r e q u i r e d i f t h e c o m p o n e n t i s a l s o r e q u i r e d
if ( Magnum_FIND_REQUIRED_ ${ _component } )
foreach ( _dependency ${ _MAGNUM_${_COMPONENT } _DEPENDENCIES} )
foreach ( _dependency ${ _MAGNUM_${_component } _DEPENDENCIES} )
set ( Magnum_FIND_REQUIRED_ ${ _dependency } TRUE )
endforeach ( )
endif ( )
list ( APPEND _MAGNUM_ADDITIONAL_COMPONENTS ${ _MAGNUM_${_COMPONENT } _DEPENDENCIES} )
list ( APPEND _MAGNUM_ADDITIONAL_COMPONENTS ${ _MAGNUM_${_component } _DEPENDENCIES} )
endforeach ( )
# J o i n t h e l i s t s , r e m o v e d u p l i c a t e c o m p o n e n t s
@ -440,11 +445,12 @@ if(Magnum_FIND_COMPONENTS)
list ( REMOVE_DUPLICATES Magnum_FIND_COMPONENTS )
endif ( )
# C o m p o n e n t distinction ( listing them explicitly to avoid mistakes with finding
# c o m p o n e n t s f r o m o t h e r r e p o s i t o r i e s )
set ( _MAGNUM_LIBRARY_COMPONENTS "^(Audio|DebugTools|GL|MeshTools|Primitives|SceneGraph|Shaders|Shapes|Text|TextureTools|Trade|AndroidApplication|GlfwApplication|GlutApplication|GlxApplication|Sdl2Application|XEglApplication|WindowlessCglApplication|WindowlessEglApplication|WindowlessGlxApplication|WindowlessIosApplication|WindowlessWglApplication|WindowlessWindowsEglApplication|CglContext|EglContext|GlxContext|WglContext|OpenGLTester)$" )
set ( _MAGNUM_PLUGIN_COMPONENTS "^(AnyAudioImporter|AnyImageConverter|AnyImageImporter|AnySceneImporter|MagnumFont|MagnumFontConverter|ObjImporter|TgaImageConverter|TgaImporter|WavAudioImporter)$" )
set ( _MAGNUM_EXECUTABLE_COMPONENTS "^(distancefieldconverter|fontconverter|imageconverter|gl-info|al-info)$" )
# C o n v e r t c o m p o n e n t s l i s t s t o r e g u l a r e x p r e s s i o n s s o I c a n u s e if ( MATCHES ) .
# T O D O : D r o p t h i s o n c e C M a k e 3 . 3 a n d if ( IN_LIST ) c a n b e u s e d
foreach ( _WHAT LIBRARY PLUGIN EXECUTABLE )
string ( REPLACE ";" "|" _MAGNUM_ ${ _WHAT } _COMPONENTS "${_MAGNUM_${_WHAT}_COMPONENT_LIST}" )
set ( _MAGNUM_ ${ _WHAT } _COMPONENTS "^(${_MAGNUM_${_WHAT}_COMPONENTS})$" )
endforeach ( )
# F i n d a l l c o m p o n e n t s
foreach ( _component ${ Magnum_FIND_COMPONENTS } )
@ -754,7 +760,7 @@ foreach(_component ${Magnum_FIND_COMPONENTS})
if ( _component MATCHES ${ _MAGNUM_LIBRARY_COMPONENTS } OR _component MATCHES ${ _MAGNUM_PLUGIN_COMPONENTS } )
set_property ( TARGET Magnum:: ${ _component } APPEND PROPERTY
I N T E R F A C E _ L I N K _ L I B R A R I E S M a g n u m : : M a g n u m )
foreach ( _dependency ${ _MAGNUM_${_COMPONENT } _DEPENDENCIES} )
foreach ( _dependency ${ _MAGNUM_${_component } _DEPENDENCIES} )
set_property ( TARGET Magnum:: ${ _component } APPEND PROPERTY
I N T E R F A C E _ L I N K _ L I B R A R I E S M a g n u m : : $ { _ d e p e n d e n c y } )
endforeach ( )