diff --git a/CMakeLists.txt b/CMakeLists.txt index 81866daf4..d879b26f3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -104,8 +104,6 @@ set(MAGNUM_LIBRARY_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}) set(MAGNUM_CMAKE_MODULE_INSTALL_DIR ${CMAKE_ROOT}/Modules) set(MAGNUM_INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include/Magnum) -include_directories(${CMAKE_SOURCE_DIR}/external) - add_subdirectory(external) add_subdirectory(modules) add_subdirectory(src) diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt index e4e61ff4a..4779291a4 100644 --- a/external/CMakeLists.txt +++ b/external/CMakeLists.txt @@ -22,9 +22,4 @@ # DEALINGS IN THE SOFTWARE. # -if(NOT TARGET_GLES) - add_subdirectory(GL) -else() - add_subdirectory(GLES3) - add_subdirectory(KHR) -endif() +add_subdirectory(OpenGL) diff --git a/external/OpenGL/CMakeLists.txt b/external/OpenGL/CMakeLists.txt new file mode 100644 index 000000000..9a8a35ef7 --- /dev/null +++ b/external/OpenGL/CMakeLists.txt @@ -0,0 +1,34 @@ +# +# This file is part of Magnum. +# +# Copyright © 2010, 2011, 2012, 2013 Vladimír Vondruš +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# + +if(NOT TARGET_GLES) + add_subdirectory(GL) +else() + add_subdirectory(KHR) + if(TARGET_GLES2) + add_subdirectory(GLES2) + else() + add_subdirectory(GLES3) + endif() +endif() diff --git a/external/GL/CMakeLists.txt b/external/OpenGL/GL/CMakeLists.txt similarity index 98% rename from external/GL/CMakeLists.txt rename to external/OpenGL/GL/CMakeLists.txt index 0cfe57d4e..ef834c7d4 100644 --- a/external/GL/CMakeLists.txt +++ b/external/OpenGL/GL/CMakeLists.txt @@ -22,4 +22,4 @@ # DEALINGS IN THE SOFTWARE. # -install(FILES glcorearb.h DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/external/GL) +install(FILES glcorearb.h DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/OpenGL/GL) diff --git a/external/GL/glcorearb.h b/external/OpenGL/GL/glcorearb.h similarity index 100% rename from external/GL/glcorearb.h rename to external/OpenGL/GL/glcorearb.h diff --git a/external/OpenGL/GLES2/CMakeLists.txt b/external/OpenGL/GLES2/CMakeLists.txt new file mode 100644 index 000000000..3115869a1 --- /dev/null +++ b/external/OpenGL/GLES2/CMakeLists.txt @@ -0,0 +1,25 @@ +# +# This file is part of Magnum. +# +# Copyright © 2010, 2011, 2012, 2013 Vladimír Vondruš +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# + +install(FILES gl2.h gl2platform.h gl2ext.h DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/OpenGL/GLES2) diff --git a/external/GLES2/gl2.h b/external/OpenGL/GLES2/gl2.h similarity index 100% rename from external/GLES2/gl2.h rename to external/OpenGL/GLES2/gl2.h diff --git a/external/GLES2/gl2ext.h b/external/OpenGL/GLES2/gl2ext.h similarity index 100% rename from external/GLES2/gl2ext.h rename to external/OpenGL/GLES2/gl2ext.h diff --git a/external/GLES2/gl2platform.h b/external/OpenGL/GLES2/gl2platform.h similarity index 100% rename from external/GLES2/gl2platform.h rename to external/OpenGL/GLES2/gl2platform.h diff --git a/external/GLES3/CMakeLists.txt b/external/OpenGL/GLES3/CMakeLists.txt similarity index 97% rename from external/GLES3/CMakeLists.txt rename to external/OpenGL/GLES3/CMakeLists.txt index ccb237ced..6699d72ba 100644 --- a/external/GLES3/CMakeLists.txt +++ b/external/OpenGL/GLES3/CMakeLists.txt @@ -22,4 +22,4 @@ # DEALINGS IN THE SOFTWARE. # -install(FILES gl3.h gl3platform.h DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/external/GLES3) +install(FILES gl3.h gl3platform.h DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/OpenGL/GLES3) diff --git a/external/GLES3/gl3.h b/external/OpenGL/GLES3/gl3.h similarity index 100% rename from external/GLES3/gl3.h rename to external/OpenGL/GLES3/gl3.h diff --git a/external/GLES3/gl3platform.h b/external/OpenGL/GLES3/gl3platform.h similarity index 100% rename from external/GLES3/gl3platform.h rename to external/OpenGL/GLES3/gl3platform.h diff --git a/external/KHR/CMakeLists.txt b/external/OpenGL/KHR/CMakeLists.txt similarity index 98% rename from external/KHR/CMakeLists.txt rename to external/OpenGL/KHR/CMakeLists.txt index ba1402551..9e8e1bd57 100644 --- a/external/KHR/CMakeLists.txt +++ b/external/OpenGL/KHR/CMakeLists.txt @@ -22,4 +22,4 @@ # DEALINGS IN THE SOFTWARE. # -install(FILES khrplatform.h DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/external/KHR) +install(FILES khrplatform.h DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/OpenGL/KHR) diff --git a/external/KHR/khrplatform.h b/external/OpenGL/KHR/khrplatform.h similarity index 100% rename from external/KHR/khrplatform.h rename to external/OpenGL/KHR/khrplatform.h diff --git a/modules/FindMagnum.cmake b/modules/FindMagnum.cmake index b94183bcb..35c635118 100644 --- a/modules/FindMagnum.cmake +++ b/modules/FindMagnum.cmake @@ -295,7 +295,7 @@ find_package_handle_standard_args(Magnum # Dependent libraries and includes set(MAGNUM_INCLUDE_DIRS ${MAGNUM_INCLUDE_DIR} - ${MAGNUM_INCLUDE_DIR}/external + ${MAGNUM_INCLUDE_DIR}/OpenGL ${CORRADE_INCLUDE_DIR}) set(MAGNUM_LIBRARIES ${MAGNUM_LIBRARY} ${CORRADE_UTILITY_LIBRARY} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c5c733f48..0d1df7c4d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -30,7 +30,16 @@ if(CORRADE_GCC46_COMPATIBILITY) endif() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CORRADE_CXX_FLAGS}") -include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CORRADE_INCLUDE_DIR}) +include_directories( + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${CORRADE_INCLUDE_DIR} + + # We can use both implicit include path (GLES2/gl2.h) where our headers can + # be overriden with system ones or explicit (OpenGL/GLES2/gl2ext.h) where + # only our headers will be used + ${CMAKE_SOURCE_DIR}/external + ${CMAKE_SOURCE_DIR}/external/OpenGL) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/magnumConfigure.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/magnumConfigure.h) diff --git a/src/OpenGL.h b/src/OpenGL.h index c166dea07..e02765a5c 100644 --- a/src/OpenGL.h +++ b/src/OpenGL.h @@ -32,13 +32,16 @@ #ifndef MAGNUM_TARGET_GLES #include -#include +#include #else +#include #ifndef MAGNUM_TARGET_GLES2 -#include +#include +#include #else -#include -#include +#include +#include +#include #endif #endif