Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
169 changes: 169 additions & 0 deletions ports/ogre/fix-dependencies.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
diff --git a/CMake/ConfigureBuild.cmake b/CMake/ConfigureBuild.cmake
index 73606c9..540ac6e 100644
--- a/CMake/ConfigureBuild.cmake
+++ b/CMake/ConfigureBuild.cmake
@@ -176,10 +176,14 @@ if (UNIX)
endif ()
if (OGRE_STATIC)
if (OGRE_CONFIG_THREADS)
- set(OGRE_ADDITIONAL_LIBS "${OGRE_ADDITIONAL_LIBS} -lboost-thread-mt")
endif ()
# there is no pkgconfig file for freeimage, so we need to add that lib manually
- set(OGRE_ADDITIONAL_LIBS "${OGRE_ADDITIONAL_LIBS} -lfreeimage")
+ if(NOT OGRE_BUILD_PLUGIN_FREEIMAGE)
+ elseif(CMAKE_BUILD_TYPE STREQUAL "Debug")
+ set(OGRE_ADDITIONAL_LIBS "${OGRE_ADDITIONAL_LIBS} -lFreeImaged")
+ else()
+ set(OGRE_ADDITIONAL_LIBS "${OGRE_ADDITIONAL_LIBS} -lFreeImage")
+ 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/Dependencies.cmake b/CMake/Dependencies.cmake
index 2ae0b66..1954a3f 100644
--- a/CMake/Dependencies.cmake
+++ b/CMake/Dependencies.cmake
@@ -233,16 +233,19 @@ macro_log_feature(ZLIB_FOUND "zlib" "Simple data compression library" "http://ww

if (ZLIB_FOUND)
# Find zziplib
- find_package(ZZip)
+ find_package(ZZip NAMES unofficial-zziplib)
+ set(ZZip_LIBRARIES unofficial::zziplib::libzzip)
+ find_path(ZZip_INCLUDE_DIRS NAMES zzip/zzip.h)
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)
+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)
macro_log_feature(FREETYPE_FOUND "freetype" "Portable font engine" "http://www.freetype.org" FALSE "" "")

# Find X11
@@ -296,13 +298,16 @@ if (NOT (APPLE_IOS OR WINDOWS_STORE OR WINDOWS_PHONE OR ANDROID OR EMSCRIPTEN))
endif ()

# OpenEXR
-find_package(OpenEXR)
+find_package(OPENEXR NAMES OpenEXR)
+set(OPENEXR_LIBRARIES OpenEXR::IlmImf)
macro_log_feature(OPENEXR_FOUND "OpenEXR" "Load High dynamic range images" "http://www.openexr.com/" FALSE "" "")

# 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/" FALSE "" "")

# SWIG
@@ -310,14 +315,16 @@ find_package(SWIG 3.0.8 QUIET)
macro_log_feature(SWIG_FOUND "SWIG" "Language bindings (Python, Java, C#) for OGRE" "http://www.swig.org/" FALSE "" "")

# 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/" FALSE "" "")

# Assimp
-find_package(ASSIMP QUIET)
+find_package(ASSIMP NAMES assimp)
macro_log_feature(ASSIMP_FOUND "Assimp" "Needed for the AssimpLoader Plugin" "https://www.assimp.org/" FALSE "" "")

if(ASSIMP_FOUND)
+ add_library(fix::assimp ALIAS assimp::assimp)
+elseif(0)
# workaround horribly broken assimp cmake
add_library(fix::assimp INTERFACE IMPORTED)
set_target_properties(fix::assimp PROPERTIES
@@ -336,7 +343,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/" FALSE "" "")
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 392c89c..266ba3a 100644
--- a/CMake/Templates/OGREConfig.cmake.in
+++ b/CMake/Templates/OGREConfig.cmake.in
@@ -32,6 +32,29 @@ get_filename_component(OGRE_LIBRARY_DIRS "${OGRE_PREFIX_DIR}/lib" ABSOLUTE)
get_filename_component(OGRE_INCLUDE_DIRS "${OGRE_PREFIX_DIR}/include/OGRE" ABSOLUTE)
set(OGRE_LIBRARIES)

+include(CMakeFindDependencyMacro)
+
+find_dependency(pugixml CONFIG)
+find_dependency(SDL2 CONFIG)
+find_dependency(ZLIB)
+find_dependency(freetype CONFIG)
+
+if(@OGRE_CONFIG_ENABLE_ZIP@)
+ find_dependency(unofficial-zziplib CONFIG)
+endif()
+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(OpenEXR CONFIG)
+endif()
+
cmake_policy(PUSH)
cmake_policy(SET CMP0012 NEW)

diff --git a/Components/Bites/CMakeLists.txt b/Components/Bites/CMakeLists.txt
index 5d58a8d..fe41e4a 100644
--- a/Components/Bites/CMakeLists.txt
+++ b/Components/Bites/CMakeLists.txt
@@ -152,6 +152,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/Overlay/CMakeLists.txt b/Components/Overlay/CMakeLists.txt
index df8f32a..1246aa4 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.77" CACHE PATH "")
if(NOT EXISTS ${IMGUI_DIR})
message(STATUS "Dowloading imgui")
@@ -48,6 +50,8 @@ target_include_directories(OgreOverlay PUBLIC
PRIVATE ${FREETYPE_INCLUDE_DIRS})

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>")
123 changes: 0 additions & 123 deletions ports/ogre/fix-dependency.patch

This file was deleted.

27 changes: 0 additions & 27 deletions ports/ogre/fix-pkgconfig.patch

This file was deleted.

48 changes: 48 additions & 0 deletions ports/ogre/install-layout.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
diff --git a/CMake/CMakeLists.txt b/CMake/CMakeLists.txt
index a7a3796..a44e3f0 100755
--- 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/cmake")
endif()
+set(OGRE_CMAKE_DIR "share/ogre")

set(INST_FILES Utils/FindPkgMacros.cmake)

diff --git a/CMake/InstallResources.cmake b/CMake/InstallResources.cmake
index 92b7115..b24bdf0 100644
--- a/CMake/InstallResources.cmake
+++ b/CMake/InstallResources.cmake
@@ -39,6 +39,9 @@ elseif (UNIX)
set(OGRE_SAMPLES_DIR_REL "${CMAKE_INSTALL_PREFIX}/${OGRE_LIB_DIRECTORY}/OGRE/Samples")
set(OGRE_CFG_INSTALL_PATH "share/OGRE")
endif ()
+set(OGRE_MEDIA_PATH "share/ogre/Media")
+set(OGRE_CFG_INSTALL_PATH "etc/ogre")
+set(OGRE_PLUGIN_DIR_ORIG "${OGRE_PLUGIN_DIR_REL}")

# generate OgreConfigPaths.h
configure_file(${OGRE_TEMPLATES_DIR}/OgreConfigPaths.h.in ${PROJECT_BINARY_DIR}/include/OgreConfigPaths.h @ONLY)
@@ -158,10 +161,10 @@ endif ()
if (WIN32)
set(OGRE_PLUGIN_DIR_REL ".")
set(OGRE_SAMPLES_DIR_REL ".")
-elseif (APPLE)
+elseif (APPLE AND OGRE_BUILD_LIBS_AS_FRAMEWORKS)
set(OGRE_PLUGIN_DIR_REL "Contents/Frameworks/")
set(OGRE_SAMPLES_DIR_REL "Contents/Plugins/")
-elseif (UNIX)
+else ()
set(OGRE_PLUGIN_DIR_REL "${PROJECT_BINARY_DIR}/lib")
set(OGRE_SAMPLES_DIR_REL "${PROJECT_BINARY_DIR}/lib")
endif ()
@@ -214,6 +217,8 @@ if(WIN32)
else()
set(OGRE_PLUGIN_DIR_CMAKE "lib/OGRE")
endif()
+set(OGRE_CMAKE_DIR "share/ogre")
+cmake_path(RELATIVE_PATH OGRE_PLUGIN_DIR_ORIG BASE_DIRECTORY "${CMAKE_INSTALL_PREFIX}" OUTPUT_VARIABLE OGRE_PLUGIN_DIR_CMAKE)
configure_package_config_file(${OGRE_TEMPLATES_DIR}/OGREConfig.cmake.in ${PROJECT_BINARY_DIR}/cmake/OGREConfig.cmake
INSTALL_DESTINATION ${OGRE_CMAKE_DIR}
PATH_VARS CMAKE_INSTALL_PREFIX)
12 changes: 12 additions & 0 deletions ports/ogre/osx-sysroot.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d5d1f8d..6bec5ee 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -270,6 +270,7 @@ elseif(EMSCRIPTEN)
set(OGRE_CONFIG_THREADS "0" CACHE STRING "Threading is unstable on Emscripten" FORCE)
elseif (APPLE AND NOT APPLE_IOS)

+elseif(0)
set(XCODE_ATTRIBUTE_SDKROOT macosx)
if(CMAKE_GENERATOR STREQUAL "Unix Makefiles")
execute_process(COMMAND xcodebuild -version -sdk "${XCODE_ATTRIBUTE_SDKROOT}" Path | head -n 1 OUTPUT_VARIABLE CMAKE_OSX_SYSROOT)
Loading