From 0822a28059badbb18f301b414222e869845087fb Mon Sep 17 00:00:00 2001 From: Jonathan Hale Date: Sat, 17 Feb 2018 06:25:30 +0100 Subject: [PATCH] [corrade,magnum,-plugins,-extras,-integration] Update to latest and support feature packages (#2687) [corrade,magnum,-plugins,-extras,-integration] Update to latest and support feature packages --- ports/corrade/CONTROL | 20 ++++- ports/corrade/portfile.cmake | 70 ++++++++++++++---- ports/magnum-extras/CONTROL | 9 +++ ports/magnum-extras/portfile.cmake | 72 ++++++++++++++++++ ports/magnum-integration/CONTROL | 16 ++++ ports/magnum-integration/portfile.cmake | 67 +++++++++++++++++ ports/magnum-plugins/CONTROL | 83 ++++++++++++++++++++- ports/magnum-plugins/portfile.cmake | 54 +++++++++----- ports/magnum/003-glfw-find-module.patch | 13 ++++ ports/magnum/CONTROL | 97 ++++++++++++++++++++++++- ports/magnum/portfile.cmake | 60 +++++++++------ 11 files changed, 496 insertions(+), 65 deletions(-) create mode 100644 ports/magnum-extras/CONTROL create mode 100644 ports/magnum-extras/portfile.cmake create mode 100644 ports/magnum-integration/CONTROL create mode 100644 ports/magnum-integration/portfile.cmake create mode 100644 ports/magnum/003-glfw-find-module.patch diff --git a/ports/corrade/CONTROL b/ports/corrade/CONTROL index a2d73fba8..a886c8639 100644 --- a/ports/corrade/CONTROL +++ b/ports/corrade/CONTROL @@ -1,3 +1,19 @@ Source: corrade -Version: jan2018-1 -Description: C++11/C++14 multiplatform utility library http://mosra.cz/blog/corrade.php +Version: 2018.02-1 +Description: C++11/C++14 multiplatform utility library http://magnum.graphics/corrade/ +Default-Features: interconnect, pluginmanager, testsuite, utility + +Feature: interconnect +Description: Interconnect library +Build-Depends: corrade[utility] + +Feature: pluginmanager +Description: PluginManager library +Build-Depends: corrade[utility] + +Feature: testsuite +Description: TestSuite library +Build-Depends: corrade[utility] + +Feature: utility +Description: Utility library diff --git a/ports/corrade/portfile.cmake b/ports/corrade/portfile.cmake index d08530ef4..85ad3e4b0 100644 --- a/ports/corrade/portfile.cmake +++ b/ports/corrade/portfile.cmake @@ -2,8 +2,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mosra/corrade - REF 2dd926d23f21042838d9244c00ddd1d2f09861ee - SHA512 085062a34c4fecc864d02f38d4d45e22f6de72f3599d67327a783c350e478fe943c5bb3f9cd5544953b55b7ffa78923b087bc0f40a54eb9ed9f5d580970b2f45 + REF v2018.02 + SHA512 8fe4998dc32586386b8fa2030941f3ace6d5e76aadcf7e20a620d276cc9247324e10eb58f2c2c9e84a1a9d9b336e6bdc788f9947c9e507a053d6fd2ffcd3d58e HEAD_REF master ) @@ -13,35 +13,73 @@ else() set(BUILD_STATIC 0) endif() +# Handle features +set(_COMPONENT_FLAGS "") +foreach(_feature IN LISTS ALL_FEATURES) + # Uppercase the feature name and replace "-" with "_" + string(TOUPPER "${_feature}" _FEATURE) + string(REPLACE "-" "_" _FEATURE "${_FEATURE}") + + # Turn "-DWITH_*=" ON or OFF depending on whether the feature + # is in the list. + if(_feature IN_LIST FEATURES) + list(APPEND _COMPONENT_FLAGS "-DWITH_${_FEATURE}=ON") + else() + list(APPEND _COMPONENT_FLAGS "-DWITH_${_FEATURE}=OFF") + endif() +endforeach() + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA # Disable this option if project cannot be built with Ninja - OPTIONS -DBUILD_STATIC=${BUILD_STATIC} + OPTIONS + -DBUILD_STATIC=${BUILD_STATIC} + ${_COMPONENT_FLAGS} ) vcpkg_install_cmake() +# Debug includes and share are the same as release file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) -# Drop a copy of tools -file(COPY ${CURRENT_PACKAGES_DIR}/bin/corrade-rc.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/corrade) +# Install tools +if("utility" IN_LIST FEATURES) + # Drop a copy of tools + file(COPY ${CURRENT_PACKAGES_DIR}/bin/corrade-rc.exe + DESTINATION ${CURRENT_PACKAGES_DIR}/tools/corrade) -# Tools require dlls -vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/corrade) + # Tools require dlls + vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/corrade) -file(GLOB_RECURSE TO_REMOVE - ${CURRENT_PACKAGES_DIR}/bin/*.exe - ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe) -file(REMOVE ${TO_REMOVE}) + file(GLOB_RECURSE TO_REMOVE + ${CURRENT_PACKAGES_DIR}/bin/*.exe + ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe) + file(REMOVE ${TO_REMOVE}) +endif() -if(VCPKG_LIBRARY_LINKAGE STREQUAL static) - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) +# Ensure no empty folders are left behind +if(NOT FEATURES) + # No features, no binaries (only Corrade.h). + file(REMOVE_RECURSE + ${CURRENT_PACKAGES_DIR}/bin + ${CURRENT_PACKAGES_DIR}/lib + ${CURRENT_PACKAGES_DIR}/debug) + # debug is completely empty, as include and share + # have already been removed. + +elseif(VCPKG_LIBRARY_LINKAGE STREQUAL static) + # No dlls + file(REMOVE_RECURSE + ${CURRENT_PACKAGES_DIR}/bin + ${CURRENT_PACKAGES_DIR}/debug/bin) endif() # Handle copyright -file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/corrade) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/corrade/COPYING ${CURRENT_PACKAGES_DIR}/share/corrade/copyright) +file(COPY ${SOURCE_PATH}/COPYING + DESTINATION ${CURRENT_PACKAGES_DIR}/share/corrade) +file(RENAME + ${CURRENT_PACKAGES_DIR}/share/corrade/COPYING + ${CURRENT_PACKAGES_DIR}/share/corrade/copyright) vcpkg_copy_pdbs() diff --git a/ports/magnum-extras/CONTROL b/ports/magnum-extras/CONTROL new file mode 100644 index 000000000..0e7fe0a6b --- /dev/null +++ b/ports/magnum-extras/CONTROL @@ -0,0 +1,9 @@ +Source: magnum-extras +Version: 2018.02-1 +Build-Depends: magnum +Description: Extras for magnum, C++11/C++14 graphics middleware for games and data visualization http://magnum.graphics/ +Default-Features: + +Feature: ui +Description: Ui library +Build-Depends: corrade[interconnect], magnum[text] diff --git a/ports/magnum-extras/portfile.cmake b/ports/magnum-extras/portfile.cmake new file mode 100644 index 000000000..9c0771c52 --- /dev/null +++ b/ports/magnum-extras/portfile.cmake @@ -0,0 +1,72 @@ +include(vcpkg_common_functions) +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO mosra/magnum-extras + REF v2018.02 + SHA512 62c0832d19a36e0f89ffcd958356130c81f577b1091a9232d43307868caf51a1fd186c4aa196bd456d3c37cb887c9802d80eb0b332893bafa812298dbc39d7b7 + HEAD_REF master +) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + set(BUILD_STATIC 1) +else() + set(BUILD_STATIC 0) +endif() + +# Handle features +set(_COMPONENT_FLAGS "") +foreach(_feature IN LISTS ALL_FEATURES) + # Uppercase the feature name and replace "-" with "_" + string(TOUPPER "${_feature}" _FEATURE) + string(REPLACE "-" "_" _FEATURE "${_FEATURE}") + + # Turn "-DWITH_*=" ON or OFF depending on whether the feature + # is in the list. + if(_feature IN_LIST FEATURES) + list(APPEND _COMPONENT_FLAGS "-DWITH_${_FEATURE}=ON") + else() + list(APPEND _COMPONENT_FLAGS "-DWITH_${_FEATURE}=OFF") + endif() +endforeach() + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA # Disable this option if project cannot be built with Ninja + OPTIONS + ${_COMPONENT_FLAGS} + -DBUILD_STATIC=${BUILD_STATIC} + -DMAGNUM_PLUGINS_DEBUG_DIR=${CURRENT_INSTALLED_DIR}/debug/bin/magnum-d + -DMAGNUM_PLUGINS_RELEASE_DIR=${CURRENT_INSTALLED_DIR}/bin/magnum +) + +vcpkg_install_cmake() + +# Messages to the user +if("ui" IN_LIST FEATURES) + message(WARNING "It is recommended to install one of magnum-plugins[freetypefont,harfbuzzfont,stbtruetypefont] to have the UI library working out of the box") +endif() + +# Debug includes and share are the same as release +file(REMOVE_RECURSE + ${CURRENT_PACKAGES_DIR}/debug/include + ${CURRENT_PACKAGES_DIR}/debug/share) + +# Clean up empty directories +if(NOT FEATURES) + file(REMOVE_RECURSE + ${CURRENT_PACKAGES_DIR}/bin + ${CURRENT_PACKAGES_DIR}/lib + ${CURRENT_PACKAGES_DIR}/debug) + set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) +endif() + +if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) +endif() + +# Handle copyright +file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/magnum-extras) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/magnum-extras/COPYING ${CURRENT_PACKAGES_DIR}/share/magnum-extras/copyright) + +vcpkg_copy_pdbs() diff --git a/ports/magnum-integration/CONTROL b/ports/magnum-integration/CONTROL new file mode 100644 index 000000000..a791e5718 --- /dev/null +++ b/ports/magnum-integration/CONTROL @@ -0,0 +1,16 @@ +Source: magnum-integration +Version: 2018.02-1 +Build-Depends: magnum +Description: Integrations for magnum, C++11/C++14 graphics middleware for games and data visualization http://magnum.graphics/ +Default-Features: + +Feature: bullet +Description: BulletIntegration library +Build-Depends: bullet3 +#Feature: ovr +#Description: OvrIntegration library +#Build-Depends: ovrsdk +#Feature: dart +#Description: DartIntegration library +#Build-Depends: dart + diff --git a/ports/magnum-integration/portfile.cmake b/ports/magnum-integration/portfile.cmake new file mode 100644 index 000000000..8ef1899fd --- /dev/null +++ b/ports/magnum-integration/portfile.cmake @@ -0,0 +1,67 @@ +include(vcpkg_common_functions) +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO mosra/magnum-integration + REF v2018.02 + SHA512 b2db442d5e29c117ee30ee2c37f5087c3d360158a52eb6bc19e5c1a0388a0ec1338c53e3fdad618bb6f4aba5d88fe10d20bb1539e5f21a309b8f06f2e195279c + HEAD_REF master +) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + set(BUILD_STATIC 1) +else() + set(BUILD_STATIC 0) +endif() + +# Handle features +set(_COMPONENT_FLAGS "") +foreach(_feature IN LISTS ALL_FEATURES) + # Uppercase the feature name and replace "-" with "_" + string(TOUPPER "${_feature}" _FEATURE) + string(REPLACE "-" "_" _FEATURE "${_FEATURE}") + + # Turn "-DWITH_*=" ON or OFF depending on whether the feature + # is in the list. + if(_feature IN_LIST FEATURES) + list(APPEND _COMPONENT_FLAGS "-DWITH_${_FEATURE}=ON") + else() + list(APPEND _COMPONENT_FLAGS "-DWITH_${_FEATURE}=OFF") + endif() +endforeach() + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA # Disable this option if project cannot be built with Ninja + OPTIONS + ${_COMPONENT_FLAGS} + -DBUILD_STATIC=${BUILD_STATIC} + -DMAGNUM_PLUGINS_DEBUG_DIR=${CURRENT_INSTALLED_DIR}/debug/bin/magnum-d + -DMAGNUM_PLUGINS_RELEASE_DIR=${CURRENT_INSTALLED_DIR}/bin/magnum +) + +vcpkg_install_cmake() + +# Debug includes and share are the same as release +file(REMOVE_RECURSE + ${CURRENT_PACKAGES_DIR}/debug/include + ${CURRENT_PACKAGES_DIR}/debug/share) + +# Clean up empty directories +if(NOT FEATURES) + file(REMOVE_RECURSE + ${CURRENT_PACKAGES_DIR}/bin + ${CURRENT_PACKAGES_DIR}/lib + ${CURRENT_PACKAGES_DIR}/debug) + set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) +endif() + +if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) +endif() + +# Handle copyright +file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/magnum-integration) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/magnum-integration/COPYING ${CURRENT_PACKAGES_DIR}/share/magnum-integration/copyright) + +vcpkg_copy_pdbs() diff --git a/ports/magnum-plugins/CONTROL b/ports/magnum-plugins/CONTROL index 5c76b45ae..12a444e2d 100644 --- a/ports/magnum-plugins/CONTROL +++ b/ports/magnum-plugins/CONTROL @@ -1,4 +1,81 @@ Source: magnum-plugins -Version: jan2018-1 -Build-Depends: stb, magnum -Description: Plugins for C++11/C++14 and OpenGL graphics engine http://mosra.cz/blog/magnum.php +Version: 2018.02-1 +Build-Depends: magnum +Description: Plugins for magnum, C++11/C++14 graphics middleware for games and data visualization http://magnum.graphics/ +Default-Features: anyimageimporter, anysceneimporter, anyimageconverter, ddsimporter, miniexrimageconverter, opengeximporter, stanfordimporter, stbimageconverter, stbimageimporter + +Feature: anyimageimporter +Description: AnyImageImporter plugin + +Feature: anyaudioimporter +Description: AnyAudioImporter plugin + +Feature: anyimageconverter +Description: AnyImageConverter plugin + +Feature: anysceneimporter +Description: AnySceneImporter plugin + +Feature: assimpimporter +Description: AssimpImporter plugin +Build-Depends: assimp, magnum-plugins[anyimageimporter] + +Feature: ddsimporter +Description: DdsImporter plugin + +Feature: devilimageimporter +Description: DevIlImageImporter plugin +Build-Depends: devil + +Feature: drflacaudioimporter +Description: DrFlacAudioImporter plugin +Build-Depends: magnum[audio] + +Feature: drwavaudioimporter +Description: DrWavAudioImporter plugin +Build-Depends: magnum[audio] + +Feature: freetypefont +Description: FreeTypeFont plugin +Build-Depends: freetype, magnum[text] + +Feature: harfbuzzfont +Description: HarfBuzzFont plugin +Build-Depends: harfbuzz, magnum-plugins[freetypefont] + +Feature: jpegimporter +Description: JpegImporter plugin +Build-Depends: libjpeg-turbo + +Feature: miniexrimageconverter +Description: MiniExrImageConverter plugin + +Feature: opengeximporter +Description: OpenGexImporter plugin +Build-Depends: magnum-plugins[anyimageimporter] + +Feature: pngimageconverter +Description: PngImageConverter plugin +Build-Depends: libpng + +Feature: pngimporter +Description: PngImporter plugin +Build-Depends: libpng + +Feature: stanfordimporter +Description: StanfordImporter plugin + +Feature: stbimageconverter +Description: StbImageConverter plugin + +Feature: stbimageimporter +Description: StbImageImporter plugin + +Feature: stbtruetypefont +Description: StbTrueTypeFont plugin +Build-Depends: magnum[text] + +Feature: stbvorbisaudioimporter +Description: StbVorbisAudioImporter plugin +Build-Depends: magnum[audio] + diff --git a/ports/magnum-plugins/portfile.cmake b/ports/magnum-plugins/portfile.cmake index b2b574b06..86e5622d5 100644 --- a/ports/magnum-plugins/portfile.cmake +++ b/ports/magnum-plugins/portfile.cmake @@ -2,8 +2,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mosra/magnum-plugins - REF f0ddc63385e30c3bae362789855a95de7c46f8a7 - SHA512 d0afda7be75efd2dec731e9435732220a76e735ef58d860f7119f206b1d5828af6e70aca3517b0f930c83440930ed62cb03e6c123e37771b72c50ddb44676945 + REF v2018.02 + SHA512 650d3ec26b3c72aa98ffa242b072e382445de49d4849042faf5dac800d5e4cce223cac3fa1cc079fcb230632730af1d90ac7d347d152a1f31d224732499e96b4 HEAD_REF master ) @@ -15,38 +15,51 @@ vcpkg_apply_patches( if(VCPKG_LIBRARY_LINKAGE STREQUAL static) set(BUILD_STATIC 1) - set(BUILD_PLUGINS_STATIC 1) else() set(BUILD_STATIC 0) - set(BUILD_PLUGINS_STATIC 0) endif() +# Handle features +set(_COMPONENT_FLAGS "") +foreach(_feature IN LISTS ALL_FEATURES) + # Uppercase the feature name and replace "-" with "_" + string(TOUPPER "${_feature}" _FEATURE) + string(REPLACE "-" "_" _FEATURE "${_FEATURE}") + + # Turn "-DWITH_*=" ON or OFF depending on whether the feature + # is in the list. + if(_feature IN_LIST FEATURES) + list(APPEND _COMPONENT_FLAGS "-DWITH_${_FEATURE}=ON") + else() + list(APPEND _COMPONENT_FLAGS "-DWITH_${_FEATURE}=OFF") + endif() +endforeach() + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA # Disable this option if project cannot be built with Ninja OPTIONS - -DWITH_STBIMAGECONVERTER=ON - -DWITH_STBIMAGEIMPORTER=ON - -DWITH_STBTRUETYPEFONT=ON - -DWITH_STBTRUETYPEFONT=ON - -DWITH_MINIEXRIMAGECONVERTER=ON - -DWITH_OPENGEXIMPORTER=ON - -DWITH_OPENGEXIMPORTER=ON - -DWITH_STANFORDIMPORTER=ON - -DWITH_DRWAVAUDIOIMPORTER=ON - -DWITH_ANYAUDIOIMPORTER=ON - -DWITH_ANYIMAGECONVERTER=ON - -DWITH_ANYSCENEIMPORTER=ON + ${_COMPONENT_FLAGS} -DBUILD_STATIC=${BUILD_STATIC} - -DBUILD_PLUGINS_STATIC=${BUILD_PLUGINS_STATIC} -DMAGNUM_PLUGINS_DEBUG_DIR=${CURRENT_INSTALLED_DIR}/debug/bin/magnum-d -DMAGNUM_PLUGINS_RELEASE_DIR=${CURRENT_INSTALLED_DIR}/bin/magnum ) vcpkg_install_cmake() -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) +# Debug includes and share are the same as release +file(REMOVE_RECURSE + ${CURRENT_PACKAGES_DIR}/debug/include + ${CURRENT_PACKAGES_DIR}/debug/share) + +# Clean up empty directories +if(NOT FEATURES) + file(REMOVE_RECURSE + ${CURRENT_PACKAGES_DIR}/bin + ${CURRENT_PACKAGES_DIR}/lib + ${CURRENT_PACKAGES_DIR}/debug) + set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) +endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL static) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) @@ -66,6 +79,9 @@ else() # hint vcpkg set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) set(VCPKG_POLICY_DLLS_WITHOUT_LIBS enabled) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/MagnumPlugins) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/magnum) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/magnum-d) endif() # Handle copyright diff --git a/ports/magnum/003-glfw-find-module.patch b/ports/magnum/003-glfw-find-module.patch new file mode 100644 index 000000000..0517559e3 --- /dev/null +++ b/ports/magnum/003-glfw-find-module.patch @@ -0,0 +1,13 @@ +diff --git a/modules/FindGLFW.cmake b/modules/FindGLFW.cmake +index e831fdb2..b2dba97f 100644 +--- a/modules/FindGLFW.cmake ++++ b/modules/FindGLFW.cmake +@@ -39,7 +39,7 @@ + # DEALINGS IN THE SOFTWARE. + # + +-find_library(GLFW_LIBRARY NAMES glfw glfw3) ++find_library(GLFW_LIBRARY NAMES glfw glfw3 glfw3dll) + + # Include dir + find_path(GLFW_INCLUDE_DIR diff --git a/ports/magnum/CONTROL b/ports/magnum/CONTROL index a54adc118..dcf86f079 100644 --- a/ports/magnum/CONTROL +++ b/ports/magnum/CONTROL @@ -1,4 +1,95 @@ Source: magnum -Version: jan2018-1 -Build-Depends: corrade, sdl2, openal-soft -Description: C++11/C++14 and OpenGL graphics engine http://mosra.cz/blog/magnum.php +Version: 2018.02-1 +Build-Depends: corrade[pluginmanager], corrade[utility] +Description: C++11/C++14 graphics middleware for games and data visualization http://magnum.graphics/ +Default-Features: debugtools, meshtools, primitives, scenegraph, shaders, shapes, text, texturetools, sdl2application, windowlesswglapplication + +Feature: sdl2application +Description: Sdl2Application library +Build-Depends: sdl2 + +Feature: glfwapplication +Description: GlfwApplication library +Build-Depends: glfw3 + +Feature: glutapplication +Description: GlutApplication library +Build-Depends: freeglut + +Feature: audio +Description: Audio library +Build-Depends: openal-soft + +Feature: magnuminfo +Description: magnum-info utility + +Feature: fontconverter +Description: magnum-fontconverter utility +Build-Depends: magnum[text] + +Feature: distancefieldconverter +Description: magnum-distancefieldconverter utility +Build-Depends: magnum[texturetools] + +Feature: imageconverter +Description: magnum-imageconverter utility + +Feature: wavaudioimporter +Description: WavAudioImporter plugin +Build-Depends: magnum[audio] + +Feature: magnumfont +Description: MagnumFont plugin +Build-Depends: magnum[text] + +Feature: magnumfontconverter +Description: MagnumFontConverter plugin +Build-Depends: magnum[text], magnum[tgaimageconverter] + +Feature: objimporter +Description: ObjImporter plugin + +Feature: tgaimageconverter +Description: TgaImageConverter plugin + +Feature: tgaimporter +Description: TgaImporter plugin + +Feature: debugtools +Description: DebugTools library + +Feature: meshtools +Description: MeshTools library + +Feature: primitives +Description: Primitives library + +Feature: shapes +Description: Shapes library + +Feature: scenegraph +Description: SceneGraph library + +Feature: shaders +Description: Shaders library + +Feature: text +Description: Text library +Build-Depends: magnum[texturetools] + +Feature: texturetools +Description: TextureTools library + +Feature: al-info +Description: magnum-al-info utility +Build-Depends: magnum[audio] + +Feature: windowlesswglapplication +Description: WindowlessWglApplication library + +Feature: wglcontext +Description: WglContext library + +Feature: opengltester +Description: OpenGLTester library +Build-Depends: corrade[testsuite] diff --git a/ports/magnum/portfile.cmake b/ports/magnum/portfile.cmake index 57c62431e..10d7f02fc 100644 --- a/ports/magnum/portfile.cmake +++ b/ports/magnum/portfile.cmake @@ -2,16 +2,17 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mosra/magnum - REF 68953f8c872b7c08f792c6082b8ab152f2119560 - SHA512 00b507b85ed3454f81fe7098e1fc349d4048a2372e3b2aceabccc0c4287540ed3850f8dd9cdcd9cfb9542ba9af741e30e43e2b03bbc5490b552f862da34369b1 + REF v2018.02 + SHA512 aeb0cab91ae0a7cca79c15ce98d9b2f8d46f5bc11bb90718e59188bf233154fb51668e0241112b65103f40e675736d74c86a2e5ccffcb698780ccedb1b3fb8bd HEAD_REF master ) vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} PATCHES - ${CMAKE_CURRENT_LIST_DIR}/001-sdl-includes.patch + ${CMAKE_CURRENT_LIST_DIR}/001-sdl-includes.patch ${CMAKE_CURRENT_LIST_DIR}/002-tools-path.patch + ${CMAKE_CURRENT_LIST_DIR}/003-glfw-find-module.patch ) if(VCPKG_LIBRARY_LINKAGE STREQUAL static) @@ -22,23 +23,27 @@ else() set(BUILD_PLUGINS_STATIC 0) endif() +# Handle features +set(_COMPONENT_FLAGS "") +foreach(_feature IN LISTS ALL_FEATURES) + # Uppercase the feature name and replace "-" with "_" + string(TOUPPER "${_feature}" _FEATURE) + string(REPLACE "-" "_" _FEATURE "${_FEATURE}") + + # Turn "-DWITH_*=" ON or OFF depending on whether the feature + # is in the list. + if(_feature IN_LIST FEATURES) + list(APPEND _COMPONENT_FLAGS "-DWITH_${_FEATURE}=ON") + else() + list(APPEND _COMPONENT_FLAGS "-DWITH_${_FEATURE}=OFF") + endif() +endforeach() + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA # Disable this option if project cannot be built with Ninja OPTIONS - -DWITH_SDL2APPLICATION=ON - -DWITH_WINDOWLESSWGLAPPLICATION=ON - -DWITH_WGLCONTEXT=ON - -DWITH_OPENGLTESTER=ON - -DWITH_AUDIO=ON - -DWITH_WAVAUDIOIMPORTER=ON - -DWITH_MAGNUMFONT=ON - -DWITH_MAGNUMFONTCONVERTER=ON - -DWITH_OBJIMPORTER=ON - -DWITH_TGAIMPORTER=ON - -DWITH_DISTANCEFIELDCONVERTER=ON - -DWITH_FONTCONVERTER=ON - -DWITH_TGAIMAGECONVERTER=ON + ${_COMPONENT_FLAGS} -DBUILD_STATIC=${BUILD_STATIC} -DBUILD_PLUGINS_STATIC=${BUILD_PLUGINS_STATIC} -DMAGNUM_PLUGINS_DEBUG_DIR=${CURRENT_INSTALLED_DIR}/debug/bin/magnum-d @@ -48,17 +53,28 @@ vcpkg_configure_cmake( vcpkg_install_cmake() # Drop a copy of tools -file(COPY ${CURRENT_PACKAGES_DIR}/bin/magnum-distancefieldconverter.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/magnum) -file(COPY ${CURRENT_PACKAGES_DIR}/bin/magnum-fontconverter.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/magnum) +if(distancefieldconverter IN_LIST FEATURES) + file(COPY ${CURRENT_PACKAGES_DIR}/bin/magnum-distancefieldconverter.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/magnum) +endif() +if(fontconverter IN_LIST FEATURES) + file(COPY ${CURRENT_PACKAGES_DIR}/bin/magnum-fontconverter.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/magnum) +endif() +if(al-info IN_LIST FEATURES) + file(COPY ${CURRENT_PACKAGES_DIR}/bin/magnum-al-info.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/magnum) +endif() +if(magnuminfo IN_LIST FEATURES) + file(COPY ${CURRENT_PACKAGES_DIR}/bin/magnum-info.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/magnum) +endif() # Tools require dlls vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/magnum) -file(GLOB_RECURSE TO_REMOVE +file(GLOB_RECURSE TO_REMOVE ${CURRENT_PACKAGES_DIR}/bin/*.exe ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe) -file(REMOVE ${TO_REMOVE}) - +if(TO_REMOVE) + file(REMOVE ${TO_REMOVE}) +endif() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) @@ -84,4 +100,4 @@ endif() file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/magnum) file(RENAME ${CURRENT_PACKAGES_DIR}/share/magnum/COPYING ${CURRENT_PACKAGES_DIR}/share/magnum/copyright) -vcpkg_copy_pdbs() \ No newline at end of file +vcpkg_copy_pdbs()