From 217b53ceb27b25774cb7a1501a6d128e63d094c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sat, 2 Aug 2014 13:47:27 +0200 Subject: [PATCH] Display all headers in project view of IDEs. Finally makes development with QtCreator usable. --- src/Magnum/Audio/CMakeLists.txt | 4 +- src/Magnum/CMakeLists.txt | 15 +++ src/Magnum/DebugTools/CMakeLists.txt | 21 ++- src/Magnum/Math/Algorithms/CMakeLists.txt | 3 + src/Magnum/Math/CMakeLists.txt | 3 + src/Magnum/Math/Geometry/CMakeLists.txt | 3 + src/Magnum/MeshTools/CMakeLists.txt | 4 +- src/Magnum/Platform/CMakeLists.txt | 148 ++++++++++++++++++---- src/Magnum/Primitives/CMakeLists.txt | 10 +- src/Magnum/SceneGraph/CMakeLists.txt | 4 +- src/Magnum/Shaders/CMakeLists.txt | 8 +- src/Magnum/Shapes/CMakeLists.txt | 8 +- src/Magnum/Text/CMakeLists.txt | 4 +- src/Magnum/TextureTools/CMakeLists.txt | 4 +- src/Magnum/Trade/CMakeLists.txt | 3 + 15 files changed, 206 insertions(+), 36 deletions(-) diff --git a/src/Magnum/Audio/CMakeLists.txt b/src/Magnum/Audio/CMakeLists.txt index baba53b79..2dc837505 100644 --- a/src/Magnum/Audio/CMakeLists.txt +++ b/src/Magnum/Audio/CMakeLists.txt @@ -45,7 +45,9 @@ set(MagnumAudio_HEADERS visibility.h) -add_library(MagnumAudio ${SHARED_OR_STATIC} ${MagnumAudio_SRCS}) +add_library(MagnumAudio ${SHARED_OR_STATIC} + ${MagnumAudio_SRCS} + ${MagnumAudio_HEADERS}) set_target_properties(MagnumAudio PROPERTIES DEBUG_POSTFIX "-d") target_link_libraries(MagnumAudio ${CORRADE_PLUGINMANAGER_LIBRARIES} ${OPENAL_LIBRARY}) diff --git a/src/Magnum/CMakeLists.txt b/src/Magnum/CMakeLists.txt index dd7499091..9cbe04011 100644 --- a/src/Magnum/CMakeLists.txt +++ b/src/Magnum/CMakeLists.txt @@ -119,6 +119,19 @@ set(Magnum_HEADERS visibility.h) +# Header files to display in project view of IDEs only +set(Magnum_PRIVATE_HEADERS + Implementation/BufferState.h + Implementation/DebugState.h + Implementation/FramebufferState.h + Implementation/maxTextureSize.h + Implementation/MeshState.h + Implementation/RendererState.h + Implementation/ShaderProgramState.h + Implementation/ShaderState.h + Implementation/State.h + Implementation/TextureState.h) + # Deprecated headers if(BUILD_DEPRECATED) set(Magnum_HEADERS ${Magnum_HEADERS} @@ -159,6 +172,8 @@ set(MagnumMath_SRCS add_library(MagnumMathObjects OBJECT ${MagnumMath_SRCS}) add_library(Magnum ${SHARED_OR_STATIC} ${Magnum_SRCS} + ${Magnum_HEADERS} + ${Magnum_PRIVATE_HEADERS} $) set_target_properties(Magnum PROPERTIES DEBUG_POSTFIX "-d") diff --git a/src/Magnum/DebugTools/CMakeLists.txt b/src/Magnum/DebugTools/CMakeLists.txt index 4455b248e..d7dd783b3 100644 --- a/src/Magnum/DebugTools/CMakeLists.txt +++ b/src/Magnum/DebugTools/CMakeLists.txt @@ -50,7 +50,26 @@ set(MagnumDebugTools_HEADERS visibility.h) -add_library(MagnumDebugTools ${SHARED_OR_STATIC} ${MagnumDebugTools_SRCS}) +# Header files to display in project view of IDEs only +set(MagnumDebugTools_PRIVATE_HEADERS + Implementation/AbstractBoxRenderer.h + Implementation/AbstractShapeRenderer.h + Implementation/AxisAlignedBoxRenderer.h + Implementation/BoxRenderer.h + Implementation/CapsuleRenderer.h + Implementation/CapsuleRendererTransformation.h + Implementation/CylinderRenderer.h + Implementation/CylinderRendererTransformation.h + Implementation/ForceRendererTransformation.h + Implementation/LineSegmentRenderer.h + Implementation/LineSegmentRendererTransformation.h + Implementation/PointRenderer.h + Implementation/SphereRenderer.h) + +add_library(MagnumDebugTools ${SHARED_OR_STATIC} + ${MagnumDebugTools_SRCS} + ${MagnumDebugTools_HEADERS} + ${MagnumDebugTools_PRIVATE_HEADERS}) set_target_properties(MagnumDebugTools PROPERTIES DEBUG_POSTFIX "-d") if(BUILD_STATIC_PIC) # TODO: CMake 2.8.9 has this as POSITION_INDEPENDENT_CODE property diff --git a/src/Magnum/Math/Algorithms/CMakeLists.txt b/src/Magnum/Math/Algorithms/CMakeLists.txt index 93f6d48b6..deeec09df 100644 --- a/src/Magnum/Math/Algorithms/CMakeLists.txt +++ b/src/Magnum/Math/Algorithms/CMakeLists.txt @@ -28,6 +28,9 @@ set(MagnumMathAlgorithms_HEADERS GramSchmidt.h Svd.h) +# Force IDEs to display all header files in project view +add_custom_target(MagnumMathAlgorithms SOURCES ${MagnumMathAlgorithms_HEADERS}) + install(FILES ${MagnumMathAlgorithms_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Math/Algorithms) if(BUILD_TESTS) diff --git a/src/Magnum/Math/CMakeLists.txt b/src/Magnum/Math/CMakeLists.txt index cff0d8ee6..bcffdce8b 100644 --- a/src/Magnum/Math/CMakeLists.txt +++ b/src/Magnum/Math/CMakeLists.txt @@ -47,6 +47,9 @@ set(MagnumMath_HEADERS Vector3.h Vector4.h) +# Force IDEs to display all header files in project view +add_custom_target(MagnumMath SOURCES ${MagnumMath_HEADERS}) + install(FILES ${MagnumMath_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Math) add_subdirectory(Algorithms) diff --git a/src/Magnum/Math/Geometry/CMakeLists.txt b/src/Magnum/Math/Geometry/CMakeLists.txt index 1e35f14f7..ac7fb7ff8 100644 --- a/src/Magnum/Math/Geometry/CMakeLists.txt +++ b/src/Magnum/Math/Geometry/CMakeLists.txt @@ -33,6 +33,9 @@ if(BUILD_DEPRECATED) Rectangle.h) endif() +# Force IDEs to display all header files in project view +add_custom_target(MagnumMathGeometry SOURCES ${MagnumMathGeometry_HEADERS}) + install(FILES ${MagnumMathGeometry_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Math/Geometry) if(BUILD_TESTS) diff --git a/src/Magnum/MeshTools/CMakeLists.txt b/src/Magnum/MeshTools/CMakeLists.txt index e700d6f0f..39be0a151 100644 --- a/src/Magnum/MeshTools/CMakeLists.txt +++ b/src/Magnum/MeshTools/CMakeLists.txt @@ -54,7 +54,9 @@ set(MagnumMeshTools_HEADERS # Set shared library flags for the objects, as they will be part of shared lib # TODO: fix when CMake sets target_EXPORTS for OBJECT targets as well -add_library(MagnumMeshToolsObjects OBJECT ${MagnumMeshTools_SRCS}) +add_library(MagnumMeshToolsObjects OBJECT + ${MagnumMeshTools_SRCS} + ${MagnumMeshTools_HEADERS}) if(NOT BUILD_SHARED OR BUILD_STATIC_PIC) # TODO: CMake 2.8.9 has this as POSITION_INDEPENDENT_CODE property set_target_properties(MagnumMeshToolsObjects PROPERTIES COMPILE_FLAGS "-DMagnumMeshToolsObjects_EXPORTS ${CMAKE_SHARED_LIBRARY_CXX_FLAGS}") diff --git a/src/Magnum/Platform/CMakeLists.txt b/src/Magnum/Platform/CMakeLists.txt index 11e8d6949..7001bd717 100644 --- a/src/Magnum/Platform/CMakeLists.txt +++ b/src/Magnum/Platform/CMakeLists.txt @@ -30,6 +30,9 @@ set(MagnumPlatform_HEADERS ScreenedApplication.h ScreenedApplication.hpp) +# Files to display in project view of IDEs only (filled in below) +set(MagnumPlatform_FILES ) + install(FILES ${MagnumPlatform_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Platform) # Android application @@ -40,12 +43,21 @@ if(WITH_ANDROIDAPPLICATION) include_directories(${ANDROID_NATIVE_APP_GLUE_INCLUDE_DIR}) - add_library(MagnumAndroidApplication STATIC + set(MagnumAndroidApplication_SRCS AndroidApplication.cpp - Implementation/Egl.cpp + Implementation/Egl.cpp) + set(MagnumAndroidApplication_HEADERS + AndroidApplication.h) + set(MagnumAndroidApplication_PRIVATE_HEADERS + Implementation/Egl.h) + + add_library(MagnumAndroidApplication STATIC + ${MagnumAndroidApplication_SRCS} + ${MagnumAndroidApplication_HEADERS} + ${MagnumAndroidApplication_PRIVATE_HEADERS} ${ANDROID_NATIVE_APP_GLUE_SRC}) set_target_properties(MagnumAndroidApplication PROPERTIES DEBUG_POSTFIX "-d") - install(FILES AndroidApplication.h DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Platform) + install(FILES ${MagnumAndroidApplication_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Platform) install(TARGETS MagnumAndroidApplication RUNTIME DESTINATION ${MAGNUM_BINARY_INSTALL_DIR} LIBRARY DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR} @@ -59,9 +71,14 @@ if(WITH_GLUTAPPLICATION) message(FATAL_ERROR "GLUT library, required by GlutApplication, was not found. Set WITH_GLUTAPPLICATION to OFF to skip building it.") endif() - add_library(MagnumGlutApplication STATIC GlutApplication.cpp) + set(MagnumGlutApplication_SRCS GlutApplication.cpp) + set(MagnumGlutApplication_HEADERS GlutApplication.h) + + add_library(MagnumGlutApplication STATIC + ${MagnumGlutApplication_SRCS} + ${MagnumGlutApplication_HEADERS}) set_target_properties(MagnumGlutApplication PROPERTIES DEBUG_POSTFIX "-d") - install(FILES MagnumGlutApplication.h DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Platform) + install(FILES ${MagnumGlutApplication_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Platform) install(TARGETS MagnumGlutApplication RUNTIME DESTINATION ${MAGNUM_BINARY_INSTALL_DIR} LIBRARY DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR} @@ -76,9 +93,15 @@ if(WITH_SDL2APPLICATION) endif() include_directories(${SDL2_INCLUDE_DIR}) - add_library(MagnumSdl2Application STATIC Sdl2Application.cpp) + + set(MagnumSdl2Application_SRCS Sdl2Application.cpp) + set(MagnumSdl2Application_HEADERS Sdl2Application.h) + + add_library(MagnumSdl2Application STATIC + ${MagnumSdl2Application_SRCS} + ${MagnumSdl2Application_HEADERS}) set_target_properties(MagnumSdl2Application PROPERTIES DEBUG_POSTFIX "-d") - install(FILES Sdl2Application.h DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Platform) + install(FILES ${MagnumSdl2Application_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Platform) install(TARGETS MagnumSdl2Application RUNTIME DESTINATION ${MAGNUM_BINARY_INSTALL_DIR} LIBRARY DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR} @@ -91,9 +114,14 @@ if(WITH_NACLAPPLICATION) message(FATAL_ERROR "NaClApplication is available only when targeting Google Chrome Native Client. Set WITH_NACLAPPLICATION to OFF to skip building it.") endif() - add_library(MagnumNaClApplication STATIC NaClApplication.cpp) + set(MagnumNaClApplication_SRCS NaClApplication.cpp) + set(MagnumNaClApplication_HEADERS NaClApplication.h) + + add_library(MagnumNaClApplication STATIC + ${MagnumNaClApplication_SRCS} + ${MagnumNaClApplication_HEADERS}) set_target_properties(MagnumNaClApplication PROPERTIES DEBUG_POSTFIX "-d") - install(FILES NaClApplication.h DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Platform) + install(FILES ${MagnumNaClApplication_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Platform) install(TARGETS MagnumNaClApplication RUNTIME DESTINATION ${MAGNUM_BINARY_INSTALL_DIR} LIBRARY DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR} @@ -106,10 +134,15 @@ if(WITH_WINDOWLESSNACLAPPLICATION) message(FATAL_ERROR "WindowlessNaClApplication is available only when targeting Google Chrome Native Client. Set WITH_WINDOWLESSNACLAPPLICATION to OFF to skip building it.") endif() - add_library(MagnumWindowlessNaClApplication STATIC WindowlessNaClApplication.cpp) + set(MagnumWindowlessNaClApplication_SRCS WindowlessNaClApplication.cpp) + set(MagnumWindowlessNaClApplication_HEADERS WindowlessNaClApplication.h) + + add_library(MagnumWindowlessNaClApplication STATIC + ${MagnumWindowlessNaClApplication_SRCS} + ${MagnumWindowlessNaClApplication_HEADERS}) set_target_properties(MagnumWindowlessNaClApplication PROPERTIES DEBUG_POSTFIX "-d") target_link_libraries(MagnumWindowlessNaClApplication Magnum ppapi_cpp ppapi) - install(FILES WindowlessNaClApplication.h DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Platform) + install(FILES ${MagnumWindowlessNaClApplication_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Platform) install(TARGETS MagnumWindowlessNaClApplication RUNTIME DESTINATION ${MAGNUM_BINARY_INSTALL_DIR} LIBRARY DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR} @@ -118,24 +151,38 @@ endif() # JavaScript and CSS stuff for NaCl if(WITH_NACLAPPLICATION OR WITH_WINDOWLESSNACLAPPLICATION) - install(FILES NaClApplication.js WebApplication.css DESTINATION ${MAGNUM_DATA_INSTALL_DIR}) + set(MagnumNaClApplication_FILES + NaClApplication.js + WebApplication.css) + list(APPEND MagnumPlatform_FILES ${MagnumNaClApplication_FILES}) + install(FILES ${MagnumNaClApplication_FILES} DESTINATION ${MAGNUM_DATA_INSTALL_DIR}) endif() # JavaScript and CSS stuff for Emscripten if(WITH_SDL2APPLICATION AND CORRADE_TARGET_EMSCRIPTEN) - install(FILES EmscriptenApplication.js WebApplication.css DESTINATION ${MAGNUM_DATA_INSTALL_DIR}) + set(MagnumSdl2Application_FILES + EmscriptenApplication.js + WebApplication.css) + list(APPEND MagnumPlatform_FILES ${MagnumSdl2Application_FILES}) + install(FILES ${MagnumSdl2Application_FILES} DESTINATION ${MAGNUM_DATA_INSTALL_DIR}) endif() # GLX application if(WITH_GLXAPPLICATION) set(NEED_ABSTRACTXAPPLICATION 1) set(NEED_GLXCONTEXT 1) - add_library(MagnumGlxApplication STATIC + + set(MagnumGlxApplication_SRCS $ $ GlxApplication.cpp) + set(MagnumGlxApplication_HEADERS GlxApplication.h) + + add_library(MagnumGlxApplication STATIC + ${MagnumGlxApplication_SRCS} + ${MagnumGlxApplication_HEADERS}) set_target_properties(MagnumGlxApplication PROPERTIES DEBUG_POSTFIX "-d") - install(FILES GlxApplication.h DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Platform) + install(FILES ${MagnumGlxApplication_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Platform) install(TARGETS MagnumGlxApplication RUNTIME DESTINATION ${MAGNUM_BINARY_INSTALL_DIR} LIBRARY DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR} @@ -146,12 +193,18 @@ endif() if(WITH_XEGLAPPLICATION) set(NEED_ABSTRACTXAPPLICATION 1) set(NEED_EGLCONTEXT 1) - add_library(MagnumXEglApplication STATIC + + set(MagnumXEglApplication_SRCS $ $ XEglApplication.cpp) + set(MagnumXEglApplication_HEADERS XEglApplication.h) + + add_library(MagnumXEglApplication STATIC + ${MagnumXEglApplication_SRCS} + ${MagnumXEglApplication_HEADERS}) set_target_properties(MagnumXEglApplication PROPERTIES DEBUG_POSTFIX "-d") - install(FILES XEglApplication.h DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Platform) + install(FILES ${MagnumXEglApplication_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Platform) install(TARGETS MagnumXEglApplication RUNTIME DESTINATION ${MAGNUM_BINARY_INSTALL_DIR} LIBRARY DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR} @@ -167,13 +220,18 @@ endif() # Windowless GLX application if(WITH_WINDOWLESSGLXAPPLICATION) - add_library(MagnumWindowlessGlxApplication STATIC WindowlessGlxApplication.cpp) + set(MagnumWindowlessGlxApplication_SRCS WindowlessGlxApplication.cpp) + set(MagnumWindowlessGlxApplication_HEADERS WindowlessGlxApplication.h) + + add_library(MagnumWindowlessGlxApplication STATIC + ${MagnumWindowlessGlxApplication_SRCS} + ${MagnumWindowlessGlxApplication_HEADERS}) # X11 macros are a mess, disable warnings for C-style casts set_target_properties(MagnumWindowlessGlxApplication PROPERTIES COMPILE_FLAGS "-Wno-old-style-cast" DEBUG_POSTFIX "-d") target_link_libraries(MagnumWindowlessGlxApplication Magnum ${X11_LIBRARIES}) - install(FILES WindowlessGlxApplication.h DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Platform) + install(FILES ${MagnumWindowlessGlxApplication_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Platform) install(TARGETS MagnumWindowlessGlxApplication RUNTIME DESTINATION ${MAGNUM_BINARY_INSTALL_DIR} LIBRARY DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR} @@ -182,12 +240,17 @@ endif() # Windowless WGL application if(WITH_WINDOWLESSWGLAPPLICATION) - add_library(MagnumWindowlessWglApplication STATIC WindowlessWglApplication.cpp) + set(MagnumWindowlessWglApplication_SRCS WindowlessWglApplication.cpp) + set(MagnumWindowlessWglApplication_HEADERS WindowlessWglApplication.h) + + add_library(MagnumWindowlessWglApplication STATIC + ${MagnumWindowlessWglApplication_SRCS} + ${MagnumWindowlessWglApplication_HEADERS}) set_target_properties(MagnumWindowlessWglApplication PROPERTIES COMPILE_FLAGS "-DUNICODE" DEBUG_POSTFIX "-d") target_link_libraries(MagnumWindowlessWglApplication Magnum) - install(FILES WindowlessWglApplication.h DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Platform) + install(FILES ${MagnumWindowlessWglApplication_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Platform) install(TARGETS MagnumWindowlessWglApplication RUNTIME DESTINATION ${MAGNUM_BINARY_INSTALL_DIR} LIBRARY DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR} @@ -196,10 +259,15 @@ endif() # Windowless CGL application if(WITH_WINDOWLESSCGLAPPLICATION) - add_library(MagnumWindowlessCglApplication STATIC WindowlessCglApplication.cpp) + set(MagnumWindowlessCglApplication_SRCS WindowlessCglApplication.cpp) + set(MagnumWindowlessCglApplication_HEADERS WindowlessCglApplication.h) + + add_library(MagnumWindowlessCglApplication STATIC + ${MagnumWindowlessCglApplication_SRCS} + ${MagnumWindowlessCglApplication_HEADERS}) set_target_properties(MagnumWindowlessCglApplication PROPERTIES DEBUG_POSTFIX "-d") target_link_libraries(MagnumWindowlessCglApplication Magnum) - install(FILES WindowlessCglApplication.h DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Platform) + install(FILES ${MagnumWindowlessGlxApplication_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Platform) install(TARGETS MagnumWindowlessCglApplication RUNTIME DESTINATION ${MAGNUM_BINARY_INSTALL_DIR} LIBRARY DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR} @@ -208,15 +276,28 @@ endif() # Abstract X application if(NEED_ABSTRACTXAPPLICATION) - add_library(MagnumAbstractXApplication OBJECT AbstractXApplication.cpp) + set(MagnumAbstractXApplication_SRCS AbstractXApplication.cpp) + set(MagnumAbstractXApplication_HEADERS AbstractXApplication.h) + + add_library(MagnumAbstractXApplication OBJECT + ${MagnumAbstractXApplication_SRCS} + ${MagnumAbstractXApplication_HEADERS}) # X11 macros are a mess, disable warnings for C-style casts set_target_properties(MagnumAbstractXApplication PROPERTIES COMPILE_FLAGS "-Wno-old-style-cast") - install(FILES AbstractXApplication.h DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Platform) + install(FILES ${MagnumAbstractXApplication_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Platform) endif() # GLX context if(NEED_GLXCONTEXT) - add_library(MagnumGlxContextHandler OBJECT Implementation/GlxContextHandler.cpp) + set(MagnumGlxContextHandler_SRCS + Implementation/GlxContextHandler.cpp) + set(MagnumGlxContextHandler_PRIVATE_HEADERS + Implementation/AbstractContextHandler.h + Implementation/GlxContextHandler.h) + + add_library(MagnumGlxContextHandler OBJECT + ${MagnumGlxContextHandler_SRCS} + ${MagnumGlxContextHandler_PRIVATE_HEADERS}) # X11 macros are a mess, disable warnings for C-style casts set_target_properties(MagnumGlxContextHandler PROPERTIES COMPILE_FLAGS "-Wno-old-style-cast") endif() @@ -227,9 +308,18 @@ if(NEED_EGLCONTEXT) if(NOT EGL_FOUND) message(FATAL_ERROR "EGL library, required by some window contexts, was not found. Set WITH_*EGL*APPLICATION to OFF to skip building them.") endif() - add_library(MagnumEglContextHandler OBJECT + + set(MagnumEglContextHandler_SRCS Implementation/EglContextHandler.cpp Implementation/Egl.cpp) + set(MagnumEglContextHandler_PRIVATE_HEADERS + Implementation/AbstractContextHandler.h + Implementation/EglContextHandler.h + Implementation/Egl.h) + + add_library(MagnumEglContextHandler OBJECT + ${MagnumEglContextHandler_SRCS} + ${MagnumEglContextHandler_PRIVATE_HEADERS}) # X11 macros are a mess, disable warnings for C-style casts set_target_properties(MagnumEglContextHandler PROPERTIES COMPILE_FLAGS "-Wno-old-style-cast") endif() @@ -254,5 +344,9 @@ if(WITH_MAGNUMINFO) if(CORRADE_TARGET_NACL) install(FILES magnum-info-nacl.html DESTINATION ${MAGNUM_DATA_INSTALL_DIR} RENAME magnum-info.html) install(FILES magnum-info-nacl.nmf DESTINATION ${MAGNUM_DATA_INSTALL_DIR} RENAME magnum-info.nmf) + list(APPEND MagnumPlatform_FILES magnum-info-nacl.html magnum-info-nacl.nmf) endif() endif() + +# Force IDEs display also all header files and additional files in project view +add_custom_target(MagnumPlatform SOURCES ${MagnumPlatform_HEADERS} ${MagnumPlatform_FILES}) diff --git a/src/Magnum/Primitives/CMakeLists.txt b/src/Magnum/Primitives/CMakeLists.txt index 6f2119939..04c2976cf 100644 --- a/src/Magnum/Primitives/CMakeLists.txt +++ b/src/Magnum/Primitives/CMakeLists.txt @@ -52,7 +52,15 @@ set(MagnumPrimitives_HEADERS visibility.h) -add_library(MagnumPrimitives ${SHARED_OR_STATIC} ${MagnumPrimitives_SRCS}) +# Header files to display in project view of IDEs only +set(MagnumPrimitives_PRIVATE_HEADERS + Implementation/Spheroid.h + Implementation/WireframeSpheroid.h) + +add_library(MagnumPrimitives ${SHARED_OR_STATIC} + ${MagnumPrimitives_SRCS} + ${MagnumPrimitives_HEADERS} + ${MagnumPrimitives_PRIVATE_HEADERS}) set_target_properties(MagnumPrimitives PROPERTIES DEBUG_POSTFIX "-d") if(BUILD_STATIC_PIC) # TODO: CMake 2.8.9 has this as POSITION_INDEPENDENT_CODE property diff --git a/src/Magnum/SceneGraph/CMakeLists.txt b/src/Magnum/SceneGraph/CMakeLists.txt index f9166bec9..3ec9ca2e2 100644 --- a/src/Magnum/SceneGraph/CMakeLists.txt +++ b/src/Magnum/SceneGraph/CMakeLists.txt @@ -71,7 +71,9 @@ set(MagnumSceneGraph_HEADERS # Set shared library flags for the objects, as they will be part of shared lib # TODO: fix when CMake sets target_EXPORTS for OBJECT targets as well -add_library(MagnumSceneGraphObjects OBJECT ${MagnumSceneGraph_SRCS}) +add_library(MagnumSceneGraphObjects OBJECT + ${MagnumSceneGraph_SRCS} + ${MagnumSceneGraph_HEADERS}) if(NOT BUILD_STATIC OR BUILD_STATIC_PIC) # TODO: CMake 2.8.9 has this as POSITION_INDEPENDENT_CODE property set_target_properties(MagnumSceneGraphObjects PROPERTIES COMPILE_FLAGS "-DMagnumSceneGraphObjects_EXPORTS ${CMAKE_SHARED_LIBRARY_CXX_FLAGS}") diff --git a/src/Magnum/Shaders/CMakeLists.txt b/src/Magnum/Shaders/CMakeLists.txt index 4099261d8..04a0a0db9 100644 --- a/src/Magnum/Shaders/CMakeLists.txt +++ b/src/Magnum/Shaders/CMakeLists.txt @@ -49,6 +49,9 @@ set(MagnumShaders_HEADERS visibility.h) +# Header files to display in project view of IDEs only +set(MagnumShaders_PRIVATE_HEADERS Implementation/CreateCompatibilityShader.h) + if(BUILD_STATIC) set(MagnumShaders_HEADERS ${MagnumShaders_HEADERS} resourceImport.hpp) @@ -57,7 +60,10 @@ if(BUILD_STATIC) endif() endif() -add_library(MagnumShaders ${SHARED_OR_STATIC} ${MagnumShaders_SRCS}) +add_library(MagnumShaders ${SHARED_OR_STATIC} + ${MagnumShaders_SRCS} + ${MagnumShaders_HEADERS} + ${MagnumShaders_PRIVATE_HEADERS}) set_target_properties(MagnumShaders PROPERTIES DEBUG_POSTFIX "-d") if(BUILD_STATIC_PIC) # TODO: CMake 2.8.9 has this as POSITION_INDEPENDENT_CODE property diff --git a/src/Magnum/Shapes/CMakeLists.txt b/src/Magnum/Shapes/CMakeLists.txt index 4c8669773..42f90ba38 100644 --- a/src/Magnum/Shapes/CMakeLists.txt +++ b/src/Magnum/Shapes/CMakeLists.txt @@ -61,7 +61,13 @@ set(MagnumShapes_HEADERS shapeImplementation.h visibility.h) -add_library(MagnumShapes ${SHARED_OR_STATIC} ${MagnumShapes_SRCS}) +# Header files to display in project view of IDEs only +set(MagnumShapes_PRIVATE_HEADERS Implementation/CollisionDispatch.h) + +add_library(MagnumShapes ${SHARED_OR_STATIC} + ${MagnumShapes_SRCS} + ${MagnumShapes_HEADERS} + ${MagnumShapes_PRIVATE_HEADERS}) set_target_properties(MagnumShapes PROPERTIES DEBUG_POSTFIX "-d") if(BUILD_STATIC_PIC) # TODO: CMake 2.8.9 has this as POSITION_INDEPENDENT_CODE property diff --git a/src/Magnum/Text/CMakeLists.txt b/src/Magnum/Text/CMakeLists.txt index 6b179a817..4127a15b6 100644 --- a/src/Magnum/Text/CMakeLists.txt +++ b/src/Magnum/Text/CMakeLists.txt @@ -45,7 +45,9 @@ if(MAGNUM_BUILD_DEPRECATED) TextRenderer.h) endif() -add_library(MagnumText ${SHARED_OR_STATIC} ${MagnumText_SRCS}) +add_library(MagnumText ${SHARED_OR_STATIC} + ${MagnumText_SRCS} + ${MagnumText_HEADERS}) set_target_properties(MagnumText PROPERTIES DEBUG_POSTFIX "-d") if(BUILD_STATIC_PIC) # TODO: CMake 2.8.9 has this as POSITION_INDEPENDENT_CODE property diff --git a/src/Magnum/TextureTools/CMakeLists.txt b/src/Magnum/TextureTools/CMakeLists.txt index a6ce5b75e..8621c2a63 100644 --- a/src/Magnum/TextureTools/CMakeLists.txt +++ b/src/Magnum/TextureTools/CMakeLists.txt @@ -40,7 +40,9 @@ if(BUILD_STATIC) set(MagnumTextureTools_HEADERS ${MagnumTextureTools_HEADERS} magnumTextureToolsResourceImport.hpp) endif() -add_library(MagnumTextureTools ${SHARED_OR_STATIC} ${MagnumTextureTools_SRCS}) +add_library(MagnumTextureTools ${SHARED_OR_STATIC} + ${MagnumTextureTools_SRCS} + ${MagnumTextureTools_HEADERS}) set_target_properties(MagnumTextureTools PROPERTIES DEBUG_POSTFIX "-d") if(BUILD_STATIC_PIC) # TODO: CMake 2.8.9 has this as POSITION_INDEPENDENT_CODE property diff --git a/src/Magnum/Trade/CMakeLists.txt b/src/Magnum/Trade/CMakeLists.txt index 6dcbc34f2..229492815 100644 --- a/src/Magnum/Trade/CMakeLists.txt +++ b/src/Magnum/Trade/CMakeLists.txt @@ -41,6 +41,9 @@ set(MagnumTrade_HEADERS TextureData.h Trade.h) +# Force IDEs to display all header files in project view +add_custom_target(MagnumTrade SOURCES ${MagnumTrade_HEADERS}) + install(FILES ${MagnumTrade_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Trade) if(BUILD_TESTS)