Browse Source

NaCl target system is now handled with CORRADE_TARGET_NACL.

pull/278/head
Vladimír Vondruš 13 years ago
parent
commit
36bedb3f5a
  1. 7
      CMakeLists.txt
  2. 1
      doc/cmake.dox
  3. 2
      doc/portability.dox
  4. 2
      external/OpenGL/GLES2/CMakeLists.txt
  5. 2
      external/OpenGL/KHR/CMakeLists.txt
  6. 6
      modules/FindMagnum.cmake
  7. 19
      src/Magnum.h
  8. 3
      src/OpenGL.h
  9. 12
      src/Platform/magnum-info.cpp
  10. 1
      src/magnumConfigure.h.cmake

7
CMakeLists.txt

@ -63,16 +63,15 @@ endif()
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/modules/")
find_package(Corrade REQUIRED)
# If targeting NaCl, set explicit OpenGL ES 2.0 support
if(${CMAKE_SYSTEM_NAME} STREQUAL NaCl)
if(CORRADE_TARGET_NACL)
set(TARGET_GLES 1)
set(TARGET_GLES2 1)
set(TARGET_NACL 1)
set(MAGNUM_TARGET_NACL 1)
endif()
# Check dependencies
find_package(Corrade REQUIRED)
if(NOT TARGET_GLES OR TARGET_DESKTOP_GLES)
find_package(OpenGL REQUIRED)
elseif(TARGET_GLES2)

1
doc/cmake.dox

@ -100,7 +100,6 @@ are also available as preprocessor variables if including Magnum.h:
- `MAGNUM_TARGET_GLES3` -- Defined if compiled for OpenGL ES 3.0
- `MAGNUM_TARGET_DESKTOP_GLES` -- Defined if compiled with OpenGL ES emulation
on desktop OpenGL
- `MAGNUM_TARGET_NACL` -- Defined if compiled for Google Chrome Native Client
%Corrade library provides also its own set of CMake macros and variables, see
@ref corrade-cmake "its documentation" for more information.

2
doc/portability.dox

@ -42,8 +42,6 @@ If you include Magnum.h, you get these predefined macros:
- @ref MAGNUM_TARGET_GLES_ "MAGNUM_TARGET_GLES" if targeting OpenGL ES 2.0 or
3.0
- @ref MAGNUM_TARGET_GLES2_ "MAGNUM_TARGET_GLES2" if targeting OpenGL ES 2.0
- @ref MAGNUM_TARGET_NACL_ "MAGNUM_TARGET_NACL" if targeting Google Chrome
Native Client
Example usage:
@code

2
external/OpenGL/GLES2/CMakeLists.txt vendored

@ -26,7 +26,7 @@ set(MagnumOpenGL_HEADERS
gl2ext.h)
# NaCl has its own gl2.h, this one causes linker issues
if(NOT TARGET_NACL)
if(NOT CORRADE_TARGET_NACL)
set(MagnumOpenGL_HEADERS ${MagnumOpenGL_HEADERS}
gl2platform.h
gl2.h)

2
external/OpenGL/KHR/CMakeLists.txt vendored

@ -23,6 +23,6 @@
#
# NaCl has its own gl2.h, this one causes linker issues
if(NOT TARGET_NACL)
if(NOT CORRADE_TARGET_NACL)
install(FILES khrplatform.h DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/OpenGL/KHR)
endif()

6
modules/FindMagnum.cmake

@ -50,8 +50,6 @@
# MAGNUM_TARGET_GLES3 - Defined if compiled for OpenGL ES 3.0
# MAGNUM_TARGET_DESKTOP_GLES - Defined if compiled with OpenGL ES
# emulation on desktop OpenGL
# MAGNUM_TARGET_NACL - Defined if compiled for Google Chrome Native
# Client
#
# Additionally these variables are defined for internal usage:
# MAGNUM_INCLUDE_DIR - Root include dir (w/o
@ -126,10 +124,6 @@ string(FIND "${_magnumConfigure}" "#define MAGNUM_TARGET_GLES3" _TARGET_GLES3)
if(NOT _TARGET_GLES3 EQUAL -1)
set(MAGNUM_TARGET_GLES3 1)
endif()
string(FIND "${_magnumConfigure}" "#define MAGNUM_TARGET_NACL" _TARGET_NACL)
if(NOT _TARGET_NACL EQUAL -1)
set(MAGNUM_TARGET_NACL 1)
endif()
string(FIND "${_magnumConfigure}" "#define MAGNUM_TARGET_DESKTOP_GLES" _TARGET_DESKTOP_GLES)
if(NOT _TARGET_DESKTOP_GLES EQUAL -1)
set(MAGNUM_TARGET_DESKTOP_GLES 1)

19
src/Magnum.h

@ -77,7 +77,7 @@ OpenGL ES 2.0.
@see @ref MAGNUM_TARGET_GLES2_ "MAGNUM_TARGET_GLES2",
@ref MAGNUM_TARGET_GLES3_ "MAGNUM_TARGET_GLES3",
@ref MAGNUM_TARGET_DESKTOP_GLES_ "MAGNUM_TARGET_DESKTOP_GLES",
@ref MAGNUM_TARGET_NACL_ "MAGNUM_TARGET_NACL", @ref building
@ref building
*/
#define MAGNUM_TARGET_GLES_
@ -88,7 +88,7 @@ OpenGL ES 2.0.
Implies also @ref MAGNUM_TARGET_GLES_ "MAGNUM_TARGET_GLES".
@see @ref MAGNUM_TARGET_GLES3_ "MAGNUM_TARGET_GLES3",
@ref MAGNUM_TARGET_DESKTOP_GLES_ "MAGNUM_TARGET_DESKTOP_GLES",
@ref MAGNUM_TARGET_NACL_ "MAGNUM_TARGET_NACL", @ref building
@ref building
*/
#define MAGNUM_TARGET_GLES2_
@ -99,7 +99,7 @@ Implies also @ref MAGNUM_TARGET_GLES_ "MAGNUM_TARGET_GLES".
Implies also @ref MAGNUM_TARGET_GLES_ "MAGNUM_TARGET_GLES".
@see @ref MAGNUM_TARGET_GLES2_ "MAGNUM_TARGET_GLES2",
@ref MAGNUM_TARGET_DESKTOP_GLES_ "MAGNUM_TARGET_DESKTOP_GLES",
@ref MAGNUM_TARGET_NACL_ "MAGNUM_TARGET_NACL", @ref building
@ref building
*/
#define MAGNUM_TARGET_GLES3_
@ -109,21 +109,10 @@ Implies also @ref MAGNUM_TARGET_GLES_ "MAGNUM_TARGET_GLES".
`MAGNUM_TARGET_DESKTOP_GLES` is defined if the engine is built for OpenGL ES
3.0 or OpenGL ES 2.0 emulated within standard desktop OpenGL. Implies also
@ref MAGNUM_TARGET_GLES_ "MAGNUM_TARGET_GLES".
@see @ref MAGNUM_TARGET_GLES2_ "MAGNUM_TARGET_GLES2",
@ref MAGNUM_TARGET_NACL_ "MAGNUM_TARGET_NACL", @ref building
@see @ref MAGNUM_TARGET_GLES2_ "MAGNUM_TARGET_GLES2", @ref building
*/
#define MAGNUM_TARGET_DESKTOP_GLES_
/**
@brief Google Chrome Native Client target
`MAGNUM_TARGET_NACL` is defined if the engine is built for OpenGL ES 2.0 on
Google Chrome Native Client. Implies also @ref MAGNUM_TARGET_GLES_ "MAGNUM_TARGET_GLES"
and @ref MAGNUM_TARGET_GLES2_ "MAGNUM_TARGET_GLES".
@see @ref building
*/
#define MAGNUM_TARGET_NACL_
#endif
/** @{ @name Basic type definitions

3
src/OpenGL.h

@ -28,6 +28,7 @@
* @brief OpenGL headers
*/
#include <corradeConfigure.h>
#include "magnumConfigure.h"
/* Desktop OpenGL */
@ -38,7 +39,7 @@
/* NaCl has its own gl2.h, the official one causes linker issues. Additionaly
to NaCl's gl2ext.h we are including our own to prevent undeclared symbol
errors with some recent extensions. */
#elif defined(MAGNUM_TARGET_NACL)
#elif defined(CORRADE_TARGET_NACL)
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
#undef __gl2ext_h_

12
src/Platform/magnum-info.cpp

@ -53,6 +53,15 @@ MagnumInfo::MagnumInfo(int& argc, char** argv): WindowlessGlxApplication(argc, a
#ifdef CORRADE_GCC46_COMPATIBILITY
d << "CORRADE_GCC46_COMPATIBILITY";
#endif
#ifdef CORRADE_TARGET_NACL
d << "CORRADE_TARGET_NACL";
#endif
#ifdef CORRADE_TARGET_NACL_NEWLIB
d << "CORRADE_TARGET_NACL_NEWLIB";
#endif
#ifdef CORRADE_TARGET_NACL_GLIBC
d << "CORRADE_TARGET_NACL_GLIBC";
#endif
#ifdef MAGNUM_TARGET_GLES
d << "MAGNUM_TARGET_GLES";
#endif
@ -62,9 +71,6 @@ MagnumInfo::MagnumInfo(int& argc, char** argv): WindowlessGlxApplication(argc, a
#ifdef MAGNUM_TARGET_DESKTOP_GLES
d << "MAGNUM_TARGET_DESKTOP_GLES";
#endif
#ifdef MAGNUM_TARGET_NACL
d << "MAGNUM_TARGET_NACL";
#endif
}
Debug() << "";

1
src/magnumConfigure.h.cmake

@ -26,4 +26,3 @@
#cmakedefine MAGNUM_TARGET_GLES2
#cmakedefine MAGNUM_TARGET_GLES3
#cmakedefine MAGNUM_TARGET_DESKTOP_GLES
#cmakedefine MAGNUM_TARGET_NACL

Loading…
Cancel
Save