|
@@ -6,12 +6,18 @@ package("assimp")
|
|
|
|
|
|
set_urls("https://github.com/assimp/assimp/archive/$(version).zip",
|
|
|
"https://github.com/assimp/assimp.git")
|
|
|
+ add_versions("v5.2.3", "9667cfc8ddabd5dd5e83f3aebb99dbf232fce99f17b9fe59540dccbb5e347393")
|
|
|
add_versions("v5.2.2", "7b833182b89917b3c6e8aee6432b74870fb71f432cc34aec5f5411bd6b56c1b5")
|
|
|
add_versions("v5.2.1", "636fe5c2cfe925b559b5d89e53a42412a2d2ab49a0712b7d655d1b84c51ed504")
|
|
|
add_versions("v5.1.4", "59a00cf72fa5ceff960460677e2b37be5cd1041e85bae9c02828c27ade7e4160")
|
|
|
add_versions("v5.0.1", "d10542c95e3e05dece4d97bb273eba2dfeeedb37a78fb3417fd4d5e94d879192")
|
|
|
add_patches("v5.0.1", path.join(os.scriptdir(), "patches", "5.0.1", "fix-mingw.patch"), "a3375489e2bbb2dd97f59be7dd84e005e7e9c628b4395d7022a6187ca66b5abb")
|
|
|
|
|
|
+ -- issues https://github.com/assimp/assimp/issues/4334 add this patch to fix
|
|
|
+ add_patches("v5.2.1", path.join(os.scriptdir(), "patches", "5.2.1", "fix_zlib_filefunc_def.patch"), "a9f8a9aa1975888ea751b80c8268296dee901288011eeb1addf518eac40b71b1")
|
|
|
+ add_patches("v5.2.2", path.join(os.scriptdir(), "patches", "5.2.1", "fix_zlib_filefunc_def.patch"), "a9f8a9aa1975888ea751b80c8268296dee901288011eeb1addf518eac40b71b1")
|
|
|
+ add_patches("v5.2.3", path.join(os.scriptdir(), "patches", "5.2.1", "fix_zlib_filefunc_def.patch"), "a9f8a9aa1975888ea751b80c8268296dee901288011eeb1addf518eac40b71b1")
|
|
|
+
|
|
|
if not is_host("windows") then
|
|
|
add_extsources("pkgconfig::assimp")
|
|
|
end
|
|
@@ -40,9 +46,9 @@ package("assimp")
|
|
|
on_load(function (package)
|
|
|
if package:version():le("5.1.0") then
|
|
|
package:add("deps", "irrxml")
|
|
|
- if package:is_plat("linux") and package:config("shared") then
|
|
|
- package:add("ldflags", "-Wl,--as-needed," .. package:installdir("lib", "libassimp.so"))
|
|
|
- end
|
|
|
+ end
|
|
|
+ if package:is_plat("linux", "macosx") and package:config("shared") then
|
|
|
+ package:add("links", "assimp")
|
|
|
end
|
|
|
end)
|
|
|
|
|
@@ -53,22 +59,10 @@ package("assimp")
|
|
|
"-DASSIMP_BUILD_FRAMEWORK=OFF",
|
|
|
"-DASSIMP_INSTALL_PDB=ON",
|
|
|
"-DASSIMP_INJECT_DEBUG_POSTFIX=ON",
|
|
|
- "-DASSIMP_BUILD_ZLIB=OFF",
|
|
|
+ "-DASSIMP_BUILD_ZLIB=ON",
|
|
|
"-DSYSTEM_IRRXML=ON"}
|
|
|
table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:debug() and "Debug" or "Release"))
|
|
|
|
|
|
- -- temporary workaround
|
|
|
- local zlib = package:dep("zlib")
|
|
|
- if zlib and not zlib:is_system() then
|
|
|
- local fetchinfo = zlib:fetch()
|
|
|
- io.replace("CMakeLists.txt", "FIND_PACKAGE(ZLIB)", "", {plain = true})
|
|
|
- io.replace("CMakeLists.txt", [[INSTALL( TARGETS zlib zlibstatic
|
|
|
- EXPORT "${TARGETS_EXPORT_NAME}")]], "", {plain = true})
|
|
|
- table.insert(configs, "-DZLIB_FOUND=TRUE")
|
|
|
- table.insert(configs, "-DZLIB_INCLUDE_DIR=" .. table.concat(fetchinfo.includedirs or fetchinfo.sysincludedirs, ";"))
|
|
|
- table.insert(configs, "-DZLIB_LIBRARIES=" .. table.concat(fetchinfo.libfiles, ";"))
|
|
|
- end
|
|
|
-
|
|
|
local function add_config_arg(config_name, cmake_name)
|
|
|
table.insert(configs, "-D" .. cmake_name .. "=" .. (package:config(config_name) and "ON" or "OFF"))
|
|
|
end
|
|
@@ -77,6 +71,15 @@ package("assimp")
|
|
|
add_config_arg("no_export", "ASSIMP_NO_EXPORT")
|
|
|
add_config_arg("asan", "ASSIMP_ASAN")
|
|
|
add_config_arg("ubsan", "ASSIMP_UBSAN")
|
|
|
+
|
|
|
+ -- since v5.3.2, assimp allow user to choose C runtime library version, on Windows
|
|
|
+ -- https://github.com/assimp/assimp/pull/4444
|
|
|
+ if package:version():ge("v5.2.3") then
|
|
|
+ if package:is_plat("windows") and (package:config("vs_runtime") == "MT" or package:config("vs_runtime") == "MTd") then
|
|
|
+ table.insert(configs, "-DUSE_STATIC_CRT=ON")
|
|
|
+ end
|
|
|
+ end
|
|
|
+
|
|
|
if package:is_plat("android") then
|
|
|
add_config_arg("android_jniiosysystem", "ASSIMP_ANDROID_JNIIOSYSTEM")
|
|
|
end
|
|
@@ -104,5 +107,10 @@ package("assimp")
|
|
|
end)
|
|
|
|
|
|
on_test(function (package)
|
|
|
- assert(package:has_cxxtypes("Assimp::Importer", {configs = {languages = "c++11"}, includes = "assimp/Importer.hpp"}))
|
|
|
+ assert(package:check_cxxsnippets({test = [[
|
|
|
+ #include <cassert>
|
|
|
+ void test() {
|
|
|
+ Assimp::Importer importer;
|
|
|
+ }
|
|
|
+ ]]}, {configs = {languages = "c++11"}, includes = "assimp/Importer.hpp"}))
|
|
|
end)
|