diff --git a/.ci_support/linux_64_ffmpeg6.yaml b/.ci_support/linux_64_ffmpeg6.yaml index d1f46c1..0bdb37e 100644 --- a/.ci_support/linux_64_ffmpeg6.yaml +++ b/.ci_support/linux_64_ffmpeg6.yaml @@ -1,5 +1,5 @@ assimp: -- 5.4.2 +- 5.4.3 c_compiler: - gcc c_compiler_version: diff --git a/.ci_support/linux_64_ffmpeg7.yaml b/.ci_support/linux_64_ffmpeg7.yaml index 549536c..24accde 100644 --- a/.ci_support/linux_64_ffmpeg7.yaml +++ b/.ci_support/linux_64_ffmpeg7.yaml @@ -1,5 +1,5 @@ assimp: -- 5.4.2 +- 5.4.3 c_compiler: - gcc c_compiler_version: diff --git a/.ci_support/linux_aarch64_ffmpeg6.yaml b/.ci_support/linux_aarch64_ffmpeg6.yaml index d0b2dd8..0398a95 100644 --- a/.ci_support/linux_aarch64_ffmpeg6.yaml +++ b/.ci_support/linux_aarch64_ffmpeg6.yaml @@ -1,7 +1,7 @@ BUILD: - aarch64-conda_cos7-linux-gnu assimp: -- 5.4.2 +- 5.4.3 c_compiler: - gcc c_compiler_version: diff --git a/.ci_support/linux_aarch64_ffmpeg7.yaml b/.ci_support/linux_aarch64_ffmpeg7.yaml index 75fb401..db610cb 100644 --- a/.ci_support/linux_aarch64_ffmpeg7.yaml +++ b/.ci_support/linux_aarch64_ffmpeg7.yaml @@ -1,7 +1,7 @@ BUILD: - aarch64-conda_cos7-linux-gnu assimp: -- 5.4.2 +- 5.4.3 c_compiler: - gcc c_compiler_version: diff --git a/.ci_support/linux_ppc64le_ffmpeg6.yaml b/.ci_support/linux_ppc64le_ffmpeg6.yaml index da0b6eb..00a7e29 100644 --- a/.ci_support/linux_ppc64le_ffmpeg6.yaml +++ b/.ci_support/linux_ppc64le_ffmpeg6.yaml @@ -1,5 +1,5 @@ assimp: -- 5.4.2 +- 5.4.3 c_compiler: - gcc c_compiler_version: @@ -24,6 +24,8 @@ ffmpeg: - '6' glib: - '2' +libgdal: +- '3.9' libuuid: - '2' target_platform: diff --git a/.ci_support/linux_ppc64le_ffmpeg7.yaml b/.ci_support/linux_ppc64le_ffmpeg7.yaml index ae166ab..875cef3 100644 --- a/.ci_support/linux_ppc64le_ffmpeg7.yaml +++ b/.ci_support/linux_ppc64le_ffmpeg7.yaml @@ -1,5 +1,5 @@ assimp: -- 5.4.2 +- 5.4.3 c_compiler: - gcc c_compiler_version: @@ -24,6 +24,8 @@ ffmpeg: - '7' glib: - '2' +libgdal: +- '3.9' libuuid: - '2' target_platform: diff --git a/.ci_support/migrations/assimp543.yaml b/.ci_support/migrations/assimp543.yaml new file mode 100644 index 0000000..e0f94ce --- /dev/null +++ b/.ci_support/migrations/assimp543.yaml @@ -0,0 +1,8 @@ +__migrator: + build_number: 1 + commit_message: Rebuild for assimp 5.4.3 + kind: version + migration_number: 1 +assimp: +- 5.4.3 +migrator_ts: 1725100349.1005585 diff --git a/.ci_support/osx_64_ffmpeg6.yaml b/.ci_support/osx_64_ffmpeg6.yaml index 967a9dd..ff2154c 100644 --- a/.ci_support/osx_64_ffmpeg6.yaml +++ b/.ci_support/osx_64_ffmpeg6.yaml @@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET: MACOSX_SDK_VERSION: - '10.13' assimp: -- 5.4.2 +- 5.4.3 c_compiler: - clang c_compiler_version: diff --git a/.ci_support/osx_64_ffmpeg7.yaml b/.ci_support/osx_64_ffmpeg7.yaml index 3409756..4639ba7 100644 --- a/.ci_support/osx_64_ffmpeg7.yaml +++ b/.ci_support/osx_64_ffmpeg7.yaml @@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET: MACOSX_SDK_VERSION: - '10.13' assimp: -- 5.4.2 +- 5.4.3 c_compiler: - clang c_compiler_version: diff --git a/.ci_support/osx_arm64_ffmpeg6.yaml b/.ci_support/osx_arm64_ffmpeg6.yaml index e42463a..3c9dc55 100644 --- a/.ci_support/osx_arm64_ffmpeg6.yaml +++ b/.ci_support/osx_arm64_ffmpeg6.yaml @@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET: MACOSX_SDK_VERSION: - '11.0' assimp: -- 5.4.2 +- 5.4.3 c_compiler: - clang c_compiler_version: diff --git a/.ci_support/osx_arm64_ffmpeg7.yaml b/.ci_support/osx_arm64_ffmpeg7.yaml index f4d31ab..f8c4f77 100644 --- a/.ci_support/osx_arm64_ffmpeg7.yaml +++ b/.ci_support/osx_arm64_ffmpeg7.yaml @@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET: MACOSX_SDK_VERSION: - '11.0' assimp: -- 5.4.2 +- 5.4.3 c_compiler: - clang c_compiler_version: diff --git a/.ci_support/win_64_ffmpeg6.yaml b/.ci_support/win_64_ffmpeg6.yaml index 2ecf7cc..f7c699c 100644 --- a/.ci_support/win_64_ffmpeg6.yaml +++ b/.ci_support/win_64_ffmpeg6.yaml @@ -1,5 +1,5 @@ assimp: -- 5.4.2 +- 5.4.3 c_compiler: - vs2019 c_stdlib: diff --git a/.ci_support/win_64_ffmpeg7.yaml b/.ci_support/win_64_ffmpeg7.yaml index 0cd6c25..c9cef83 100644 --- a/.ci_support/win_64_ffmpeg7.yaml +++ b/.ci_support/win_64_ffmpeg7.yaml @@ -1,5 +1,5 @@ assimp: -- 5.4.2 +- 5.4.3 c_compiler: - vs2019 c_stdlib: diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index ba4b251..856f469 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -43,6 +43,8 @@ setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" source run_conda_forge_build_setup + + # make the build number clobber make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index 65650bf..a45c34f 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -24,7 +24,7 @@ set "CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1" :: Provision the necessary dependencies to build the recipe later echo Installing dependencies -mamba.exe install "python=3.10" pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1" -c conda-forge --strict-channel-priority --yes +mamba.exe install pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1" -c conda-forge --strict-channel-priority --yes if !errorlevel! neq 0 exit /b !errorlevel! :: Set basic configuration @@ -48,7 +48,7 @@ if NOT [%HOST_PLATFORM%] == [%BUILD_PLATFORM%] ( ) if NOT [%flow_run_id%] == [] ( - set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --extra-meta flow_run_id=%flow_run_id% remote_url=%remote_url% sha=%sha%" + set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --extra-meta flow_run_id=%flow_run_id% remote_url=%remote_url% sha=%sha%" ) call :end_group diff --git a/README.md b/README.md index c46b6f6..43132ab 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,6 @@ This feedstock builds several conda packages from the gz-common source code, the If you need to depend at build time on the C++ package, please depend on `libgz-common5` in your recipe. -On `linux-ppc64le` the `libgz-common5` does not contain the geospatial component as in that platform the `gdal` dependency is not available. - Current build status ==================== @@ -252,6 +250,3 @@ Feedstock Maintainers * [@Tobias-Fischer](https://github.com/Tobias-Fischer/) * [@traversaro](https://github.com/traversaro/) - - - diff --git a/build-locally.py b/build-locally.py index d78427b..6788aea 100755 --- a/build-locally.py +++ b/build-locally.py @@ -1,8 +1,11 @@ -#!/usr/bin/env python3 +#!/bin/sh +"""exec" "python3" "$0" "$@" #""" # fmt: off # fmt: on # # This file has been generated by conda-smithy in order to build the recipe # locally. # +# The line above this comment is a bash / sh / zsh guard +# to stop people from running it with the wrong interpreter import glob import os import platform diff --git a/recipe/641.patch b/recipe/641.patch new file mode 100644 index 0000000..416d90a --- /dev/null +++ b/recipe/641.patch @@ -0,0 +1,66 @@ +From df5f9654d7c3420fd923fd0c2a88e4b72d10e261 Mon Sep 17 00:00:00 2001 +From: Ian Chen +Date: Thu, 5 Sep 2024 15:13:31 -0700 +Subject: [PATCH] Fix AssimpLoader collada texture coordinates (#634) + +Fixes UNIT_AssimpLoader_TEST with assimp 5.4.3. This should fix homebrew CI. + +This PR tweaks the way we checks for texture coordinates from assimp. Empty texture coordinate slots are now allowed as of assimp/assimp#5636. The new logic should be compatible with assimp 5.4.3 and prior versions + +Signed-off-by: Ian Chen +--- + graphics/src/AssimpLoader.cc | 20 +++++++++++++------- + 1 file changed, 13 insertions(+), 7 deletions(-) + +diff --git a/graphics/src/AssimpLoader.cc b/graphics/src/AssimpLoader.cc +index f0bcf194..52edddbd 100644 +--- a/graphics/src/AssimpLoader.cc ++++ b/graphics/src/AssimpLoader.cc +@@ -650,15 +650,14 @@ SubMesh AssimpLoader::Implementation::CreateSubMesh( + subMesh.AddVertex(vertex); + subMesh.AddNormal(normal); + // Iterate over sets of texture coordinates +- int uvIdx = 0; +- while(_assimpMesh->HasTextureCoords(uvIdx)) ++ for (unsigned int i = 0; i < AI_MAX_NUMBER_OF_TEXTURECOORDS; ++i) + { ++ if (!_assimpMesh->HasTextureCoords(i)) ++ continue; + math::Vector3d texcoords; +- texcoords.X(_assimpMesh->mTextureCoords[uvIdx][vertexIdx].x); +- texcoords.Y(_assimpMesh->mTextureCoords[uvIdx][vertexIdx].y); +- // TODO(luca) why do we need 1.0 - Y? +- subMesh.AddTexCoordBySet(texcoords.X(), 1.0 - texcoords.Y(), uvIdx); +- ++uvIdx; ++ texcoords.X(_assimpMesh->mTextureCoords[i][vertexIdx].x); ++ texcoords.Y(_assimpMesh->mTextureCoords[i][vertexIdx].y); ++ subMesh.AddTexCoordBySet(texcoords.X(), texcoords.Y(), i); + } + } + for (unsigned faceIdx = 0; faceIdx < _assimpMesh->mNumFaces; ++faceIdx) +@@ -695,6 +694,7 @@ Mesh *AssimpLoader::Load(const std::string &_filename) + aiProcess_JoinIdenticalVertices | + aiProcess_RemoveRedundantMaterials | + aiProcess_SortByPType | ++ aiProcess_FlipUVs | + #ifndef GZ_ASSIMP_PRE_5_2_0 + aiProcess_PopulateArmatureData | + #endif +@@ -756,11 +756,17 @@ Mesh *AssimpLoader::Load(const std::string &_filename) + // Recursive call to keep track of transforms, + // mesh is passed by reference and edited throughout + this->dataPtr->RecursiveCreate(scene, rootNode, rootTransform, mesh); ++ auto rootSkeleton = mesh->MeshSkeleton(); + // Add the animations + for (unsigned animIdx = 0; animIdx < scene->mNumAnimations; ++animIdx) + { + auto& anim = scene->mAnimations[animIdx]; + auto animName = ToString(anim->mName); ++ if (animName.empty()) ++ { ++ animName = "animation" + ++ std::to_string(rootSkeleton->AnimationCount() + 1); ++ } + SkeletonAnimation* skelAnim = new SkeletonAnimation(animName); + for (unsigned chanIdx = 0; chanIdx < anim->mNumChannels; ++chanIdx) + { diff --git a/recipe/meta.yaml b/recipe/meta.yaml index b90c409..2b4549a 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -17,9 +17,10 @@ source: - librt_linkage.patch # [linux] - macro_path_binary_relocation.patch - apple_disable_profiler_error_test.patch + - 641.patch build: - number: 6 + number: 7 outputs: - name: {{ cxx_name }}