aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/ogre-next
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/ogre-next
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/ogre-next')
-rw-r--r--vcpkg/ports/ogre-next/avoid-name-clashes.patch15
-rw-r--r--vcpkg/ports/ogre-next/fix-dependencies.patch69
-rw-r--r--vcpkg/ports/ogre-next/portfile.cmake101
-rw-r--r--vcpkg/ports/ogre-next/toolchain_fixes.patch136
-rw-r--r--vcpkg/ports/ogre-next/vcpkg.json71
5 files changed, 392 insertions, 0 deletions
diff --git a/vcpkg/ports/ogre-next/avoid-name-clashes.patch b/vcpkg/ports/ogre-next/avoid-name-clashes.patch
new file mode 100644
index 0000000..300aa94
--- /dev/null
+++ b/vcpkg/ports/ogre-next/avoid-name-clashes.patch
@@ -0,0 +1,15 @@
+diff --git a/CMake/FeatureSummary.cmake b/CMake/OgreFeatureSummary.cmake
+similarity index 100%
+rename from CMake/FeatureSummary.cmake
+rename to CMake/OgreFeatureSummary.cmake
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 800e956..436c3d3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -678,5 +678,5 @@ include(Packaging)
+
+
+ # Show feature summary
+-include(FeatureSummary)
++include(OgreFeatureSummary)
+
diff --git a/vcpkg/ports/ogre-next/fix-dependencies.patch b/vcpkg/ports/ogre-next/fix-dependencies.patch
new file mode 100644
index 0000000..df65fe4
--- /dev/null
+++ b/vcpkg/ports/ogre-next/fix-dependencies.patch
@@ -0,0 +1,69 @@
+diff --git a/CMake/CMakeLists.txt b/CMake/CMakeLists.txt
+index cdb097a..967d33b 100644
+--- a/CMake/CMakeLists.txt
++++ b/CMake/CMakeLists.txt
+@@ -21,9 +21,7 @@ endif()
+ set(OGRE_CMAKE_DIR "share/ogre-next")
+
+ set(INST_FILES
+- Packages/FindRapidjson.cmake
+ Packages/FindRemotery.cmake
+- Packages/FindSDL2.cmake
+ Packages/FindOGRE.cmake
+ Utils/FindPkgMacros.cmake
+ Utils/MacroLogFeature.cmake
+@@ -45,12 +43,8 @@ endif ()
+
+ set(STATIC_INST_FILES
+ Packages/FindDirectX.cmake
+- Packages/FindFreeImage.cmake
+- Packages/FindFreetype.cmake
+ Packages/FindOpenGLES.cmake
+ Packages/FindOpenGLES2.cmake
+- Packages/FindZLIB.cmake
+- Packages/FindZZip.cmake
+ Packages/FindSoftimage.cmake
+ )
+ if (WIN32)
+diff --git a/CMake/Dependencies.cmake b/CMake/Dependencies.cmake
+index 74cb0f4..2cad26a 100644
+--- a/CMake/Dependencies.cmake
++++ b/CMake/Dependencies.cmake
+@@ -74,21 +74,24 @@ set(CMAKE_FRAMEWORK_PATH ${OGRE_DEP_SEARCH_PATH} ${CMAKE_FRAMEWORK_PATH})
+ #######################################################################
+
+ # Find zlib
+-find_package(ZLIB)
++find_package(ZLIB REQUIRED)
+ macro_log_feature(ZLIB_FOUND "zlib" "Simple data compression library" "http://www.zlib.net" FALSE "" "")
+
+ if (ZLIB_FOUND)
+ # Find zziplib
+- find_package(ZZip)
++ find_package(ZZip NAMES zziplib CONFIG REQUIRED)
++ set(ZZip_LIBRARIES zziplib::libzzip)
+ macro_log_feature(ZZip_FOUND "zziplib" "Extract data from zip archives" "http://zziplib.sourceforge.net" FALSE "" "")
+ endif ()
+
+ # Find FreeImage
+-find_package(FreeImage)
++find_package(FreeImage NAMES freeimage REQUIRED)
++set(FreeImage_LIBRARIES freeimage::FreeImage)
+ macro_log_feature(FreeImage_FOUND "freeimage" "Support for commonly used graphics image formats" "http://freeimage.sourceforge.net" FALSE "" "")
+
+ # Find FreeType
+-find_package(Freetype)
++find_package(FREETYPE NAMES freetype REQUIRED)
++set(FREETYPE_LIBRARIES freetype)
+ macro_log_feature(FREETYPE_FOUND "freetype" "Portable font engine" "http://www.freetype.org" FALSE "" "")
+
+ find_package(Vulkan)
+@@ -105,7 +108,7 @@ if (UNIX AND NOT APPLE AND NOT ANDROID AND NOT EMSCRIPTEN)
+ endif ()
+
+ # Find rapidjson
+-find_package(Rapidjson)
++find_package(Rapidjson NAMES RapidJSON CONFIG REQUIRED)
+ macro_log_feature(Rapidjson_FOUND "rapidjson" "C++ JSON parser" "https://rapidjson.org/" FALSE "" "")
+
+ find_package(RenderDoc)
diff --git a/vcpkg/ports/ogre-next/portfile.cmake b/vcpkg/ports/ogre-next/portfile.cmake
new file mode 100644
index 0000000..9da9229
--- /dev/null
+++ b/vcpkg/ports/ogre-next/portfile.cmake
@@ -0,0 +1,101 @@
+if(NOT VCPKG_TARGET_IS_IOS AND NOT VCPKG_TARGET_IS_OSX AND NOT VCPKG_TARGET_IS_WINDOWS)
+ 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()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO OGRECave/ogre-next
+ REF v${VERSION}
+ SHA512 52ed2d2a3375c0d35f0dc695b986514484ad1d47966c5c18351d3b09913123b2487b9729738c6b8b1219c1a992a8c8509a2303e097a6eb26497e152a14d48830
+ HEAD_REF master
+ PATCHES
+ toolchain_fixes.patch
+ avoid-name-clashes.patch
+ fix-dependencies.patch
+)
+file(REMOVE
+ "${SOURCE_PATH}/CMake/Packages/FindFreeImage.cmake"
+ "${SOURCE_PATH}/CMake/Packages/FindFreetype.cmake"
+ "${SOURCE_PATH}/CMake/Packages/FindRapidjson.cmake"
+ "${SOURCE_PATH}/CMake/Packages/FindVulkan.cmake"
+ "${SOURCE_PATH}/CMake/Packages/FindZLIB.cmake"
+ "${SOURCE_PATH}/CMake/Packages/FindZZip.cmake"
+)
+
+vcpkg_check_features(
+ OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ d3d11 OGRE_BUILD_RENDERSYSTEM_DirectX11
+ d3d11 CMAKE_REQUIRE_FIND_PACKAGE_DirectX11
+ gl3plus OGRE_BUILD_RENDERSYSTEM_GL3PLUS
+ gl3plus CMAKE_REQUIRE_FIND_PACKAGE_OpenGL
+ metal OGRE_BUILD_RENDERSYSTEM_METAL
+ planar-reflections OGRE_BUILD_COMPONENT_PLANAR_REFLECTIONS
+ vulkan OGRE_BUILD_RENDERSYSTEM_VULKAN
+ vulkan CMAKE_REQUIRE_FIND_PACKAGE_Vulkan
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" OGRE_STATIC)
+
+vcpkg_find_acquire_program(PKGCONFIG)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ ${FEATURE_OPTIONS}
+ -DCMAKE_CXX_STANDARD=11
+ -DCMAKE_DISABLE_FIND_PACKAGE_AMDAGS=ON
+ -DCMAKE_DISABLE_FIND_PACKAGE_CppUnit=ON
+ -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON
+ -DCMAKE_DISABLE_FIND_PACKAGE_GLSLOptimizer=ON
+ -DCMAKE_DISABLE_FIND_PACKAGE_HLSL2GLSL=ON
+ -DCMAKE_DISABLE_FIND_PACKAGE_OpenVR=ON
+ -DCMAKE_DISABLE_FIND_PACKAGE_POCO=ON
+ -DCMAKE_DISABLE_FIND_PACKAGE_Remotery=ON
+ -DCMAKE_DISABLE_FIND_PACKAGE_RenderDoc=ON
+ -DCMAKE_DISABLE_FIND_PACKAGE_SDL2=ON
+ -DCMAKE_DISABLE_FIND_PACKAGE_Softimage=ON
+ -DCMAKE_DISABLE_FIND_PACKAGE_TBB=ON
+ -DCMAKE_POLICY_DEFAULT_CMP0072=NEW # Prefer GLVND
+ -DOGRE_ARCHIVE_OUTPUT=lib
+ -DOGRE_LIBRARY_OUTPUT=lib
+ -DOGRE_BUILD_LIBS_AS_FRAMEWORKS=OFF
+ -DOGRE_BUILD_MSVC_MP=ON
+ -DOGRE_BUILD_MSVC_ZM=ON
+ -DOGRE_BUILD_RENDERSYSTEM_GLES=OFF
+ -DOGRE_BUILD_RENDERSYSTEM_GLES2=OFF
+ -DOGRE_BUILD_SAMPLES2=OFF
+ -DOGRE_BUILD_TESTS=OFF
+ -DOGRE_BUILD_TOOLS=OFF
+ -DOGRE_COPY_DEPENDENCIES=OFF
+ -DOGRE_INSTALL_DEPENDENCIES=OFF
+ -DOGRE_INSTALL_DOCS=OFF
+ -DOGRE_INSTALL_PDB=OFF
+ -DOGRE_INSTALL_SAMPLES=OFF
+ -DOGRE_INSTALL_TOOLS=OFF
+ -DOGRE_INSTALL_VSPROPS=OFF
+ -DOGRE_SKIP_BOOST_SEARCHING=ON
+ -DOGRE_STATIC=${OGRE_STATIC}
+ -DOGRE_USE_NEW_PROJECT_NAME=ON
+ "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}"
+ MAYBE_UNUSED_VARIABLES
+ CMAKE_DISABLE_FIND_PACKAGE_AMDAGS
+ CMAKE_REQUIRE_FIND_PACKAGE_DirectX11
+ OGRE_BUILD_MSVC_MP
+ OGRE_BUILD_MSVC_ZM
+ OGRE_BUILD_RENDERSYSTEM_DirectX11
+ OGRE_COPY_DEPENDENCIES
+ OGRE_INSTALL_DEPENDENCIES
+ OGRE_INSTALL_VSPROPS
+)
+vcpkg_cmake_install()
+vcpkg_copy_pdbs()
+
+if(NOT VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_MINGW)
+ vcpkg_fixup_pkgconfig()
+endif()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")
diff --git a/vcpkg/ports/ogre-next/toolchain_fixes.patch b/vcpkg/ports/ogre-next/toolchain_fixes.patch
new file mode 100644
index 0000000..6ea38a1
--- /dev/null
+++ b/vcpkg/ports/ogre-next/toolchain_fixes.patch
@@ -0,0 +1,136 @@
+diff --git a/CMake/CMakeLists.txt b/CMake/CMakeLists.txt
+index 45d5935..cdb097a 100644
+--- a/CMake/CMakeLists.txt
++++ b/CMake/CMakeLists.txt
+@@ -18,6 +18,7 @@ if(WIN32 OR APPLE)
+ else()
+ set(OGRE_CMAKE_DIR "${OGRE_LIB_DIRECTORY}/${OGRE_NEXT_PREFIX}/cmake")
+ endif()
++set(OGRE_CMAKE_DIR "share/ogre-next")
+
+ set(INST_FILES
+ Packages/FindRapidjson.cmake
+diff --git a/CMake/ConfigureBuild.cmake b/CMake/ConfigureBuild.cmake
+index 9d3b1b2..11fc345 100644
+--- a/CMake/ConfigureBuild.cmake
++++ b/CMake/ConfigureBuild.cmake
+@@ -284,6 +284,11 @@ if (UNIX)
+ # there is no pkgconfig file for freeimage, so we need to add that lib manually
+ set(OGRE_ADDITIONAL_LIBS "${OGRE_ADDITIONAL_LIBS} -lfreeimage")
+ configure_file(${OGRE_TEMPLATES_DIR}/OGREStatic.pc.in ${OGRE_BINARY_DIR}/pkgconfig/${OGRE_NEXT_PREFIX}.pc @ONLY)
++ if(NOT X11_FOUND)
++ file(READ "${OGRE_BINARY_DIR}/pkgconfig/${OGRE_NEXT_PREFIX}.pc" ogre_pc)
++ string(REPLACE ", x11, xt, xaw7, gl" "" ogre_pc "${ogre_pc}")
++ file(WRITE "${OGRE_BINARY_DIR}/pkgconfig/${OGRE_NEXT_PREFIX}.pc" "${ogre_pc}")
++ endif()
+ else ()
+ configure_file(${OGRE_TEMPLATES_DIR}/OGRE.pc.in ${OGRE_BINARY_DIR}/pkgconfig/${OGRE_NEXT_PREFIX}.pc @ONLY)
+ endif ()
+diff --git a/CMake/Utils/FindPkgMacros.cmake b/CMake/Utils/FindPkgMacros.cmake
+index 53111e0..e0f6716 100644
+--- a/CMake/Utils/FindPkgMacros.cmake
++++ b/CMake/Utils/FindPkgMacros.cmake
+@@ -81,6 +81,12 @@ endmacro (use_pkgconfig)
+ macro(make_library_set PREFIX)
+ if (${PREFIX}_FWK)
+ set(${PREFIX} ${${PREFIX}_FWK})
++ elseif (${PREFIX}_REL OR ${PREFIX}_DBG)
++ include("${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake")
++ set(${PREFIX}_RELEASE "${${PREFIX}_REL}")
++ set(${PREFIX}_DEBUG "${${PREFIX}_DBG}")
++ string(REPLACE "_LIBRARY" "" PREFIX_BASENAME "${PREFIX}")
++ select_library_configurations(${PREFIX_BASENAME})
+ elseif (${PREFIX}_REL AND ${PREFIX}_DBG)
+ set(${PREFIX} optimized ${${PREFIX}_REL} debug ${${PREFIX}_DBG})
+ elseif (${PREFIX}_REL)
+diff --git a/CMake/Utils/OgreConfigTargets.cmake b/CMake/Utils/OgreConfigTargets.cmake
+index d8e0208..1fdb63c 100644
+--- a/CMake/Utils/OgreConfigTargets.cmake
++++ b/CMake/Utils/OgreConfigTargets.cmake
+@@ -41,7 +41,7 @@ if (NOT OGRE_RUNTIME_OUTPUT)
+ set(OGRE_RUNTIME_OUTPUT ${OGRE_BINARY_DIR}/bin)
+ endif ()
+
+-if (WIN32)
++if (0)
+ set(OGRE_RELEASE_PATH "/Release")
+ set(OGRE_RELWDBG_PATH "/RelWithDebInfo")
+ set(OGRE_MINSIZE_PATH "/MinSizeRel")
+@@ -52,7 +52,7 @@ if (WIN32)
+ set(OGRE_LIB_DEBUG_PATH "/Debug")
+ set(OGRE_PLUGIN_PATH "/opt")
+ set(OGRE_SAMPLE_PATH "/opt/samples")
+-elseif (UNIX)
++elseif (1)
+ set(OGRE_RELEASE_PATH "")
+ set(OGRE_RELWDBG_PATH "")
+ set(OGRE_MINSIZE_PATH "")
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2786e35..7a92a7b 100755
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -299,7 +299,6 @@ if (OGRE_BUILD_PLATFORM_APPLE_IOS)
+ execute_process(COMMAND xcodebuild -version -sdk "${XCODE_ATTRIBUTE_SDKROOT}" Path | head -n 1 OUTPUT_VARIABLE CMAKE_OSX_SYSROOT)
+ string(REGEX REPLACE "(\r?\n)+$" "" CMAKE_OSX_SYSROOT "${CMAKE_OSX_SYSROOT}")
+ else()
+- set(CMAKE_OSX_SYSROOT iphoneos)
+ endif()
+
+ set(CMAKE_EXE_LINKER_FLAGS "-framework Foundation -framework CoreGraphics -framework QuartzCore -framework UIKit")
+@@ -364,7 +363,6 @@ elseif (APPLE AND NOT OGRE_BUILD_PLATFORM_APPLE_IOS)
+ execute_process(COMMAND xcodebuild -version -sdk "${XCODE_ATTRIBUTE_SDKROOT}" Path | head -n 1 OUTPUT_VARIABLE CMAKE_OSX_SYSROOT)
+ string(REGEX REPLACE "(\r?\n)+$" "" CMAKE_OSX_SYSROOT "${CMAKE_OSX_SYSROOT}")
+ else()
+- set(CMAKE_OSX_SYSROOT macosx)
+ endif()
+
+ set( CMAKE_XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES )
+diff --git a/OgreMain/CMakeLists.txt b/OgreMain/CMakeLists.txt
+index b698b84..75fef2c 100644
+--- a/OgreMain/CMakeLists.txt
++++ b/OgreMain/CMakeLists.txt
+@@ -439,7 +439,7 @@ if (APPLE)
+ LINK_FLAGS "-framework IOKit -framework Cocoa -framework Carbon -framework OpenGL -framework CoreVideo"
+ )
+
+- set(OGRE_OSX_BUILD_CONFIGURATION "$(PLATFORM_NAME)/$(CONFIGURATION)")
++ set(OGRE_OSX_BUILD_CONFIGURATION ".")
+
+ add_custom_command(TARGET ${OGRE_NEXT}Main POST_BUILD
+ COMMAND mkdir ARGS -p ${OGRE_BINARY_DIR}/lib/${OGRE_OSX_BUILD_CONFIGURATION}/Ogre.framework/Headers/Threading
+@@ -494,6 +494,9 @@ use_precompiled_header(${OGRE_NEXT}Main
+ )
+
+ # install ${OGRE_NEXT}Main
++if(MSVC)
++ set(OGRE_LIB_DIRECTORY lib/manual-link)
++endif()
+ ogre_config_lib(${OGRE_NEXT}Main TRUE)
+ foreach(HEADER_FILE ${HEADER_FILES})
+ string(REGEX REPLACE "((${CMAKE_CURRENT_SOURCE_DIR}|${OGRE_BINARY_DIR})/)?(include|src)/" "" RELATIVE_HEADER_FILE ${HEADER_FILE})
+diff --git a/OgreMain/include/OgrePlatform.h b/OgreMain/include/OgrePlatform.h
+index 6754c4e..6b1879d 100644
+--- a/OgreMain/include/OgrePlatform.h
++++ b/OgreMain/include/OgrePlatform.h
+@@ -504,7 +504,7 @@ THE SOFTWARE.
+
+ // Define whether or not Ogre compiled with NEON support.
+ #if OGRE_DOUBLE_PRECISION == 0 && OGRE_CPU == OGRE_CPU_ARM && \
+- ( defined(__aarch64__) || defined(__ARM_NEON__) || defined(_WIN32_WINNT_WIN8) && _WIN32_WINNT >= _WIN32_WINNT_WIN8 )
++ ( defined(__aarch64__) || defined(__ARM_NEON__) || defined(_M_ARM64) || defined(_WIN32_WINNT_WIN8) && _WIN32_WINNT >= _WIN32_WINNT_WIN8 )
+ #define __OGRE_HAVE_NEON 1
+ #endif
+ #endif
+diff --git a/OgreMain/include/OgreString.h b/OgreMain/include/OgreString.h
+index 8693c57..b4179ea 100644
+--- a/OgreMain/include/OgreString.h
++++ b/OgreMain/include/OgreString.h
+@@ -222,7 +222,7 @@ namespace Ogre {
+ # endif
+ #elif OGRE_COMPILER == OGRE_COMPILER_MSVC && OGRE_COMP_VER >= 1600 && OGRE_COMP_VER < 1910 && !defined(STLPORT) // VC++ 10.0
+ typedef ::std::tr1::hash< _StringBase > _StringHash;
+-#elif !defined( _STLP_HASH_FUN_H )
++#elif 0
+ typedef stdext::hash_compare< _StringBase, std::less< _StringBase > > _StringHash;
+ #else
+ typedef std::hash< _StringBase > _StringHash;
diff --git a/vcpkg/ports/ogre-next/vcpkg.json b/vcpkg/ports/ogre-next/vcpkg.json
new file mode 100644
index 0000000..5352872
--- /dev/null
+++ b/vcpkg/ports/ogre-next/vcpkg.json
@@ -0,0 +1,71 @@
+{
+ "name": "ogre-next",
+ "version": "2.3.3",
+ "port-version": 3,
+ "description": "Ogre Next - scene-oriented, flexible 3D engine written in C++",
+ "homepage": "https://github.com/OGRECave/ogre-next",
+ "license": "MIT",
+ "supports": "!emscripten & !uwp & !xbox",
+ "dependencies": [
+ "freeimage",
+ {
+ "name": "freetype",
+ "default-features": false
+ },
+ "rapidjson",
+ "tinyxml",
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ },
+ "zlib",
+ "zziplib"
+ ],
+ "default-features": [
+ {
+ "name": "d3d11",
+ "platform": "windows"
+ },
+ {
+ "name": "gl3plus",
+ "platform": "!android & !ios & !osx & !windows"
+ },
+ {
+ "name": "metal",
+ "platform": "ios | osx"
+ },
+ {
+ "name": "vulkan",
+ "platform": "android"
+ }
+ ],
+ "features": {
+ "d3d11": {
+ "description": "Direct3D 11 render system",
+ "supports": "windows"
+ },
+ "gl3plus": {
+ "description": "OpenGL 3+ render system",
+ "supports": "!android & !(arm & windows)"
+ },
+ "metal": {
+ "description": "Metal render system",
+ "supports": "osx | ios"
+ },
+ "planar-reflections": {
+ "description": "Component to use planar reflections, can be used by both HlmsPbs and HlmsUnlit"
+ },
+ "vulkan": {
+ "description": "Vulkan render system",
+ "supports": "!osx",
+ "dependencies": [
+ "glslang",
+ "vulkan"
+ ]
+ }
+ }
+}