diff --git a/src/Magnum/Platform/Test/XEglApplicationTest.cpp b/src/Magnum/Platform/Test/AbstractXApplicationTest.cpp similarity index 84% rename from src/Magnum/Platform/Test/XEglApplicationTest.cpp rename to src/Magnum/Platform/Test/AbstractXApplicationTest.cpp index 9d94b02d3..2c131dd71 100644 --- a/src/Magnum/Platform/Test/XEglApplicationTest.cpp +++ b/src/Magnum/Platform/Test/AbstractXApplicationTest.cpp @@ -26,14 +26,20 @@ #include +#ifdef BUILD_GLXAPPLICATION +#include "Magnum/Platform/GlxApplication.h" +#elif defined(BUILD_XEGLAPPLICATION) #include "Magnum/Platform/XEglApplication.h" +#else +#error +#endif namespace Magnum { namespace Platform { namespace Test { namespace { using namespace Containers::Literals; -struct XEglApplicationTest: Platform::Application { - explicit XEglApplicationTest(const Arguments& arguments); +struct AbstractXApplicationTest: Platform::Application { + explicit AbstractXApplicationTest(const Arguments& arguments); void drawEvent() override { Debug{} << "draw event"; @@ -41,7 +47,7 @@ struct XEglApplicationTest: Platform::Application { } }; -XEglApplicationTest::XEglApplicationTest(const Arguments& arguments): Platform::Application{arguments, NoCreate} { +AbstractXApplicationTest::AbstractXApplicationTest(const Arguments& arguments): Platform::Application{arguments, NoCreate} { Utility::Arguments args; args.addSkippedPrefix("magnum", "engine-specific options") .addBooleanOption("exit-immediately").setHelp("exit-immediately", "exit the application immediately from the constructor, to test that the app doesn't run any event handlers after") @@ -63,4 +69,4 @@ XEglApplicationTest::XEglApplicationTest(const Arguments& arguments): Platform:: }}}} -MAGNUM_APPLICATION_MAIN(Magnum::Platform::Test::XEglApplicationTest) +MAGNUM_APPLICATION_MAIN(Magnum::Platform::Test::AbstractXApplicationTest) diff --git a/src/Magnum/Platform/Test/CMakeLists.txt b/src/Magnum/Platform/Test/CMakeLists.txt index f130b6bdc..ffd3834f5 100644 --- a/src/Magnum/Platform/Test/CMakeLists.txt +++ b/src/Magnum/Platform/Test/CMakeLists.txt @@ -120,7 +120,8 @@ if(MAGNUM_WITH_GLFWAPPLICATION) endif() if(MAGNUM_WITH_GLXAPPLICATION) - add_executable(PlatformGlxApplicationTest GlxApplicationTest.cpp) + add_executable(PlatformGlxApplicationTest AbstractXApplicationTest.cpp) + target_compile_definitions(PlatformGlxApplicationTest PRIVATE BUILD_GLXAPPLICATION) target_link_libraries(PlatformGlxApplicationTest PRIVATE MagnumGlxApplication) endif() @@ -161,7 +162,8 @@ if(MAGNUM_WITH_SDL2APPLICATION) endif() if(MAGNUM_WITH_XEGLAPPLICATION) - add_executable(PlatformXEglApplicationTest XEglApplicationTest.cpp) + add_executable(PlatformXEglApplicationTest AbstractXApplicationTest.cpp) + target_compile_definitions(PlatformXEglApplicationTest PRIVATE BUILD_XEGLAPPLICATION) target_link_libraries(PlatformXEglApplicationTest PRIVATE MagnumXEglApplication) endif() diff --git a/src/Magnum/Platform/Test/GlxApplicationTest.cpp b/src/Magnum/Platform/Test/GlxApplicationTest.cpp deleted file mode 100644 index 693ac1606..000000000 --- a/src/Magnum/Platform/Test/GlxApplicationTest.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/* - This file is part of Magnum. - - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, - 2020, 2021, 2022, 2023, 2024 - 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. -*/ - -#include - -#include "Magnum/Platform/GlxApplication.h" - -namespace Magnum { namespace Platform { namespace Test { namespace { - -using namespace Containers::Literals; - -struct GlxApplicationTest: Platform::Application { - explicit GlxApplicationTest(const Arguments& arguments); - - void drawEvent() override { - Debug{} << "draw event"; - swapBuffers(); - } -}; - -GlxApplicationTest::GlxApplicationTest(const Arguments& arguments): Platform::Application{arguments, NoCreate} { - Utility::Arguments args; - args.addSkippedPrefix("magnum", "engine-specific options") - .addBooleanOption("exit-immediately").setHelp("exit-immediately", "exit the application immediately from the constructor, to test that the app doesn't run any event handlers after") - .addBooleanOption("quiet").setHelp("quiet", "like --magnum-log quiet, but specified via a Context::Configuration instead") - .parse(arguments.argc, arguments.argv); - - if(args.isSet("exit-immediately")) { - exit(); - return; - } - - Configuration conf; - conf.setTitle("Window title that should have no exclamation mark!!"_s.exceptSuffix(2)); - if(args.isSet("quiet")) - create(conf, GLConfiguration{}.addFlags(GLConfiguration::Flag::QuietLog)); - else - create(conf); -} - -}}}} - -MAGNUM_APPLICATION_MAIN(Magnum::Platform::Test::GlxApplicationTest)