diff --git a/src/Magnum/Text/CMakeLists.txt b/src/Magnum/Text/CMakeLists.txt index 0153086de..7634f6da8 100644 --- a/src/Magnum/Text/CMakeLists.txt +++ b/src/Magnum/Text/CMakeLists.txt @@ -64,11 +64,7 @@ install(TARGETS MagnumText install(FILES ${MagnumText_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Text) if(WITH_FONTCONVERTER) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/fontconverterConfigure.h.cmake - ${CMAKE_CURRENT_BINARY_DIR}/fontconverterConfigure.h) - add_executable(magnum-fontconverter fontconverter.cpp) - target_include_directories(magnum-fontconverter PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) target_link_libraries(magnum-fontconverter Magnum MagnumText) if(MAGNUM_TARGET_HEADLESS) target_link_libraries(magnum-fontconverter MagnumWindowlessEglApplication) diff --git a/src/Magnum/Text/fontconverter.cpp b/src/Magnum/Text/fontconverter.cpp index f0d8c3b81..7daa8a4db 100644 --- a/src/Magnum/Text/fontconverter.cpp +++ b/src/Magnum/Text/fontconverter.cpp @@ -54,8 +54,6 @@ #error no windowless application available on this platform #endif -#include "fontconverterConfigure.h" - namespace Magnum { /** @@ -80,8 +78,7 @@ Arguments: - `-h`, `--help` --- display help message and exit - `--font FONT` --- font plugin - `--converter CONVERTER` --- font converter plugin -- `--plugin-dir DIR` --- base plugin dir (defaults to plugin directory in - Magnum install location) +- `--plugin-dir DIR` --- override base plugin dir - `--characters CHARACTERS` --- characters to include in the output (default: `abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789?!:;,. `) - `--font-size N` --- input font size (default: `128`) @@ -127,7 +124,7 @@ FontConverter::FontConverter(const Arguments& arguments): Platform::WindowlessAp .addArgument("output").setHelp("output", "output filename prefix") .addNamedArgument("font").setHelp("font", "font plugin") .addNamedArgument("converter").setHelp("converter", "font converter plugin") - .addOption("plugin-dir", Utility::Directory::join(Utility::Directory::path(Utility::Directory::executableLocation()), MAGNUM_PLUGINS_DIR)).setHelp("plugin-dir", "base plugin dir", "DIR") + .addOption("plugin-dir").setHelp("plugin-dir", "override base plugin dir", "DIR") .addOption("characters", "abcdefghijklmnopqrstuvwxyz" "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "0123456789?!:;,. ").setHelp("characters", "characters to include in the output") @@ -144,15 +141,21 @@ FontConverter::FontConverter(const Arguments& arguments): Platform::WindowlessAp int FontConverter::exec() { /* Font converter dependencies */ - PluginManager::Manager imageConverterManager(Utility::Directory::join(args.value("plugin-dir"), "imageconverters/")); + PluginManager::Manager imageConverterManager{ + args.value("plugin-dir").empty() ? std::string{} : + Utility::Directory::join(args.value("plugin-dir"), Trade::AbstractImageConverter::pluginSearchPaths()[0])}; /* Load font */ - PluginManager::Manager fontManager(Utility::Directory::join(args.value("plugin-dir"), "fonts/")); + PluginManager::Manager fontManager{ + args.value("plugin-dir").empty() ? std::string{} : + Utility::Directory::join(args.value("plugin-dir"), Text::AbstractFont::pluginSearchPaths()[0])}; std::unique_ptr font = fontManager.loadAndInstantiate(args.value("font")); if(!font) return 1; /* Load font converter */ - PluginManager::Manager converterManager(Utility::Directory::join(args.value("plugin-dir"), "fontconverters/")); + PluginManager::Manager converterManager{ + args.value("plugin-dir").empty() ? std::string{} : + Utility::Directory::join(args.value("plugin-dir"), Text::AbstractFontConverter::pluginSearchPaths()[0])}; std::unique_ptr converter = converterManager.loadAndInstantiate(args.value("converter")); if(!converter) return 2; diff --git a/src/Magnum/Text/fontconverterConfigure.h.cmake b/src/Magnum/Text/fontconverterConfigure.h.cmake deleted file mode 100644 index e5da8e076..000000000 --- a/src/Magnum/Text/fontconverterConfigure.h.cmake +++ /dev/null @@ -1,30 +0,0 @@ -/* - This file is part of Magnum. - - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 - 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. -*/ - -#ifdef CORRADE_IS_DEBUG_BUILD -#define MAGNUM_PLUGINS_DIR "${MAGNUM_PLUGINS_DEBUG_DIR}" -#else -#define MAGNUM_PLUGINS_DIR "${MAGNUM_PLUGINS_DIR}" -#endif diff --git a/src/Magnum/TextureTools/CMakeLists.txt b/src/Magnum/TextureTools/CMakeLists.txt index af20ba326..b74ea0c21 100644 --- a/src/Magnum/TextureTools/CMakeLists.txt +++ b/src/Magnum/TextureTools/CMakeLists.txt @@ -58,11 +58,7 @@ install(TARGETS MagnumTextureTools install(FILES ${MagnumTextureTools_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/TextureTools) if(WITH_DISTANCEFIELDCONVERTER) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/distancefieldconverterConfigure.h.cmake - ${CMAKE_CURRENT_BINARY_DIR}/distancefieldconverterConfigure.h) - add_executable(magnum-distancefieldconverter distancefieldconverter.cpp) - target_include_directories(magnum-distancefieldconverter PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) target_link_libraries(magnum-distancefieldconverter Magnum MagnumTextureTools) if(MAGNUM_TARGET_HEADLESS) target_link_libraries(magnum-distancefieldconverter MagnumWindowlessEglApplication) diff --git a/src/Magnum/TextureTools/distancefieldconverter.cpp b/src/Magnum/TextureTools/distancefieldconverter.cpp index d9586adcc..20082521f 100644 --- a/src/Magnum/TextureTools/distancefieldconverter.cpp +++ b/src/Magnum/TextureTools/distancefieldconverter.cpp @@ -60,8 +60,6 @@ #error no windowless application available on this platform #endif -#include "distancefieldconverterConfigure.h" - namespace Magnum { /** @page magnum-distancefieldconverter Distance Field conversion utility @@ -86,8 +84,7 @@ Arguments: @ref Trade::AnyImageImporter "AnyImageImporter") - `--converter CONVERTER` --- image converter plugin (default: @ref Trade::AnyImageConverter "AnyImageConverter") -- `--plugin-dir DIR` --- base plugin dir (defaults to plugin directory in - Magnum install location) +- `--plugin-dir DIR` --- override base plugin dir - `--output-size "X Y"` --- size of output image - `--radius N` --- distance field computation radius - `--magnum-...` --- engine-specific options (see @ref Context for details) @@ -128,7 +125,7 @@ DistanceFieldConverter::DistanceFieldConverter(const Arguments& arguments): Plat .addArgument("output").setHelp("output", "output image") .addOption("importer", "AnyImageImporter").setHelp("importer", "image importer plugin") .addOption("converter", "AnyImageConverter").setHelp("converter", "image converter plugin") - .addOption("plugin-dir", Utility::Directory::join(Utility::Directory::path(Utility::Directory::executableLocation()), MAGNUM_PLUGINS_DIR)).setHelp("plugin-dir", "base plugin dir", "DIR") + .addOption("plugin-dir").setHelp("plugin-dir", "override base plugin dir", "DIR") .addNamedArgument("output-size").setHelp("output-size", "size of output image", "\"X Y\"") .addNamedArgument("radius").setHelp("radius", "distance field computation radius", "N") .addSkippedPrefix("magnum", "engine-specific options") @@ -140,12 +137,16 @@ DistanceFieldConverter::DistanceFieldConverter(const Arguments& arguments): Plat int DistanceFieldConverter::exec() { /* Load importer plugin */ - PluginManager::Manager importerManager(Utility::Directory::join(args.value("plugin-dir"), "importers/")); + PluginManager::Manager importerManager{ + args.value("plugin-dir").empty() ? std::string{} : + Utility::Directory::join(args.value("plugin-dir"), Trade::AbstractImporter::pluginSearchPaths()[0])}; std::unique_ptr importer = importerManager.loadAndInstantiate(args.value("importer")); if(!importer) return 1; /* Load converter plugin */ - PluginManager::Manager converterManager(Utility::Directory::join(args.value("plugin-dir"), "imageconverters/")); + PluginManager::Manager converterManager{ + args.value("plugin-dir").empty() ? std::string{} : + Utility::Directory::join(args.value("plugin-dir"), Trade::AbstractImageConverter::pluginSearchPaths()[0])}; std::unique_ptr converter = converterManager.loadAndInstantiate(args.value("converter")); if(!converter) return 2; diff --git a/src/Magnum/TextureTools/distancefieldconverterConfigure.h.cmake b/src/Magnum/TextureTools/distancefieldconverterConfigure.h.cmake deleted file mode 100644 index e5da8e076..000000000 --- a/src/Magnum/TextureTools/distancefieldconverterConfigure.h.cmake +++ /dev/null @@ -1,30 +0,0 @@ -/* - This file is part of Magnum. - - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 - 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. -*/ - -#ifdef CORRADE_IS_DEBUG_BUILD -#define MAGNUM_PLUGINS_DIR "${MAGNUM_PLUGINS_DEBUG_DIR}" -#else -#define MAGNUM_PLUGINS_DIR "${MAGNUM_PLUGINS_DIR}" -#endif diff --git a/src/Magnum/Trade/CMakeLists.txt b/src/Magnum/Trade/CMakeLists.txt index 34e9a8432..108924c12 100644 --- a/src/Magnum/Trade/CMakeLists.txt +++ b/src/Magnum/Trade/CMakeLists.txt @@ -51,11 +51,7 @@ set_target_properties(MagnumTrade PROPERTIES FOLDER "Magnum/Trade") install(FILES ${MagnumTrade_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Trade) if(WITH_IMAGECONVERTER) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/imageconverterConfigure.h.cmake - ${CMAKE_CURRENT_BINARY_DIR}/imageconverterConfigure.h) - add_executable(magnum-imageconverter imageconverter.cpp) - target_include_directories(magnum-imageconverter PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) target_link_libraries(magnum-imageconverter Magnum) set_target_properties(magnum-imageconverter PROPERTIES FOLDER "Magnum/Trade") diff --git a/src/Magnum/Trade/imageconverter.cpp b/src/Magnum/Trade/imageconverter.cpp index dffd9ae5b..4cc7adebd 100644 --- a/src/Magnum/Trade/imageconverter.cpp +++ b/src/Magnum/Trade/imageconverter.cpp @@ -32,8 +32,6 @@ #include "Magnum/Trade/AbstractImageConverter.h" #include "Magnum/Trade/ImageData.h" -#include "imageconverterConfigure.h" - namespace Magnum { /** @page magnum-imageconverter Image conversion utility @@ -57,8 +55,7 @@ Arguments: @ref Trade::AnyImageImporter "AnyImageImporter") - `--converter CONVERTER` --- image converter plugin (default: @ref Trade::AnyImageConverter "AnyImageConverter") -- `--plugin-dir DIR` --- base plugin dir (defaults to plugin directory in - Magnum install location) +- `--plugin-dir DIR` --- override base plugin dir @section magnum-imageconverter-example Example usage @@ -80,17 +77,21 @@ int main(int argc, char** argv) { .addArgument("output").setHelp("output", "output image") .addOption("importer", "AnyImageImporter").setHelp("importer", "image importer plugin") .addOption("converter", "AnyImageConverter").setHelp("converter", "image converter plugin") - .addOption("plugin-dir", Utility::Directory::join(Utility::Directory::path(Utility::Directory::executableLocation()), MAGNUM_PLUGINS_DIR)).setHelp("plugin-dir", "base plugin dir", "DIR") + .addOption("plugin-dir").setHelp("plugin-dir", "override base plugin dir", "DIR") .setHelp("Converts images of different formats.") .parse(argc, argv); /* Load importer plugin */ - PluginManager::Manager importerManager(Utility::Directory::join(args.value("plugin-dir"), "importers/")); + PluginManager::Manager importerManager{ + args.value("plugin-dir").empty() ? std::string{} : + Utility::Directory::join(args.value("plugin-dir"), Trade::AbstractImporter::pluginSearchPaths()[0])}; std::unique_ptr importer = importerManager.loadAndInstantiate(args.value("importer")); if(!importer) return 1; /* Load converter plugin */ - PluginManager::Manager converterManager(Utility::Directory::join(args.value("plugin-dir"), "imageconverters/")); + PluginManager::Manager converterManager{ + args.value("plugin-dir").empty() ? std::string{} : + Utility::Directory::join(args.value("plugin-dir"), Trade::AbstractImageConverter::pluginSearchPaths()[0])}; std::unique_ptr converter = converterManager.loadAndInstantiate(args.value("converter")); if(!converter) return 2; diff --git a/src/Magnum/Trade/imageconverterConfigure.h.cmake b/src/Magnum/Trade/imageconverterConfigure.h.cmake deleted file mode 100644 index e5da8e076..000000000 --- a/src/Magnum/Trade/imageconverterConfigure.h.cmake +++ /dev/null @@ -1,30 +0,0 @@ -/* - This file is part of Magnum. - - Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 - 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. -*/ - -#ifdef CORRADE_IS_DEBUG_BUILD -#define MAGNUM_PLUGINS_DIR "${MAGNUM_PLUGINS_DEBUG_DIR}" -#else -#define MAGNUM_PLUGINS_DIR "${MAGNUM_PLUGINS_DIR}" -#endif