diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/assimp | |
Diffstat (limited to 'vcpkg/ports/assimp')
| -rw-r--r-- | vcpkg/ports/assimp/build_fixes.patch | 493 | ||||
| -rw-r--r-- | vcpkg/ports/assimp/portfile.cmake | 90 | ||||
| -rw-r--r-- | vcpkg/ports/assimp/vcpkg.json | 28 |
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" + ] +} |