aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/assimp
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/assimp')
-rw-r--r--vcpkg/ports/assimp/build_fixes.patch493
-rw-r--r--vcpkg/ports/assimp/portfile.cmake90
-rw-r--r--vcpkg/ports/assimp/vcpkg.json28
3 files changed, 611 insertions, 0 deletions
diff --git a/vcpkg/ports/assimp/build_fixes.patch b/vcpkg/ports/assimp/build_fixes.patch
new file mode 100644
index 0000000..c0c4ccc
--- /dev/null
+++ b/vcpkg/ports/assimp/build_fixes.patch
@@ -0,0 +1,493 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index cd8f515..da59d84 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -343,7 +343,6 @@ ELSEIF(MSVC)
+ ENDIF()
+ # supress warning for double to float conversion if Double precision is activated
+ ADD_COMPILE_OPTIONS(/wd4244)
+- SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /D_DEBUG /Zi /Od")
+ # Allow user to disable PDBs
+ if(ASSIMP_INSTALL_PDB)
+ SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi")
+@@ -351,7 +350,7 @@ ELSEIF(MSVC)
+ elseif((GENERATOR_IS_MULTI_CONFIG) OR (CMAKE_BUILD_TYPE MATCHES Release))
+ message("-- MSVC PDB generation disabled. Release binary will not be debuggable.")
+ endif()
+- if(NOT /utf-8 IN_LIST CMAKE_CXX_FLAGS)
++ if(NOT CMAKE_CXX_FLAGS MATCHES /utf-8)
+ # Source code is encoded in UTF-8
+ ADD_COMPILE_OPTIONS(/source-charset:utf-8)
+ endif ()
+@@ -483,7 +482,7 @@ ENDIF()
+
+ set(GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated")
+
+-IF(ASSIMP_HUNTER_ENABLED)
++IF(0)
+ SET(CONFIG_INSTALL_DIR "lib/cmake/${PROJECT_NAME}")
+ SET(CMAKE_CONFIG_TEMPLATE_FILE "cmake-modules/assimp-hunter-config.cmake.in")
+ SET(NAMESPACE "${PROJECT_NAME}::")
+@@ -491,7 +490,7 @@ IF(ASSIMP_HUNTER_ENABLED)
+ SET(VERSION_CONFIG "${GENERATED_DIR}/${PROJECT_NAME}ConfigVersion.cmake")
+ SET(PROJECT_CONFIG "${GENERATED_DIR}/${PROJECT_NAME}Config.cmake")
+ ELSE()
+- SET(CONFIG_INSTALL_DIR "${ASSIMP_LIB_INSTALL_DIR}/cmake/assimp-${ASSIMP_VERSION_MAJOR}.${ASSIMP_VERSION_MINOR}")
++ set(CONFIG_INSTALL_DIR "${ASSIMP_LIB_INSTALL_DIR}/cmake/assimp")
+ SET(CMAKE_CONFIG_TEMPLATE_FILE "cmake-modules/assimp-plain-config.cmake.in")
+ string(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWERCASE)
+ SET(NAMESPACE "${PROJECT_NAME_LOWERCASE}::")
+@@ -506,7 +505,7 @@ set(INCLUDE_INSTALL_DIR "include")
+ include(CMakePackageConfigHelpers)
+
+ # Note: PROJECT_VERSION is used as a VERSION
+-write_basic_package_version_file("${VERSION_CONFIG}" COMPATIBILITY SameMajorVersion)
++write_basic_package_version_file("${VERSION_CONFIG}" COMPATIBILITY AnyNewerVersion)
+
+ configure_package_config_file(
+ ${CMAKE_CONFIG_TEMPLATE_FILE}
+@@ -535,14 +534,13 @@ ENDIF()
+
+ # Search for external dependencies, and build them from source if not found
+ # Search for zlib
+-IF(ASSIMP_HUNTER_ENABLED)
+- hunter_add_package(ZLIB)
+- find_package(ZLIB CONFIG REQUIRED)
++IF(1)
++ find_package(ZLIB REQUIRED)
+
+ add_definitions(-DASSIMP_BUILD_NO_OWN_ZLIB)
+ SET(ZLIB_FOUND TRUE)
+- SET(ZLIB_LIBRARIES ZLIB::zlib)
+- SET(ASSIMP_BUILD_MINIZIP TRUE)
++ set(ZLIB_LIBRARIES ZLIB::ZLIB)
++ set(ASSIMP_BUILD_MINIZIP OFF)
+ ELSE()
+ # If the zlib is already found outside, add an export in case assimpTargets can't find it.
+ IF( ZLIB_FOUND AND ASSIMP_INSTALL)
+@@ -586,13 +584,13 @@ ELSE()
+ INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})
+ ENDIF()
+
+-IF( NOT IOS )
++IF( 0 )
+ IF( NOT ASSIMP_BUILD_MINIZIP )
+ use_pkgconfig(UNZIP minizip)
+ ENDIF()
+ ELSE ()
+ IF( NOT BUILD_SHARED_LIBS )
+- IF( NOT ASSIMP_BUILD_MINIZIP )
++ IF( 0 )
+ USE_PKGCONFIG(UNZIP minizip)
+ ENDIF()
+ ENDIF ()
+diff --git a/cmake-modules/assimp-plain-config.cmake.in b/cmake-modules/assimp-plain-config.cmake.in
+index 6551dcb..718ac04 100644
+--- a/cmake-modules/assimp-plain-config.cmake.in
++++ b/cmake-modules/assimp-plain-config.cmake.in
+@@ -1,4 +1,17 @@
+ @PACKAGE_INIT@
++include(CMakeFindDependencyMacro)
++
++if(NOT "@BUILD_SHARED_LIBS@")
++ find_dependency(zip CONFIG)
++ find_dependency(unofficial-minizip CONFIG)
++ find_dependency(pugixml CONFIG)
++ find_dependency(poly2tri CONFIG)
++ find_dependency(polyclipping CONFIG)
++ find_dependency(RapidJSON CONFIG)
++ find_dependency(Stb MODULE)
++ find_dependency(utf8cpp CONFIG)
++ find_dependency(ZLIB)
++endif()
+
+ include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake")
+
+diff --git a/code/AssetLib/3MF/D3MFExporter.cpp b/code/AssetLib/3MF/D3MFExporter.cpp
+index 64b94e5..5951279 100644
+--- a/code/AssetLib/3MF/D3MFExporter.cpp
++++ b/code/AssetLib/3MF/D3MFExporter.cpp
+@@ -57,7 +57,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ #ifdef ASSIMP_USE_HUNTER
+ #include <zip/zip.h>
+ #else
+-#include <contrib/zip/src/zip.h>
++#include <zip/zip.h>
+ #endif
+
+ namespace Assimp {
+diff --git a/code/AssetLib/Blender/BlenderTessellator.h b/code/AssetLib/Blender/BlenderTessellator.h
+index d6487cb..b56e271 100644
+--- a/code/AssetLib/Blender/BlenderTessellator.h
++++ b/code/AssetLib/Blender/BlenderTessellator.h
+@@ -143,7 +143,7 @@ namespace Assimp
+
+ #if ASSIMP_BLEND_WITH_POLY_2_TRI
+
+-#include "contrib/poly2tri/poly2tri/poly2tri.h"
++#include <poly2tri/poly2tri.h>
+
+ namespace Assimp
+ {
+diff --git a/code/AssetLib/IFC/IFCGeometry.cpp b/code/AssetLib/IFC/IFCGeometry.cpp
+index d3666d5..795f366 100644
+--- a/code/AssetLib/IFC/IFCGeometry.cpp
++++ b/code/AssetLib/IFC/IFCGeometry.cpp
+@@ -45,8 +45,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ #include "IFCUtil.h"
+ #include "Common/PolyTools.h"
+ #include "PostProcessing/ProcessHelper.h"
+-#include "contrib/poly2tri/poly2tri/poly2tri.h"
+-#include "contrib/clipper/clipper.hpp"
++#include <poly2tri/poly2tri.h>
++#include <polyclipping/clipper.hpp>
+
+ #include <iterator>
+ #include <memory>
+diff --git a/code/AssetLib/IFC/IFCOpenings.cpp b/code/AssetLib/IFC/IFCOpenings.cpp
+index 068ef40..be116f8 100644
+--- a/code/AssetLib/IFC/IFCOpenings.cpp
++++ b/code/AssetLib/IFC/IFCOpenings.cpp
+@@ -47,8 +47,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ #include "IFCUtil.h"
+ #include "Common/PolyTools.h"
+ #include "PostProcessing/ProcessHelper.h"
+-#include "contrib/poly2tri/poly2tri/poly2tri.h"
+-#include "contrib/clipper/clipper.hpp"
++#include <poly2tri/poly2tri.h>
++#include <polyclipping/clipper.hpp>
+
+ #include <deque>
+ #include <forward_list>
+diff --git a/code/AssetLib/MMD/MMDPmxParser.cpp b/code/AssetLib/MMD/MMDPmxParser.cpp
+index 73d6b6c..27ebcd9 100644
+--- a/code/AssetLib/MMD/MMDPmxParser.cpp
++++ b/code/AssetLib/MMD/MMDPmxParser.cpp
+@@ -41,7 +41,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ #include <utility>
+ #include "MMDPmxParser.h"
+ #include <assimp/StringUtils.h>
+-#include "utf8.h"
++#include <utf8cpp/utf8.h>
+ #include <assimp/Exceptional.h>
+
+ namespace pmx
+diff --git a/code/AssetLib/SIB/SIBImporter.cpp b/code/AssetLib/SIB/SIBImporter.cpp
+index 8e05846..dee6a5a 100644
+--- a/code/AssetLib/SIB/SIBImporter.cpp
++++ b/code/AssetLib/SIB/SIBImporter.cpp
+@@ -56,7 +56,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ #include <assimp/ByteSwapper.h>
+ #include <assimp/StreamReader.h>
+ #include <assimp/TinyFormatter.h>
+-#include "utf8.h"
++#include <utf8cpp/utf8.h>
+ #include <assimp/importerdesc.h>
+ #include <assimp/scene.h>
+ #include <assimp/DefaultLogger.hpp>
+diff --git a/code/AssetLib/STEPParser/STEPFileEncoding.cpp b/code/AssetLib/STEPParser/STEPFileEncoding.cpp
+index 7508e90..4b85c68 100644
+--- a/code/AssetLib/STEPParser/STEPFileEncoding.cpp
++++ b/code/AssetLib/STEPParser/STEPFileEncoding.cpp
+@@ -44,7 +44,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+ #include "STEPFileEncoding.h"
+ #include <assimp/fast_atof.h>
+-#include "utf8.h"
++#include <utf8cpp/utf8.h>
+
+ #include <memory>
+
+diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt
+index 8728188..3d82854 100644
+--- a/code/CMakeLists.txt
++++ b/code/CMakeLists.txt
+@@ -1116,8 +1116,7 @@ ELSE() # IF (ASSIMP_BUILD_USD_IMPORTER)
+ ENDIF() # IF (ASSIMP_BUILD_USD_IMPORTER)
+
+ # pugixml
+-IF(ASSIMP_HUNTER_ENABLED)
+- hunter_add_package(pugixml)
++IF(1)
+ find_package(pugixml CONFIG REQUIRED)
+ ELSEIF(NOT TARGET pugixml::pugixml)
+ SET( Pugixml_SRCS
+@@ -1130,30 +1129,27 @@ ELSEIF(NOT TARGET pugixml::pugixml)
+ ENDIF()
+
+ # utf8
+-IF(ASSIMP_HUNTER_ENABLED)
+- hunter_add_package(utf8)
++IF(1)
+ find_package(utf8cpp CONFIG REQUIRED)
+ ELSE()
+ INCLUDE_DIRECTORIES("../contrib/utf8cpp/source")
+ ENDIF()
+
+ # polyclipping
+-#IF(ASSIMP_HUNTER_ENABLED)
+-# hunter_add_package(polyclipping)
+-# find_package(polyclipping CONFIG REQUIRED)
+-#ELSE()
++IF(1)
++ find_package(polyclipping CONFIG REQUIRED)
++ELSE()
+ SET( Clipper_SRCS
+ ../contrib/clipper/clipper.hpp
+ ../contrib/clipper/clipper.cpp
+ )
+ SOURCE_GROUP( Contrib\\Clipper FILES ${Clipper_SRCS})
+-#ENDIF()
++ENDIF()
+
+ # poly2tri
+-#IF(ASSIMP_HUNTER_ENABLED)
+-# hunter_add_package(poly2tri)
+-# find_package(poly2tri CONFIG REQUIRED)
+-#ELSE()
++IF(1)
++ find_package(poly2tri CONFIG REQUIRED)
++ELSE()
+ SET( Poly2Tri_SRCS
+ ../contrib/poly2tri/poly2tri/common/shapes.cc
+ ../contrib/poly2tri/poly2tri/common/shapes.h
+@@ -1168,11 +1164,10 @@ ENDIF()
+ ../contrib/poly2tri/poly2tri/sweep/sweep_context.h
+ )
+ SOURCE_GROUP( Contrib\\Poly2Tri FILES ${Poly2Tri_SRCS})
+-#ENDIF()
++ENDIF()
+
+ # minizip/unzip
+-IF(ASSIMP_HUNTER_ENABLED)
+- hunter_add_package(minizip)
++IF(1)
+ find_package(minizip CONFIG REQUIRED)
+ ELSE()
+ SET( unzip_SRCS
+@@ -1188,8 +1183,7 @@ ENDIF()
+ # zip (https://github.com/kuba--/zip)
+ separate_arguments(ASSIMP_EXPORTERS_LIST UNIX_COMMAND ${ASSIMP_EXPORTERS_ENABLED})
+ IF(3MF IN_LIST ASSIMP_EXPORTERS_LIST)
+- IF(ASSIMP_HUNTER_ENABLED)
+- hunter_add_package(zip)
++ IF(1)
+ find_package(zip CONFIG REQUIRED)
+ ELSE()
+ SET( ziplib_SRCS
+@@ -1210,7 +1204,7 @@ IF(3MF IN_LIST ASSIMP_EXPORTERS_LIST)
+ ENDIF()
+
+ # openddlparser
+-IF(ASSIMP_HUNTER_ENABLED)
++IF(0)
+ hunter_add_package(openddlparser)
+ find_package(openddlparser CONFIG REQUIRED)
+ ELSE()
+@@ -1233,7 +1227,7 @@ ELSE()
+ ENDIF()
+
+ # Open3DGC
+-IF(ASSIMP_HUNTER_ENABLED)
++IF(0)
+ # Nothing to do, not available in Hunter yet.
+ ELSE()
+ SET ( open3dgc_SRCS
+@@ -1268,6 +1262,7 @@ ELSE()
+ ../contrib/Open3DGC/o3dgcVector.inl
+ )
+ SOURCE_GROUP( Contrib\\open3dgc FILES ${open3dgc_SRCS})
++ INCLUDE_DIRECTORIES("../contrib")
+ ENDIF()
+
+ # Check dependencies for glTF importer with Open3DGC-compression.
+@@ -1276,7 +1271,7 @@ ENDIF()
+ IF (NOT WIN32)
+ FIND_PACKAGE(RT QUIET)
+ ENDIF ()
+-IF (NOT ASSIMP_HUNTER_ENABLED AND (RT_FOUND OR WIN32))
++IF (1)
+ SET( ASSIMP_IMPORTER_GLTF_USE_OPEN3DGC 1 )
+ ADD_DEFINITIONS( -DASSIMP_IMPORTER_GLTF_USE_OPEN3DGC=1 )
+ ELSE ()
+@@ -1286,9 +1281,9 @@ ELSE ()
+ ENDIF ()
+
+ # RapidJSON
+-IF(ASSIMP_HUNTER_ENABLED)
+- hunter_add_package(RapidJSON)
++IF(1)
+ find_package(RapidJSON CONFIG REQUIRED)
++ ADD_DEFINITIONS( -DRAPIDJSON_HAS_STDSTRING=1)
+ ELSE()
+ INCLUDE_DIRECTORIES("../contrib/rapidjson/include")
+ ADD_DEFINITIONS( -DRAPIDJSON_HAS_STDSTRING=1)
+@@ -1299,9 +1294,8 @@ ELSE()
+ ENDIF()
+
+ # stb
+-IF(ASSIMP_HUNTER_ENABLED)
+- hunter_add_package(stb)
+- find_package(stb CONFIG REQUIRED)
++IF(1)
++ find_package(Stb REQUIRED)
+ ELSE()
+ SET( stb_SRCS
+ ../contrib/stb/stb_image.h
+@@ -1323,7 +1317,7 @@ IF( MSVC OR "${CMAKE_CXX_SIMULATE_ID}" MATCHES "MSVC") # clang with MSVC ABI
+ ADD_DEFINITIONS( -D_CRT_SECURE_NO_WARNINGS )
+ endif ()
+
+-IF(NOT ASSIMP_HUNTER_ENABLED)
++IF(0)
+ if (UNZIP_FOUND)
+ SET (unzip_compile_SRCS "")
+ else ()
+@@ -1379,7 +1373,7 @@ SET( assimp_src
+ )
+ ADD_DEFINITIONS( -DOPENDDLPARSER_BUILD )
+
+-IF(NOT ASSIMP_HUNTER_ENABLED)
++IF(1)
+ INCLUDE_DIRECTORIES(
+ ${IRRXML_INCLUDE_DIR}
+ ../contrib/openddlparser/include
+@@ -1483,21 +1477,25 @@ TARGET_INCLUDE_DIRECTORIES ( assimp PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../include>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/../include>
+ $<INSTALL_INTERFACE:${ASSIMP_INCLUDE_INSTALL_DIR}>
++ PRIVATE
++ ${Stb_INCLUDE_DIR}
+ )
+
+-IF(ASSIMP_HUNTER_ENABLED)
++IF(1)
+ TARGET_LINK_LIBRARIES(assimp
+- PUBLIC
+- openddlparser::openddl_parser
+- minizip::minizip
+- ZLIB::zlib
+- RapidJSON::rapidjson
+- utf8cpp
++ PRIVATE
++ polyclipping::polyclipping
++ #openddlparser::openddl_parser
++ ${OPENDDL_PARSER_LIBRARIES}
++ poly2tri::poly2tri
++ unofficial::minizip::minizip
++ ZLIB::ZLIB
++ rapidjson
++ utf8cpp::utf8cpp
+ pugixml
+- stb::stb
+ )
+ if(TARGET zip::zip)
+- target_link_libraries(assimp PUBLIC zip::zip)
++ target_link_libraries(assimp PRIVATE zip::zip)
+ endif()
+
+ if (ASSIMP_BUILD_DRACO)
+@@ -1520,9 +1518,9 @@ if(ASSIMP_ANDROID_JNIIOSYSTEM)
+ endif()
+
+ IF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER)
+- TARGET_LINK_LIBRARIES(assimp optimized ${C4D_RELEASE_LIBRARIES})
+- TARGET_LINK_LIBRARIES(assimp debug ${C4D_DEBUG_LIBRARIES})
+- TARGET_LINK_LIBRARIES(assimp ${C4D_EXTRA_LIBRARIES})
++ TARGET_LINK_LIBRARIES(assimp PRIVATE optimized ${C4D_RELEASE_LIBRARIES})
++ TARGET_LINK_LIBRARIES(assimp PRIVATE debug ${C4D_DEBUG_LIBRARIES})
++ TARGET_LINK_LIBRARIES(assimp PRIVATE ${C4D_EXTRA_LIBRARIES})
+ ENDIF ()
+
+ if( MSVC )
+@@ -1563,13 +1561,13 @@ if (MINGW)
+ ARCHIVE_OUTPUT_NAME assimp
+ )
+ if (NOT BUILD_SHARED_LIBS)
+- TARGET_LINK_LIBRARIES ( assimp -static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lwinpthread ) # winpthread is for libminizip.
++ TARGET_LINK_LIBRARIES ( assimp PRIVATE -static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lwinpthread ) # winpthread is for libminizip.
+ endif ()
+ endif()
+
+ if (${CMAKE_SYSTEM_NAME} MATCHES "WindowsStore")
+ target_compile_definitions(assimp PUBLIC WindowsStore)
+- TARGET_LINK_LIBRARIES(assimp advapi32)
++ TARGET_LINK_LIBRARIES(assimp PRIVATE advapi32)
+ endif()
+
+ SET_TARGET_PROPERTIES( assimp PROPERTIES
+@@ -1599,14 +1597,14 @@ ENDIF()
+
+ # Build against external unzip, or add ../contrib/unzip so
+ # assimp can #include "unzip.h"
+-IF(NOT ASSIMP_HUNTER_ENABLED)
++IF(0)
+ if (UNZIP_FOUND)
+ INCLUDE_DIRECTORIES(${UNZIP_INCLUDE_DIRS})
+ # TODO if cmake required version has been updated to >3.12.0, collapse this to the second case only
+ if(${CMAKE_VERSION} VERSION_LESS "3.12.0")
+- TARGET_LINK_LIBRARIES(assimp ${UNZIP_LIBRARIES})
++ TARGET_LINK_LIBRARIES(assimp PRIVATE ${UNZIP_LIBRARIES})
+ else()
+- TARGET_LINK_LIBRARIES(assimp ${UNZIP_LINK_LIBRARIES})
++ TARGET_LINK_LIBRARIES(assimp PRIVATE ${UNZIP_LINK_LIBRARIES})
+ endif()
+ else ()
+ INCLUDE_DIRECTORIES("../")
+@@ -1615,7 +1613,7 @@ ENDIF()
+
+ # Add RT-extension library for glTF importer with Open3DGC-compression.
+ IF (RT_FOUND AND ASSIMP_IMPORTER_GLTF_USE_OPEN3DGC)
+- TARGET_LINK_LIBRARIES(assimp rt)
++ TARGET_LINK_LIBRARIES(assimp PRIVATE rt)
+ ENDIF ()
+
+ IF(ASSIMP_INSTALL)
+diff --git a/code/Common/BaseImporter.cpp b/code/Common/BaseImporter.cpp
+index 1894ad8..bfc10c0 100644
+--- a/code/Common/BaseImporter.cpp
++++ b/code/Common/BaseImporter.cpp
+@@ -354,7 +354,7 @@ std::string BaseImporter::GetExtension(const std::string &pFile) {
+ return false;
+ }
+
+-#include "utf8.h"
++#include <utf8cpp/utf8.h>
+
+ // ------------------------------------------------------------------------------------------------
+ // Convert to UTF8 data
+diff --git a/code/Common/StbCommon.h b/code/Common/StbCommon.h
+index 6cec216..3e3c05a 100644
+--- a/code/Common/StbCommon.h
++++ b/code/Common/StbCommon.h
+@@ -53,7 +53,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ #pragma clang diagnostic ignored "-Wunused-function"
+ #endif
+
+-#ifndef STB_USE_HUNTER
++#if 0
+ /* Use prefixed names for the symbols from stb_image as it is a very commonly embedded library.
+ Including vanilla stb_image symbols causes duplicate symbol problems if assimp is linked
+ statically together with another library or executable that also embeds stb_image.
+@@ -113,7 +113,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ #define stbi_zlib_decode_noheader_malloc assimp_stbi_zlib_decode_noheader_malloc
+ #endif
+
+-#include "stb/stb_image.h"
++#include <stb_image.h>
+
+ #if _MSC_VER
+ #pragma warning(pop)
+diff --git a/code/Common/ZipArchiveIOSystem.cpp b/code/Common/ZipArchiveIOSystem.cpp
+index e2234e2..6258717 100644
+--- a/code/Common/ZipArchiveIOSystem.cpp
++++ b/code/Common/ZipArchiveIOSystem.cpp
+@@ -54,7 +54,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ #ifdef ASSIMP_USE_HUNTER
+ # include <minizip/unzip.h>
+ #else
+-# include <unzip.h>
++# include <minizip/unzip.h>
+ #endif
+
+ namespace Assimp {
diff --git a/vcpkg/ports/assimp/portfile.cmake b/vcpkg/ports/assimp/portfile.cmake
new file mode 100644
index 0000000..1a1f2c1
--- /dev/null
+++ b/vcpkg/ports/assimp/portfile.cmake
@@ -0,0 +1,90 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO assimp/assimp
+ REF "v${VERSION}"
+ SHA512 dc9637b183a1ab4c87d3548b1cacf4278fc5d30ffa4ca35436f94723c20b916932791e8e2c2f0d2a63786078457e61a42fb7aac8462551172f7f5bd2582ad9a9
+ HEAD_REF master
+ PATCHES
+ build_fixes.patch
+)
+
+file(REMOVE "${SOURCE_PATH}/cmake-modules/FindZLIB.cmake")
+
+file(REMOVE_RECURSE "${SOURCE_PATH}/contrib/clipper")
+file(REMOVE_RECURSE "${SOURCE_PATH}/contrib/draco")
+file(REMOVE_RECURSE "${SOURCE_PATH}/contrib/gtest")
+#file(REMOVE_RECURSE "${SOURCE_PATH}/contrib/Open3DGC") #TODO
+#file(REMOVE_RECURSE "${SOURCE_PATH}/contrib/openddlparser") #TODO
+file(REMOVE_RECURSE "${SOURCE_PATH}/contrib/poly2tri")
+file(REMOVE_RECURSE "${SOURCE_PATH}/contrib/pugixml")
+file(REMOVE_RECURSE "${SOURCE_PATH}/contrib/rapidjson")
+file(REMOVE_RECURSE "${SOURCE_PATH}/contrib/stb")
+file(REMOVE_RECURSE "${SOURCE_PATH}/contrib/unzip")
+file(REMOVE_RECURSE "${SOURCE_PATH}/contrib/utf8cpp")
+file(REMOVE_RECURSE "${SOURCE_PATH}/contrib/zip")
+file(REMOVE_RECURSE "${SOURCE_PATH}/contrib/zlib")
+
+set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} -D_CRT_SECURE_NO_WARNINGS")
+set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS")
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DASSIMP_BUILD_ZLIB=OFF
+ -DASSIMP_BUILD_ASSIMP_TOOLS=OFF
+ -DASSIMP_BUILD_VRML_IMPORTER=OFF # requires meshlab
+ -DASSIMP_BUILD_TESTS=OFF
+ -DASSIMP_WARNINGS_AS_ERRORS=OFF
+ -DASSIMP_IGNORE_GIT_HASH=ON
+ -DASSIMP_INSTALL_PDB=OFF
+)
+
+vcpkg_cmake_install()
+vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/assimp")
+
+vcpkg_copy_pdbs()
+
+if(VCPKG_TARGET_IS_WINDOWS)
+ set(VCVER vc140 vc141 vc142 vc143)
+ set(CRT mt md)
+ set(DBG_NAMES)
+ set(REL_NAMES)
+ foreach(_ver IN LISTS VCVER)
+ foreach(_crt IN LISTS CRT)
+ list(APPEND DBG_NAMES assimp-${_ver}-${_crt}d)
+ list(APPEND REL_NAMES assimp-${_ver}-${_crt})
+ endforeach()
+ endforeach()
+endif()
+
+find_library(ASSIMP_REL NAMES assimp ${REL_NAMES} PATHS "${CURRENT_PACKAGES_DIR}/lib" NO_DEFAULT_PATH)
+find_library(ASSIMP_DBG NAMES assimp assimpd ${DBG_NAMES} PATHS "${CURRENT_PACKAGES_DIR}/debug/lib" NO_DEFAULT_PATH)
+if(ASSIMP_REL)
+ get_filename_component(ASSIMP_NAME_REL "${ASSIMP_REL}" NAME_WLE)
+ string(REGEX REPLACE "^lib(.*)" "\\1" ASSIMP_NAME_REL "${ASSIMP_NAME_REL}")
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/assimp.pc" "-lassimp" "-l${ASSIMP_NAME_REL}" IGNORE_UNCHANGED)
+endif()
+if(ASSIMP_DBG)
+ get_filename_component(ASSIMP_NAME_DBG "${ASSIMP_DBG}" NAME_WLE)
+ string(REGEX REPLACE "^lib(.*)" "\\1" ASSIMP_NAME_DBG "${ASSIMP_NAME_DBG}")
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/assimp.pc" "-lassimp" "-l${ASSIMP_NAME_DBG}")
+endif()
+
+if("${VCPKG_LIBRARY_LINKAGE}" STREQUAL "static")
+ set(assimp_PC_REQUIRES "draco polyclipping pugixml minizip")
+ set(assimp_LIBS_REQUIRES "-lpoly2tri")
+
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/assimp.pc" "Libs:" "Requires.private: ${assimp_PC_REQUIRES}\nLibs:")
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/assimp.pc" "Libs.private:" "Libs.private: ${assimp_LIBS_REQUIRES}")
+ if(NOT VCPKG_BUILD_TYPE)
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/assimp.pc" "Libs:" "Requires.private: ${assimp_PC_REQUIRES}\nLibs:")
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/assimp.pc" "Libs.private:" "Libs.private: ${assimp_LIBS_REQUIRES}")
+ endif()
+endif()
+
+vcpkg_fixup_pkgconfig()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
diff --git a/vcpkg/ports/assimp/vcpkg.json b/vcpkg/ports/assimp/vcpkg.json
new file mode 100644
index 0000000..db6c4d4
--- /dev/null
+++ b/vcpkg/ports/assimp/vcpkg.json
@@ -0,0 +1,28 @@
+{
+ "name": "assimp",
+ "version": "6.0.2",
+ "port-version": 1,
+ "description": "The Open Asset import library",
+ "homepage": "https://github.com/assimp/assimp",
+ "license": "BSD-3-Clause",
+ "dependencies": [
+ "draco",
+ "jhasse-poly2tri",
+ "kubazip",
+ "minizip",
+ "polyclipping",
+ "pugixml",
+ "rapidjson",
+ "stb",
+ "utfcpp",
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ },
+ "zlib"
+ ]
+}