mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-25 11:47:49 +08:00
3df33117ff
Fixes #35141 Tested usage successfully by `assimp:x64-windows`: ```` assimp provides CMake targets: # this is heuristically generated, and may not be correct find_package(assimp CONFIG REQUIRED) target_link_libraries(main PRIVATE assimp::assimp) assimp provides pkg-config modules: # Import various well-known 3D model formats in an uniform manner. assimp ```` - [x] Changes comply with the [maintainer guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md). - [x] SHA512s are updated for each updated download. - [ ] ~~The "supports" clause reflects platforms that may be fixed by this new version.~~ - [ ] ~~Any fixed [CI baseline](https://github.com/microsoft/vcpkg/blob/master/scripts/ci.baseline.txt) entries are removed from that file.~~ - [x] Any patches that are no longer applied are deleted from the port's directory. - [x] The version database is fixed by rerunning `./vcpkg x-add-version --all` and committing the result. - [] Only one version is added to each modified port's versions file. --------- Co-authored-by: Jon <v-zhli17@microsoft.com>
90 lines
3.6 KiB
CMake
90 lines
3.6 KiB
CMake
vcpkg_from_github(
|
|
OUT_SOURCE_PATH SOURCE_PATH
|
|
REPO assimp/assimp
|
|
REF "v${VERSION}"
|
|
SHA512 6b0e410160c9f60923283be5d948e60b3b8c7819a7e75c9e39608d72202c1c715c048bd615e33d14544394c63efa6ad01cd3eda4c997ebe5a8c6e15ae18d4715
|
|
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_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}")
|
|
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")
|