🔧 Use freeimage package from conan center

This commit is contained in:
Edgar 2022-07-16 15:16:45 +02:00
parent 9eb1df9d3a
commit 1f4802cc02
No known key found for this signature in database
GPG Key ID: 17D930BB616061A5
10 changed files with 38 additions and 83 deletions

View File

@ -1,7 +0,0 @@
sources:
"3.18.0":
url: "http://downloads.sourceforge.net/freeimage/FreeImage3180.zip"
sha256: "f41379682f9ada94ea7b34fe86bf9ee00935a3147be41b6569c9605a53e438fd"
patches:
"3.18.0":
- patch_file: "patches/3.18.0/cpp11.patch"

View File

@ -1,54 +0,0 @@
import glob
from conans import ConanFile, MSBuild, tools, AutoToolsBuildEnvironment
from conans.tools import os_info
class freeimageConan(ConanFile):
name = "freeimage"
license = "GNU"
author = "Edgar (Edgar@AnotherFoxGuy.com)"
url = "https://github.com/AnotherFoxGuy/conan-freeimage"
description = "FreeImage is an Open Source library project for developers who would like to support popular graphics image formats like PNG, BMP, JPEG, TIFF and others as needed by today's multimedia applications."
settings = "os", "compiler", "build_type", "arch"
exports_sources = "patches/**"
def source(self):
tools.get(**self.conan_data["sources"][self.version], strip_root=True)
for patch in self.conan_data["patches"][self.version]:
tools.patch(**patch)
def build(self):
if os_info.is_windows:
version = tools.Version(self.settings.compiler.version)
if version.major > "15":
for file in glob.glob("./**/*2017.vcxproj", recursive=True):
print(f"Patching winsdk in file {file}")
tools.replace_in_file(file, "10.0.16299.0", "10.0", strict=False)
if self.settings.build_type == "Debug":
_build_type = "Debug"
else:
_build_type = "Release"
msbuild = MSBuild(self)
msbuild.build(
"FreeImage.2017.sln", build_type=_build_type, platforms={"x86": "Win32"}
)
else:
autotools = AutoToolsBuildEnvironment(self)
autotools.make()
def package(self):
self.copy("*.h", dst="include", src="Dist", keep_path=False)
self.copy("*.lib", dst="lib", src="Dist", keep_path=False)
self.copy("*.dll", dst="bin", src="Dist", keep_path=False)
self.copy("*.so", dst="lib", src="Dist", keep_path=False)
self.copy("*.a", dst="lib", src="Dist", keep_path=False)
self.copy("*.lib", dst="lib", src="Source", keep_path=False)
self.copy("*.dll", dst="bin", src="Source", keep_path=False)
self.copy("*.so", dst="lib", src="Source", keep_path=False)
self.copy("*.a", dst="lib", src="Source", keep_path=False)
def package_info(self):
self.cpp_info.name = "FreeImage"
self.cpp_info.libs = tools.collect_libs(self)

View File

@ -1,11 +0,0 @@
--- Makefile.gnu
+++ Makefile.gnu
@@ -25,7 +25,7 @@
CFLAGS += $(INCLUDE)
CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
# LibJXR
-CXXFLAGS += -D__ANSI__
+CXXFLAGS += -D__ANSI__ -std=c++11
CXXFLAGS += $(INCLUDE)
ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)

View File

@ -1,3 +0,0 @@
versions:
"3.18.0":
folder: all

View File

@ -12,6 +12,6 @@ requirements:
- "zlib/[1.x]"
- "zziplib/[0.13.x]"
- "freetype/[2.x]"
- "freeimage/[3.x]@anotherfoxguy/stable"
- "freeimage/[3.x]"
- "cg-toolkit/3.1@anotherfoxguy/stable"
- "pugixml/[1.x]"

View File

@ -1,3 +1,4 @@
import shutil
from conans import ConanFile, CMake, tools
from conans.tools import os_info, SystemPackageTool
@ -37,10 +38,16 @@ class OGREConan(ConanFile):
"find_package(DirectX9)",
)
tools.replace_in_file(
"CMake/Packages/FindDirectX11.cmake",
"find_path(DirectX11_INCLUDE_DIR NAMES d3d11.h HINTS \"",
"find_path(DirectX11_INCLUDE_DIR NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH NAMES d3d11.h HINTS \"",
"CMake/Dependencies.cmake",
"find_package(FreeImage)",
"find_package(ConanFreeImage)",
)
tools.replace_in_file(
"CMake/Packages/FindDirectX11.cmake",
'find_path(DirectX11_INCLUDE_DIR NAMES d3d11.h HINTS "',
'find_path(DirectX11_INCLUDE_DIR NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH NAMES d3d11.h HINTS "',
)
shutil.copyfile("patches/FindFreeImage.cmake", "CMake/Packages/FindConanFreeImage.cmake")
for patch in self.conan_data["patches"][self.version]:
tools.patch(**patch)
@ -53,6 +60,7 @@ class OGREConan(ConanFile):
cmake.definitions["OGRE_BUILD_COMPONENT_PYTHON"] = "OFF"
cmake.definitions["OGRE_BUILD_DEPENDENCIES"] = "OFF"
cmake.definitions["OGRE_BUILD_PLUGIN_STBI"] = "ON"
cmake.definitions["OGRE_BUILD_PLUGIN_EXRCODEC"] = "OFF"
cmake.definitions["OGRE_BUILD_RENDERSYSTEM_D3D11"] = "ON"
cmake.definitions["OGRE_BUILD_RENDERSYSTEM_D3D9"] = "ON"
cmake.definitions["OGRE_BUILD_RENDERSYSTEM_GL3PLUS"] = "OFF"

View File

@ -0,0 +1,5 @@
include(Findfreeimage)
set(FreeImage_FOUND "${freeimage_FOUND}" CACHE BOOL "Conan patch for freeimage" FORCE)
set(FreeImage_LIBRARIES "${freeimage_LIBRARIES}" CACHE STRING "Conan patch for freeimage" FORCE)
set(FreeImage_INCLUDE_DIR "${freeimage_INCLUDE_DIR}" CACHE STRING "Conan patch for freeimage" FORCE)

View File

@ -46,6 +46,6 @@ requirements:
- "zlib/[1.x]"
- "zziplib/[0.13.x]"
- "freetype/[2.x]"
- "freeimage/[3.x]@anotherfoxguy/stable"
- "freeimage/[3.x]"
- "cg-toolkit/3.1@anotherfoxguy/stable"
- "pugixml/[1.x]"

View File

@ -1,3 +1,4 @@
import shutil
from conans import ConanFile, CMake, tools
from conans.tools import os_info, SystemPackageTool
@ -36,6 +37,7 @@ class OGREConan(ConanFile):
self._cmake.definitions["OGRE_BUILD_DEPENDENCIES"] = "OFF"
self._cmake.definitions["OGRE_BUILD_PLUGIN_DOT_SCENE"] = "OFF"
self._cmake.definitions["OGRE_BUILD_PLUGIN_STBI"] = "ON"
self._cmake.definitions["OGRE_BUILD_PLUGIN_EXRCODEC"] = "OFF"
self._cmake.definitions["OGRE_BUILD_RENDERSYSTEM_D3D11"] = "ON"
self._cmake.definitions["OGRE_BUILD_RENDERSYSTEM_D3D9"] = "ON"
self._cmake.definitions["OGRE_BUILD_RENDERSYSTEM_GL3PLUS"] = "OFF"
@ -43,7 +45,9 @@ class OGREConan(ConanFile):
self._cmake.definitions["OGRE_COPY_DEPENDENCIES"] = "OFF"
self._cmake.definitions["OGRE_INSTALL_DEPENDENCIES"] = "OFF"
self._cmake.definitions["OGRE_INSTALL_SAMPLES"] = "OFF"
self._cmake.definitions["OGRE_NODELESS_POSITIONING"] = self.options.nodeless_positioning
self._cmake.definitions[
"OGRE_NODELESS_POSITIONING"
] = self.options.nodeless_positioning
if self.options.resourcemanager_strict == "off":
self._cmake.definitions["OGRE_RESOURCEMANAGER_STRICT"] = 0
@ -85,10 +89,18 @@ class OGREConan(ConanFile):
"find_package(DirectX)",
"find_package(DirectX9)",
)
tools.replace_in_file(
"CMake/Dependencies.cmake",
"find_package(FreeImage)",
"find_package(ConanFreeImage)",
)
tools.replace_in_file(
"CMake/Packages/FindDirectX11.cmake",
"find_path(DirectX11_INCLUDE_DIR NAMES d3d11.h HINTS \"",
"find_path(DirectX11_INCLUDE_DIR NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH NAMES d3d11.h HINTS \"",
'find_path(DirectX11_INCLUDE_DIR NAMES d3d11.h HINTS "',
'find_path(DirectX11_INCLUDE_DIR NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH NAMES d3d11.h HINTS "',
)
shutil.copyfile(
"patches/FindFreeImage.cmake", "CMake/Packages/FindConanFreeImage.cmake"
)
for patch in self.conan_data["patches"][self.version]:
tools.patch(**patch)

View File

@ -0,0 +1,5 @@
include(Findfreeimage)
set(FreeImage_FOUND "${freeimage_FOUND}" CACHE BOOL "Conan patch for freeimage" FORCE)
set(FreeImage_LIBRARIES "${freeimage_LIBRARIES}" CACHE STRING "Conan patch for freeimage" FORCE)
set(FreeImage_INCLUDE_DIR "${freeimage_INCLUDE_DIR}" CACHE STRING "Conan patch for freeimage" FORCE)