diff options
Diffstat (limited to 'vcpkg/ports/ogre')
| -rw-r--r-- | vcpkg/ports/ogre/cfg-rel-paths.patch | 24 | ||||
| -rw-r--r-- | vcpkg/ports/ogre/cmake4.patch | 30 | ||||
| -rw-r--r-- | vcpkg/ports/ogre/fix-dependencies.patch | 220 | ||||
| -rw-r--r-- | vcpkg/ports/ogre/pkgconfig.patch | 30 | ||||
| -rw-r--r-- | vcpkg/ports/ogre/portfile.cmake | 176 | ||||
| -rw-r--r-- | vcpkg/ports/ogre/same-install-rules-all-platforms.patch | 14 | ||||
| -rw-r--r-- | vcpkg/ports/ogre/swig-python-polyfill.patch | 19 | ||||
| -rw-r--r-- | vcpkg/ports/ogre/vcpkg.json | 117 |
8 files changed, 630 insertions, 0 deletions
diff --git a/vcpkg/ports/ogre/cfg-rel-paths.patch b/vcpkg/ports/ogre/cfg-rel-paths.patch new file mode 100644 index 0000000..512bf15 --- /dev/null +++ b/vcpkg/ports/ogre/cfg-rel-paths.patch @@ -0,0 +1,24 @@ +diff --git a/CMake/InstallResources.cmake b/CMake/InstallResources.cmake +index 09789ce..3d918e4 100644 +--- a/CMake/InstallResources.cmake ++++ b/CMake/InstallResources.cmake +@@ -61,7 +61,6 @@ elseif (APPLE) + endif() + # these are resolved relative to the app bundle + set(OGRE_SAMPLES_DIR_REL "Contents/Plugins/") +- set(OGRE_CFG_INSTALL_PATH "bin") + elseif (UNIX) + set(OGRE_TEST_MEDIA_DIR_REL "${CMAKE_INSTALL_PREFIX}/Tests/Media") + set(OGRE_SAMPLES_DIR_REL "${CMAKE_INSTALL_PREFIX}/${OGRE_LIB_DIRECTORY}/OGRE/Samples") +@@ -155,6 +154,10 @@ endif() + + set(OGRE_SAMPLE_RESOURCES "") + ++set(OGRE_PLUGIN_DIR_REL "${CMAKE_INSTALL_PREFIX}/${OGRE_PLUGINS_PATH}") ++cmake_path(RELATIVE_PATH OGRE_PLUGIN_DIR_REL BASE_DIRECTORY "${CMAKE_INSTALL_PREFIX}/${OGRE_CFG_INSTALL_PATH}") ++set(OGRE_MEDIA_DIR_REL "${CMAKE_INSTALL_PREFIX}/${OGRE_MEDIA_PATH}") ++cmake_path(RELATIVE_PATH OGRE_MEDIA_DIR_REL BASE_DIRECTORY "${CMAKE_INSTALL_PREFIX}/${OGRE_CFG_INSTALL_PATH}") + set(OGRE_CORE_MEDIA_DIR "${OGRE_MEDIA_DIR_REL}") + + # CREATE CONFIG FILES - INSTALL VERSIONS + diff --git a/vcpkg/ports/ogre/cmake4.patch b/vcpkg/ports/ogre/cmake4.patch new file mode 100644 index 0000000..993f9a4 --- /dev/null +++ b/vcpkg/ports/ogre/cmake4.patch @@ -0,0 +1,30 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 15edbe3917..206d532ddb 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -46,11 +46,6 @@ endif() + if (APPLE AND NOT ANDROID AND NOT EMSCRIPTEN AND NOT ANDROID_PLATFORM) + SET(CMAKE_SIZEOF_VOID_P 4) + +- if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16.0") +- enable_language(OBJC) +- enable_language(OBJCXX) +- endif() +- + if(POLICY CMP0068) + cmake_policy(SET CMP0068 NEW) # CMake 3.9+: `RPATH` settings on macOS do not affect `install_name`. + endif() +@@ -65,6 +60,13 @@ endif () + + project(OGRE VERSION 14.3.2) + ++if (APPLE AND NOT ANDROID AND NOT EMSCRIPTEN AND NOT ANDROID_PLATFORM) ++ if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16.0") ++ enable_language(OBJC) ++ enable_language(OBJCXX) ++ endif() ++endif() ++ + # extra version info + set(OGRE_VERSION_SUFFIX "") + set(OGRE_VERSION_NAME "Tsathoggua") diff --git a/vcpkg/ports/ogre/fix-dependencies.patch b/vcpkg/ports/ogre/fix-dependencies.patch new file mode 100644 index 0000000..a90a652 --- /dev/null +++ b/vcpkg/ports/ogre/fix-dependencies.patch @@ -0,0 +1,220 @@ +diff --git a/CMake/Dependencies.cmake b/CMake/Dependencies.cmake +index 21590f4..4b46a29 100644 +--- a/CMake/Dependencies.cmake ++++ b/CMake/Dependencies.cmake +@@ -210,11 +210,14 @@ endif() + ####################################################################### + + # Find FreeImage +-find_package(FreeImage) ++find_package(FreeImage NAMES freeimage) ++set(FreeImage_LIBRARIES freeimage::FreeImage) ++set(FreeImage_LIBRARY_DBG "-lFreeImaged") ++set(FreeImage_LIBRARY_REL "-lFreeImage") + macro_log_feature(FreeImage_FOUND "freeimage" "Support for commonly used graphics image formats" "http://freeimage.sourceforge.net") + + # Find FreeType +-find_package(Freetype) ++find_package(FREETYPE NAMES freetype) + macro_log_feature(FREETYPE_FOUND "freetype" "Portable font engine" "http://www.freetype.org") + + # Find X11 +@@ -281,13 +284,17 @@ endif () + macro_log_feature(ENV{VULKAN_SDK} "Vulkan SDK" "Vulkan RenderSystem, glslang Plugin. Alternatively use system packages" "https://vulkan.lunarg.com/") + + # OpenEXR +-find_package(OpenEXR) ++find_package(IMath CONFIG) ++find_package(OPENEXR NAMES OpenEXR) ++set(OPENEXR_LIBRARIES OpenEXR::OpenEXR Imath::Imath) + macro_log_feature(OPENEXR_FOUND "OpenEXR" "Load High dynamic range images" "http://www.openexr.com/") + + # Python + set(Python_ADDITIONAL_VERSIONS 3.4) # allows using python3 on Ubuntu 14.04 +-find_package(PythonInterp) +-find_package(PythonLibs) ++find_package(Python3 COMPONENTS Development Interpreter) # Interpreter is needed for Python3_FOUND ++set(PYTHONLIBS_FOUND "${Python3_FOUND}") ++set(PYTHON_INCLUDE_PATH "${Python3_INCLUDE_DIRS}") ++set(PYTHON_LIBRARIES "${Python3_LIBRARIES}") + macro_log_feature(PYTHONLIBS_FOUND "Python" "Language bindings to use OGRE from Python" "http://www.python.org/") + + # SWIG +@@ -295,7 +302,7 @@ find_package(SWIG 3.0.8 QUIET) + macro_log_feature(SWIG_FOUND "SWIG" "Language bindings (Python, Java, C#) for OGRE" "http://www.swig.org/") + + # pugixml +-find_package(pugixml QUIET) ++find_package(pugixml CONFIG REQUIRED) + macro_log_feature(pugixml_FOUND "pugixml" "Needed for XMLConverter and DotScene Plugin" "https://pugixml.org/") + + # Find zlib +@@ -303,7 +310,7 @@ find_package(ZLIB) + macro_log_feature(ZLIB_FOUND "zlib" "Simple data compression library" "http://www.zlib.net") + + # Assimp +-find_package(assimp QUIET) ++find_package(assimp CONFIG) + macro_log_feature(assimp_FOUND "Assimp" "Needed for the AssimpLoader Plugin" "https://www.assimp.org/") + + # Bullet +@@ -311,6 +318,8 @@ find_package(Bullet QUIET) + macro_log_feature(BULLET_FOUND "Bullet" "Bullet physics" "https://pybullet.org") + + if(assimp_FOUND) ++ add_library(fix::assimp ALIAS assimp::assimp) ++elseif(0) + # workaround horribly broken assimp cmake, fixed with assimp 5.1 + add_library(fix::assimp INTERFACE IMPORTED) + set_target_properties(fix::assimp PROPERTIES +@@ -329,7 +338,7 @@ endif() + # Find sdl2 + if(NOT ANDROID AND NOT EMSCRIPTEN) + # find script does not work in cross compilation environment +- find_package(SDL2 QUIET) ++ find_package(SDL2 CONFIG REQUIRED) + macro_log_feature(SDL2_FOUND "SDL2" "Simple DirectMedia Library needed for input handling in samples" "https://www.libsdl.org/") + if(SDL2_FOUND AND NOT TARGET SDL2::SDL2) + add_library(SDL2::SDL2 INTERFACE IMPORTED) +diff --git a/CMake/Templates/OGREConfig.cmake.in b/CMake/Templates/OGREConfig.cmake.in +index 2047f66..a5c7cd0 100644 +--- a/CMake/Templates/OGREConfig.cmake.in ++++ b/CMake/Templates/OGREConfig.cmake.in +@@ -35,6 +35,25 @@ set(OGRE_LIBRARIES) + cmake_policy(PUSH) + cmake_policy(SET CMP0012 NEW) + ++include(CMakeFindDependencyMacro) ++find_dependency(pugixml CONFIG) ++find_dependency(SDL2 CONFIG) ++find_dependency(ZLIB) ++find_dependency(freetype CONFIG) ++if (@OGRE_BUILD_COMPONENT_OVERLAY_IMGUI@) ++ find_dependency(imgui CONFIG) ++endif() ++if(@OGRE_BUILD_PLUGIN_ASSIMP@) ++ find_dependency(assimp CONFIG) ++endif() ++if(@OGRE_BUILD_PLUGIN_FREEIMAGE@) ++ find_dependency(freeimage CONFIG) ++endif() ++if(@OGRE_BUILD_PLUGIN_EXRCODEC@) ++ find_dependency(Imath CONFIG) ++ find_dependency(OpenEXR CONFIG) ++endif() ++ + if(@OGRE_THREAD_PROVIDER@ EQUAL 1) + list(APPEND OGRE_INCLUDE_DIRS @Boost_INCLUDE_DIRS@) + endif() +diff --git a/Components/Bites/CMakeLists.txt b/Components/Bites/CMakeLists.txt +index 9e990b8..16c0ae4 100644 +--- a/Components/Bites/CMakeLists.txt ++++ b/Components/Bites/CMakeLists.txt +@@ -185,6 +185,12 @@ elseif(NOT EMSCRIPTEN) + message(WARNING "SDL2 not found - no input handling and reduced window creation capabilites") + endif() + ++if(OGRE_BUILD_COMPONENT_OVERLAY_IMGUI) ++ find_package(imgui CONFIG REQUIRED) ++ find_path(IMGUI_DIR NAMES imgui.h) ++ target_link_libraries(OgreBites PRIVATE imgui::imgui) ++endif() ++ + generate_export_header(OgreBites + EXPORT_MACRO_NAME _OgreBitesExport + EXPORT_FILE_NAME ${PROJECT_BINARY_DIR}/include/OgreBitesPrerequisites.h) +diff --git a/Components/Bites/src/OgreImGuiInputListener.cpp b/Components/Bites/src/OgreImGuiInputListener.cpp +index 3cb2379..5629bb5 100644 +--- a/Components/Bites/src/OgreImGuiInputListener.cpp ++++ b/Components/Bites/src/OgreImGuiInputListener.cpp +@@ -116,7 +116,7 @@ static bool keyEvent(const KeyboardEvent& arg) + if (key == ImGuiKey_None) + return io.WantCaptureKeyboard; + +- io.AddKeyEvent(ImGuiKey(key), arg.type == OgreBites::KEYDOWN); ++ io.AddKeyEvent(static_cast<ImGuiKey>(key), arg.type == OgreBites::KEYDOWN); + return io.WantCaptureKeyboard; + } + +diff --git a/Components/Overlay/CMakeLists.txt b/Components/Overlay/CMakeLists.txt +index 41bd634..87f1406 100644 +--- a/Components/Overlay/CMakeLists.txt ++++ b/Components/Overlay/CMakeLists.txt +@@ -19,6 +19,8 @@ list(APPEND HEADER_FILES + file(GLOB SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp") + + if(OGRE_BUILD_COMPONENT_OVERLAY_IMGUI) ++ find_package(imgui CONFIG REQUIRED) ++elseif(0) + set(IMGUI_DIR "${PROJECT_BINARY_DIR}/imgui-1.91.2" CACHE PATH "") + if(NOT EXISTS ${IMGUI_DIR}) + message(STATUS "Downloading imgui") +@@ -63,6 +65,8 @@ elseif(UNIX) + endif() + + if(OGRE_BUILD_COMPONENT_OVERLAY_IMGUI) ++ target_link_libraries(OgreOverlay PUBLIC OgreMain PRIVATE imgui::imgui) ++elseif(0) + target_include_directories(OgreOverlay PUBLIC + PUBLIC "$<BUILD_INTERFACE:${IMGUI_DIR}>" + PRIVATE "$<BUILD_INTERFACE:${IMGUI_DIR}/misc/freetype>") +diff --git a/PlugIns/EXRCodec/src/OgreEXRCodec.cpp b/PlugIns/EXRCodec/src/OgreEXRCodec.cpp +index efd4b32..1e3ea23 100644 +--- a/PlugIns/EXRCodec/src/OgreEXRCodec.cpp ++++ b/PlugIns/EXRCodec/src/OgreEXRCodec.cpp +@@ -36,6 +36,9 @@ THE SOFTWARE. + #include "O_IStream.h" + + #include <cmath> ++#include <ImathBox.h> ++#include <ImfFrameBuffer.h> ++#include <ImfHeader.h> + #include <ImfOutputFile.h> + #include <ImfInputFile.h> + #include <ImfChannelList.h> +diff --git a/PlugIns/STBICodec/CMakeLists.txt b/PlugIns/STBICodec/CMakeLists.txt +index 10283f5..e7edfd3 100644 +--- a/PlugIns/STBICodec/CMakeLists.txt ++++ b/PlugIns/STBICodec/CMakeLists.txt +@@ -19,8 +19,10 @@ endif() + add_library(Codec_STBI ${OGRE_LIB_TYPE} ${HEADER_FILES} ${SOURCES}) + target_link_libraries(Codec_STBI PUBLIC OgreMain) + ++find_path(STB_INCLUDE_DIRS "stb_image.h") + target_include_directories(Codec_STBI PUBLIC + "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>" ++ "$<BUILD_INTERFACE:${STB_INCLUDE_DIRS}>" + $<INSTALL_INTERFACE:include/OGRE/Plugins/STBICodec>) + + if(CMAKE_COMPILER_IS_GNUCXX) +diff --git a/PlugIns/STBICodec/src/OgreSTBICodec.cpp b/PlugIns/STBICodec/src/OgreSTBICodec.cpp +index c5a4d4b..df648d7 100644 +--- a/PlugIns/STBICodec/src/OgreSTBICodec.cpp ++++ b/PlugIns/STBICodec/src/OgreSTBICodec.cpp +@@ -40,7 +40,7 @@ THE SOFTWARE. + #define STBI_NO_STDIO + #define STB_IMAGE_IMPLEMENTATION + #define STB_IMAGE_STATIC +-#include "stbi/stb_image.h" ++#include "stb_image.h" + + #ifdef HAVE_ZLIB + #include <zlib.h> +@@ -63,7 +63,7 @@ static Ogre::uchar* custom_zlib_compress(Ogre::uchar* data, int data_len, int* o + + #define STB_IMAGE_WRITE_IMPLEMENTATION + #define STBI_WRITE_NO_STDIO +-#include "stbi/stb_image_write.h" ++#include "stb_image_write.h" + + namespace Ogre { + +@@ -74,7 +74,7 @@ namespace Ogre { + stbi_convert_iphone_png_to_rgb(1); + stbi_set_unpremultiply_on_load(1); + +- LogManager::getSingleton().logMessage("stb_image - v2.30 - public domain image loader"); ++ LogManager::getSingleton().logMessage("stb_image - public domain image loader"); + + // Register codecs + String exts = "jpeg,jpg,png,bmp,psd,tga,gif,pic,ppm,pgm,hdr"; diff --git a/vcpkg/ports/ogre/pkgconfig.patch b/vcpkg/ports/ogre/pkgconfig.patch new file mode 100644 index 0000000..ac63f21 --- /dev/null +++ b/vcpkg/ports/ogre/pkgconfig.patch @@ -0,0 +1,30 @@ +diff --git a/CMake/InstallResources.cmake b/CMake/InstallResources.cmake +index cc8b28b..1d68c09 100644 +--- a/CMake/InstallResources.cmake ++++ b/CMake/InstallResources.cmake +@@ -299,6 +299,13 @@ if (UNIX OR MINGW) + else() + set(OGRE_ADDITIONAL_LIBS "${OGRE_ADDITIONAL_LIBS} ${FreeImage_LIBRARY_REL}") + endif() ++ set(PC_REQUIRES_STATIC "") ++ if(OGRE_BUILD_COMPONENT_OVERLAY) ++ string(APPEND PC_REQUIRES_STATIC " freetype2") ++ endif() ++ if(X11_X11_LIB) ++ string(APPEND PC_REQUIRES_STATIC " x11 xt xaw7 gl") ++ endif() + configure_file(${OGRE_TEMPLATES_DIR}/OGREStatic.pc.in ${PROJECT_BINARY_DIR}/pkgconfig/OGRE.pc @ONLY) + else () + configure_file(${OGRE_TEMPLATES_DIR}/OGRE.pc.in ${PROJECT_BINARY_DIR}/pkgconfig/OGRE.pc @ONLY) +diff --git a/CMake/Templates/OGREStatic.pc.in b/CMake/Templates/OGREStatic.pc.in +index ff3c7c8..b3024c1 100644 +--- a/CMake/Templates/OGREStatic.pc.in ++++ b/CMake/Templates/OGREStatic.pc.in +@@ -8,6 +8,6 @@ Name: OGRE (static lib) + Description: Object-Oriented Graphics Rendering Engine + Version: @OGRE_VERSION@ + URL: http://www.ogre3d.org +-Requires: freetype2, zziplib, gl, x11, xt, xaw7, wayland ++Requires: @PC_REQUIRES_STATIC@ + Libs: -L${libdir} -L${plugindir} -lOgreMain@OGRE_LIB_SUFFIX@ @OGRE_ADDITIONAL_LIBS@ + Cflags: -I${includedir} -I${includedir}/OGRE @OGRE_CFLAGS@ diff --git a/vcpkg/ports/ogre/portfile.cmake b/vcpkg/ports/ogre/portfile.cmake new file mode 100644 index 0000000..41830bd --- /dev/null +++ b/vcpkg/ports/ogre/portfile.cmake @@ -0,0 +1,176 @@ +if (EXISTS "${CURRENT_INSTALLED_DIR}/Media/HLMS/Blendfunctions_piece_fs.glslt") + message(FATAL_ERROR "FATAL ERROR: ogre-next and ogre are incompatible.") +endif() + +if(NOT VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_OSX) + message("${PORT} currently requires the following library from the system package manager:\n Xaw\n\nIt can be installed on Ubuntu systems via apt-get install libxaw7-dev") +endif() + +if(VCPKG_TARGET_IS_ANDROID OR VCPKG_TARGET_IS_IOS OR VCPKG_TARGET_IS_EMSCRIPTEN) + vcpkg_check_linkage(ONLY_STATIC_LIBRARY) +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO OGRECave/ogre + REF "v${VERSION}" + SHA512 637dfa427c2094688fda850a46746734dafb29eaee4d28c7f294db9ccfc2b53eb05f4d34460926807658db3c8cb614b7669d3fb190e7c8a9ee9bd1d68adf0a64 + HEAD_REF master + PATCHES + fix-dependencies.patch + cfg-rel-paths.patch + swig-python-polyfill.patch + pkgconfig.patch + same-install-rules-all-platforms.patch + cmake4.patch +) + +file(REMOVE "${SOURCE_PATH}/CMake/Packages/FindOpenEXR.cmake") + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" OGRE_STATIC) +string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" OGRE_CONFIG_STATIC_LINK_CRT) + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + assimp OGRE_BUILD_PLUGIN_ASSIMP + assimp CMAKE_REQUIRE_FIND_PACKAGE_assimp + bullet OGRE_BUILD_COMPONENT_BULLET + bullet CMAKE_REQUIRE_FIND_PACKAGE_Bullet + d3d9 OGRE_BUILD_RENDERSYSTEM_D3D9 + freeimage OGRE_BUILD_PLUGIN_FREEIMAGE + freeimage CMAKE_REQUIRE_FIND_PACKAGE_FreeImage + java OGRE_BUILD_COMPONENT_JAVA + openexr OGRE_BUILD_PLUGIN_EXRCODEC + openexr CMAKE_REQUIRE_FIND_PACKAGE_OpenEXR + python OGRE_BUILD_COMPONENT_PYTHON + python CMAKE_REQUIRE_FIND_PACKAGE_Python3 + csharp OGRE_BUILD_COMPONENT_CSHARP + overlay OGRE_BUILD_COMPONENT_OVERLAY + zip OGRE_CONFIG_ENABLE_ZIP + strict OGRE_RESOURCEMANAGER_STRICT + tools OGRE_BUILD_TOOLS + tools OGRE_INSTALL_TOOLS + INVERTED_FEATURES + assimp CMAKE_DISABLE_FIND_PACKAGE_assimp + bullet CMAKE_DISABLE_FIND_PACKAGE_Bullet + python CMAKE_DISABLE_FIND_PACKAGE_Python3 +) + +if("java" IN_LIST FEATURES OR "python" IN_LIST FEATURES OR "csharp" IN_LIST FEATURES) + list(APPEND FEATURE_OPTIONS "-DCMAKE_REQUIRE_FIND_PACKAGE_SWIG=ON") + vcpkg_find_acquire_program(SWIG) + vcpkg_list(APPEND FEATURE_OPTIONS "-DSWIG_EXECUTABLE=${SWIG}") +endif() + +# OGRE_RESOURCEMANAGER_STRICT need to be 0 for OFF and 1 for ON, because it is used 'as is' in sources +string(REPLACE "OGRE_RESOURCEMANAGER_STRICT=ON" "OGRE_RESOURCEMANAGER_STRICT=1" FEATURE_OPTIONS "${FEATURE_OPTIONS}") +string(REPLACE "OGRE_RESOURCEMANAGER_STRICT=OFF" "OGRE_RESOURCEMANAGER_STRICT=0" FEATURE_OPTIONS "${FEATURE_OPTIONS}") + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + ${FEATURE_OPTIONS} + -DOGRE_CFG_INSTALL_PATH=etc/${PORT} + -DOGRE_CMAKE_DIR=share/${PORT} + -DOGRE_MEDIA_PATH=share/${PORT}/Media + -DOGRE_PLUGINS_PATH=plugins/${PORT} + -DOGRE_BUILD_DEPENDENCIES=OFF + -DOGRE_BUILD_LIBS_AS_FRAMEWORKS=OFF + -DOGRE_BUILD_SAMPLES=OFF + -DOGRE_BUILD_TESTS=OFF + -DOGRE_BUILD_MSVC_MP=ON + -DOGRE_BUILD_MSVC_ZM=ON + -DOGRE_COPY_DEPENDENCIES=OFF + -DOGRE_ENABLE_PRECOMPILED_HEADERS=OFF + -DOGRE_INSTALL_DEPENDENCIES=OFF + -DOGRE_INSTALL_DOCS=OFF + -DOGRE_INSTALL_PDB=OFF + -DOGRE_INSTALL_SAMPLES=OFF + -DOGRE_INSTALL_VSPROPS=OFF + -DOGRE_STATIC=${OGRE_STATIC} + -DOGRE_CONFIG_STATIC_LINK_CRT=${OGRE_CONFIG_STATIC_LINK_CRT} + -DOGRE_CONFIG_THREAD_PROVIDER=std + -DOGRE_BUILD_RENDERSYSTEM_D3D11=ON + -DOGRE_BUILD_RENDERSYSTEM_GL=ON + -DOGRE_BUILD_RENDERSYSTEM_GL3PLUS=ON + -DOGRE_BUILD_RENDERSYSTEM_GLES=OFF + -DOGRE_BUILD_RENDERSYSTEM_GLES2=OFF + -DCMAKE_REQUIRE_FIND_PACKAGE_FREETYPE=ON + -DCMAKE_REQUIRE_FIND_PACKAGE_pugixml=ON + -DCMAKE_REQUIRE_FIND_PACKAGE_ZLIB=ON + -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON + -DCMAKE_DISABLE_FIND_PACKAGE_QT=ON + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5=ON + -DCMAKE_DISABLE_FIND_PACKAGE_Qt6=ON + OPTIONS_DEBUG + -DOGRE_BUILD_TOOLS=OFF + -DOGRE_INSTALL_TOOLS=OFF + MAYBE_UNUSED_VARIABLES + CMAKE_DISABLE_FIND_PACKAGE_Qt5 + CMAKE_DISABLE_FIND_PACKAGE_Qt6 + CMAKE_REQUIRE_FIND_PACKAGE_OpenEXR + OGRE_COPY_DEPENDENCIES + OGRE_BUILD_MSVC_MP + OGRE_BUILD_MSVC_ZM + OGRE_BUILD_RENDERSYSTEM_GLES + OGRE_INSTALL_DEPENDENCIES + OGRE_INSTALL_VSPROPS +) + +vcpkg_cmake_install() +vcpkg_copy_pdbs() + +vcpkg_cmake_config_fixup() +vcpkg_fixup_pkgconfig() + + +if(NOT VCPKG_BUILD_TYPE) + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/etc/${PORT}/resources.cfg" "=../../share" "=../../../share") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/etc/${PORT}/resources.cfg" "[Tests]\nFileSystem=${CURRENT_PACKAGES_DIR}/debug/Tests/Media" "" IGNORE_UNCHANGED) + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/OgreTargets-debug.cmake" "${_IMPORT_PREFIX}/plugins" "${_IMPORT_PREFIX}/debug/plugins" IGNORE_UNCHANGED) +endif() +vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/etc/${PORT}/resources.cfg" "[Tests]\nFileSystem=${CURRENT_PACKAGES_DIR}/Tests/Media" "" IGNORE_UNCHANGED) + +file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/etc/ogre/samples.cfg" + "${CURRENT_PACKAGES_DIR}/debug/etc/ogre/samples.cfg" + "${CURRENT_PACKAGES_DIR}/debug/include" + "${CURRENT_PACKAGES_DIR}/debug/share" +) + +set(tools OgreMeshUpgrader OgreXMLConverter VRMLConverter) +if(OGRE_BUILD_PLUGIN_ASSIMP) + list(APPEND tools OgreAssimpConverter) +endif() +if(OGRE_BUILD_TOOLS) + vcpkg_copy_tools(TOOL_NAMES ${tools} AUTO_CLEAN) +endif() + +#Remove OgreMain*.lib from lib/ folder, because autolink would complain, since it defines a main symbol +#manual-link subfolder is here to the rescue! +if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) + file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/lib/manual-link") + if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + file(RENAME "${CURRENT_PACKAGES_DIR}/lib/OgreMain.lib" "${CURRENT_PACKAGES_DIR}/lib/manual-link/OgreMain.lib") + else() + file(RENAME "${CURRENT_PACKAGES_DIR}/lib/OgreMainStatic.lib" "${CURRENT_PACKAGES_DIR}/lib/manual-link/OgreMainStatic.lib") + endif() + if(NOT VCPKG_BUILD_TYPE) + file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib/manual-link") + if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/OgreMain_d.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/OgreMain_d.lib") + else() + file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/OgreMainStatic_d.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/OgreMainStatic_d.lib") + endif() + endif() + + file(GLOB SHARE_FILES "${CURRENT_PACKAGES_DIR}/share/ogre/*.cmake") + foreach(SHARE_FILE ${SHARE_FILES}) + file(READ "${SHARE_FILE}" _contents) + string(REPLACE "lib/OgreMain" "lib/manual-link/OgreMain" _contents "${_contents}") + file(WRITE "${SHARE_FILE}" "${_contents}") + endforeach() +endif() + +# Handle copyright +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") diff --git a/vcpkg/ports/ogre/same-install-rules-all-platforms.patch b/vcpkg/ports/ogre/same-install-rules-all-platforms.patch new file mode 100644 index 0000000..06f72ba --- /dev/null +++ b/vcpkg/ports/ogre/same-install-rules-all-platforms.patch @@ -0,0 +1,14 @@ +diff --git a/CMake/Utils/OgreConfigTargets.cmake b/CMake/Utils/OgreConfigTargets.cmake +index c4e6de8..e92da59 100644 +--- a/CMake/Utils/OgreConfigTargets.cmake ++++ b/CMake/Utils/OgreConfigTargets.cmake +@@ -56,9 +56,6 @@ elseif (UNIX) + set(OGRE_LIB_RELEASE_PATH "") + set(OGRE_LIB_RELWDBG_PATH "") + set(OGRE_LIB_DEBUG_PATH "") +- if(APPLE AND NOT APPLE_IOS) +- set(OGRE_RELEASE_PATH "/${PLATFORM_NAME}") +- endif() + if(APPLE AND APPLE_IOS) + set(OGRE_LIB_RELEASE_PATH "/Release") + endif(APPLE AND APPLE_IOS) diff --git a/vcpkg/ports/ogre/swig-python-polyfill.patch b/vcpkg/ports/ogre/swig-python-polyfill.patch new file mode 100644 index 0000000..f8e2b42 --- /dev/null +++ b/vcpkg/ports/ogre/swig-python-polyfill.patch @@ -0,0 +1,19 @@ +diff --git a/Components/Python/CMakeLists.txt b/Components/Python/CMakeLists.txt +index b6062c6..df955e3 100644 +--- a/Components/Python/CMakeLists.txt ++++ b/Components/Python/CMakeLists.txt +@@ -22,7 +22,14 @@ if(OGRE_BUILD_COMPONENT_OVERLAY_IMGUI) + list(APPEND CMAKE_SWIG_FLAGS -DHAVE_IMGUI -DIMGUI_DISABLE_OBSOLETE_FUNCTIONS) + endif() + ++# cf. https://github.com/swig/swig/pull/1587 ++file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/pyobject_gc_polyfill.h" CONTENT [[ ++#define _PyObject_GC_UNTRACK(x) PyObject_GC_UnTrack(x) ++]]) + macro(ogre_python_module target) ++ if(SWIG_FOUND AND SWIG_VERSION VERSION_LESS "4.0.1" AND Python3_VERSION VERSION_GREATER_EQUAL "3.8") ++ target_precompile_headers(${SWIG_MODULE_${target}_REAL_NAME} PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/pyobject_gc_polyfill.h") ++ endif() + set_target_properties(${target} PROPERTIES DEBUG_POSTFIX "") + install(TARGETS ${target} LIBRARY DESTINATION ${PYTHON_SITE_PACKAGES}) + install(FILES ${PROJECT_BINARY_DIR}/Components/Python/${target}.py DESTINATION ${PYTHON_SITE_PACKAGES}) diff --git a/vcpkg/ports/ogre/vcpkg.json b/vcpkg/ports/ogre/vcpkg.json new file mode 100644 index 0000000..69badf4 --- /dev/null +++ b/vcpkg/ports/ogre/vcpkg.json @@ -0,0 +1,117 @@ +{ + "name": "ogre", + "version": "14.3.2", + "port-version": 1, + "description": "3D Object-Oriented Graphics Rendering Engine", + "homepage": "https://github.com/OGRECave/ogre", + "license": "MIT", + "supports": "!uwp", + "dependencies": [ + { + "name": "freetype", + "default-features": false + }, + "pugixml", + { + "name": "sdl2", + "platform": "!android" + }, + "stb", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + }, + "zlib" + ], + "default-features": [ + "assimp", + "freeimage", + "overlay", + "zip" + ], + "features": { + "assimp": { + "description": "Build with assimp support", + "dependencies": [ + "assimp" + ] + }, + "bullet": { + "description": "Build with bullet physics support", + "dependencies": [ + "bullet3" + ] + }, + "csharp": { + "description": "Build csharp bindings", + "supports": "!static & !android & !ios & !emscripten" + }, + "d3d9": { + "description": "Build Direct3D9 RenderSystem", + "supports": "windows" + }, + "freeimage": { + "description": "Build with FreeImage support (no effect for Emscripten)", + "dependencies": [ + { + "name": "freeimage", + "platform": "!emscripten" + } + ] + }, + "java": { + "description": "Build Java (JNI) bindings", + "supports": "!static & !android & !ios & !emscripten" + }, + "openexr": { + "description": "Build with OpenEXR support", + "dependencies": [ + "openexr" + ] + }, + "overlay": { + "description": "Build overlay component", + "dependencies": [ + { + "name": "imgui", + "features": [ + "freetype" + ] + } + ] + }, + "python": { + "description": "Build Python bindings", + "supports": "!static & !android & !ios & !emscripten", + "dependencies": [ + "python3" + ] + }, + "strict": { + "description": "Force Ogre resource manager to be strict with group names and resource names" + }, + "tools": { + "description": "Build tools", + "supports": "!android & !emscripten" + }, + "zip": { + "description": "Build ZIP archive support" + }, + "zziplib": { + "description": "Obsolete, use zip feature instead", + "dependencies": [ + { + "name": "ogre", + "default-features": false, + "features": [ + "zip" + ] + } + ] + } + } +} |