diff --git a/CMakeLists.txt b/CMakeLists.txt index 883aef87f..36cf5ac91 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -117,6 +117,7 @@ endif() include(CorradeLibSuffix) set(MAGNUM_BINARY_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/bin) set(MAGNUM_LIBRARY_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}) +set(MAGNUM_DATA_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/magnum) set(MAGNUM_CMAKE_MODULE_INSTALL_DIR ${CMAKE_ROOT}/Modules) set(MAGNUM_INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include/Magnum) diff --git a/PKGBUILD-nacl-newlib b/PKGBUILD-nacl-newlib index 2bf84ac4e..e1b276339 100644 --- a/PKGBUILD-nacl-newlib +++ b/PKGBUILD-nacl-newlib @@ -20,7 +20,7 @@ build() { -DCMAKE_TOOLCHAIN_FILE="$startdir/toolchains/generic/NaCl-newlib-x86-32.cmake" \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr/nacl \ - -DWITH_MAGNUMINFO=OFF \ + -DWITH_MAGNUMINFO=ON \ -DWITH_NACLAPPLICATION=ON \ -DWITH_WINDOWLESSNACLAPPLICATION=ON \ -DBUILD_STATIC=ON \ @@ -36,7 +36,7 @@ build() { -DCMAKE_TOOLCHAIN_FILE="$startdir/toolchains/generic/NaCl-newlib-x86-64.cmake" \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr/nacl \ - -DWITH_MAGNUMINFO=OFF \ + -DWITH_MAGNUMINFO=ON \ -DWITH_NACLAPPLICATION=ON \ -DWITH_WINDOWLESSNACLAPPLICATION=ON \ -DBUILD_STATIC=ON diff --git a/src/Platform/CMakeLists.txt b/src/Platform/CMakeLists.txt index 4de76dcf2..634197a4a 100644 --- a/src/Platform/CMakeLists.txt +++ b/src/Platform/CMakeLists.txt @@ -156,11 +156,20 @@ endif() # Magnum Info if(WITH_MAGNUMINFO) - if(UNIX) - add_executable(magnum-info magnum-info.cpp) + if(NOT UNIX AND NOT CORRADE_TARGET_NACL) + message(FATAL_ERROR "magnum-info is not available on this platform. Set WITH_MAGNUMINFO to OFF to suppress this warning.") + endif() + + add_executable(magnum-info magnum-info.cpp) + if(UNIX AND NOT CORRADE_TARGET_NACL) target_link_libraries(magnum-info Magnum MagnumWindowlessGlxApplication ${X11_LIBRARIES}) - install(TARGETS magnum-info DESTINATION ${MAGNUM_BINARY_INSTALL_DIR}) - else() - message(WARNING "magnum-info is currently available only on Unix. Set WITH_MAGNUMINFO to OFF to suppress this warning.") + elseif(CORRADE_TARGET_NACL) + target_link_libraries(magnum-info Magnum MagnumWindowlessNaClApplication ppapi_cpp ppapi) + endif() + + install(TARGETS magnum-info DESTINATION ${MAGNUM_BINARY_INSTALL_DIR}) + 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) endif() endif() diff --git a/src/Platform/magnum-info-nacl.html b/src/Platform/magnum-info-nacl.html new file mode 100644 index 000000000..f12bcf996 --- /dev/null +++ b/src/Platform/magnum-info-nacl.html @@ -0,0 +1,91 @@ + + + +Magnum Info + + + +

Magnum Info

+
+ + +
Initialization...
+
+
+ + diff --git a/src/Platform/magnum-info-nacl.nmf b/src/Platform/magnum-info-nacl.nmf new file mode 100644 index 000000000..c9de3d8c9 --- /dev/null +++ b/src/Platform/magnum-info-nacl.nmf @@ -0,0 +1,6 @@ +{ + "program": { + "x86-32": {"url": "magnum-info-x86-32.nexe"}, + "x86-64": {"url": "magnum-info-x86-64.nexe"} + } +} diff --git a/src/Platform/magnum-info.cpp b/src/Platform/magnum-info.cpp index 169352ac4..5879421b8 100644 --- a/src/Platform/magnum-info.cpp +++ b/src/Platform/magnum-info.cpp @@ -24,9 +24,16 @@ #include #include +#ifdef CORRADE_TARGET_NACL +#include +#endif #include "Context.h" +#ifndef CORRADE_TARGET_NACL #include "Platform/WindowlessGlxApplication.h" +#else +#include "Platform/WindowlessNaClApplication.h" +#endif namespace Magnum { @@ -40,6 +47,13 @@ class MagnumInfo: public Platform::WindowlessApplication { MagnumInfo::MagnumInfo(const Arguments& arguments): Platform::WindowlessApplication(arguments) { Context* c = Context::current(); + /* Pass debug output as messages to JavaScript */ + #ifdef CORRADE_TARGET_NACL + Utility::NaClMessageStreamBuffer buffer(this); + std::ostream out(&buffer); + Debug::setOutput(&out); + #endif + Debug() << ""; Debug() << " +---------------------------------------------------------+"; Debug() << " | Information about Magnum engine and OpenGL capabilities |";