summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Kundiman <erik@megapahit.org>2025-11-07 14:54:52 +0800
committerErik Kundiman <erik@megapahit.org>2025-11-07 14:54:52 +0800
commit1aa0ec2e5847a9d211a3d944284c91a8326eca1f (patch)
tree0e0095ad019bc6b47bef0ea3b32dfe9a74f99bda
parentd1e66eca33c42f6100644f08072c9f6b025a01b9 (diff)
Update the upstream ColladaDOM revision used to 10
As the maintenance using an external patch is getting harder, I had to revert the patching to internal and the building to be in the configuration phase, made worse by CMake 4 on Arch, Gentoo and Tumbleweed that treats the absence of a minimum requirement as an error (the BSD sed condition is put there as an anticipation for when in the future (Mac)Ports' CMake gets updated to 4 too).
-rw-r--r--indra/cmake/LLPrimitive.cmake57
-rw-r--r--indra/llprimitive/CMakeLists.txt22
-rw-r--r--patches/collada-dom-v2.3-r8.patch531
3 files changed, 36 insertions, 574 deletions
diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake
index 5fc34d027c..ef92a89308 100644
--- a/indra/cmake/LLPrimitive.cmake
+++ b/indra/cmake/LLPrimitive.cmake
@@ -18,38 +18,45 @@ if( USE_CONAN )
"${CONAN_INCLUDE_DIRS_COLLADADOM}/collada-dom/1.4/" )
endif()
-if (LINUX AND NOT (${LINUX_DISTRO} MATCHES debian AND CMAKE_SYSTEM_PROCESSOR MATCHES aarch64) OR CMAKE_SYSTEM_NAME MATCHES FreeBSD)
- # Build of the collada-dom for Linux and FreeBSD is done in
- # indra/llprimitive/CMakeLists.txt
- return()
-else ()
+if (TRUE)
include(FindPkgConfig)
pkg_check_modules(Minizip REQUIRED minizip)
pkg_check_modules(Libxml2 REQUIRED libxml-2.0)
target_link_libraries( ll::minizip-ng INTERFACE ${Minizip_LIBRARIES} )
target_link_libraries( ll::libxml INTERFACE ${Libxml2_LIBRARIES} )
if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/colladadom_installed OR NOT ${colladadom_installed} EQUAL 0)
- if (NOT EXISTS ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8.tar.gz)
+ if (NOT EXISTS ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r10.tar.gz)
file(DOWNLOAD
- https://github.com/secondlife/3p-colladadom/archive/refs/tags/v2.3-r8.tar.gz
- ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8.tar.gz
+ https://github.com/secondlife/3p-colladadom/archive/refs/tags/v2.3-r10.tar.gz
+ ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r10.tar.gz
)
endif ()
file(ARCHIVE_EXTRACT
- INPUT ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8.tar.gz
+ INPUT ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r10.tar.gz
DESTINATION ${CMAKE_BINARY_DIR}
)
+ if (WINDOWS OR CMAKE_COMMAND MATCHES /usr/bin/cmake)
+ execute_process(
+ COMMAND sed -i "s/include_directories/cmake_minimum_required(VERSION 3.28)\\ninclude_directories/" CMakeLists.txt
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r10
+ )
+ else ()
+ execute_process(
+ COMMAND sed -i "" -e "s/include_directories/cmake_minimum_required(VERSION 3.28)\\ninclude_directories/" CMakeLists.txt
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r10
+ )
+ endif ()
if (WINDOWS)
execute_process(
COMMAND sed -i "s/SHARED/STATIC/" 1.4/CMakeLists.txt
COMMAND sed -i "/#include <cstdarg>/a #define WIN32" dae/daeUtils.cpp
COMMAND sed -i "/using namespace cdom;/a namespace boost{void boost::throw_exception(class std::exception const &){}}" dae/daeURI.cpp
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8/src
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r10/src
)
else ()
execute_process(
COMMAND sed -i "" -e "s/SHARED/STATIC/" src/1.4/CMakeLists.txt
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r10
)
endif ()
if (DARWIN)
@@ -64,12 +71,19 @@ else ()
else ()
set(BOOST_LIBRARY_SUFFIX -vc143-mt-x64-1_89)
endif ()
+ elseif (CMAKE_SYSTEM_NAME MATCHES FreeBSD)
+ set(BOOST_CFLAGS -I/usr/local/include)
+ execute_process(
+ COMMAND sed -i "" -e "s/endif 0/endif/" dae/daeUtils.cpp
+ COMMAND sed -i "" -e "s/linux/FreeBSD/" dae/daeUtils.cpp
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r10/src
+ )
endif ()
file(MAKE_DIRECTORY ${LIBS_PREBUILT_DIR}/include/collada/1.4)
try_compile(COLLADADOM_RESULT
PROJECT colladadom
- SOURCE_DIR ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8
- BINARY_DIR ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8
+ SOURCE_DIR ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r10
+ BINARY_DIR ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r10
TARGET collada14dom
CMAKE_FLAGS
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
@@ -89,13 +103,13 @@ else ()
)
if (WINDOWS)
execute_process(
- COMMAND MSBuild.exe ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8/Project.sln -p:Configuration=${CMAKE_BUILD_TYPE}
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8
+ COMMAND MSBuild.exe ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r10/Project.sln -p:Configuration=${CMAKE_BUILD_TYPE}
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r10
OUTPUT_VARIABLE colladadom_installed
)
file(REMOVE_RECURSE ${LIBS_PREBUILT_DIR}/include/collada)
file(
- COPY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8/include
+ COPY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r10/include
DESTINATION ${LIBS_PREBUILT_DIR}/include
)
file(RENAME
@@ -104,13 +118,13 @@ else ()
)
file(MAKE_DIRECTORY ${ARCH_PREBUILT_DIRS_RELEASE})
file(RENAME
- ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8/src/1.4/${CMAKE_BUILD_TYPE}/collada14dom.lib
+ ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r10/src/1.4/${CMAKE_BUILD_TYPE}/collada14dom.lib
${ARCH_PREBUILT_DIRS_RELEASE}/libcollada14dom23-s.lib
)
elseif (${COLLADADOM_RESULT})
execute_process(
COMMAND ${CMAKE_MAKE_PROGRAM} install
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r10
OUTPUT_VARIABLE colladadom_installed
)
file(RENAME
@@ -120,9 +134,9 @@ else ()
endif ()
file(WRITE ${PREBUILD_TRACKING_DIR}/colladadom_installed "${colladadom_installed}")
endif ()
-endif ()
-if (FALSE)
+else (TRUE)
+
use_system_binary( colladadom )
use_prebuilt_binary(colladadom)
@@ -148,7 +162,8 @@ target_link_libraries(ll::libxml INTERFACE ${LIBXML2_LIBRARY})
if (WINDOWS)
target_link_libraries( ll::libxml INTERFACE Bcrypt.lib)
endif()
-endif (FALSE)
+
+endif (TRUE)
target_include_directories( ll::colladadom SYSTEM INTERFACE
${LIBS_PREBUILT_DIR}/include/collada
diff --git a/indra/llprimitive/CMakeLists.txt b/indra/llprimitive/CMakeLists.txt
index b084098532..82b3b37824 100644
--- a/indra/llprimitive/CMakeLists.txt
+++ b/indra/llprimitive/CMakeLists.txt
@@ -3,7 +3,6 @@
project(llprimitive)
include(00-Common)
-include(Prebuilt)
include(LLCommon)
include(LLCoreHttp)
include(LLPhysicsExtensions)
@@ -11,27 +10,6 @@ include(LLPrimitive)
include(GLM)
include(TinyGLTF)
-if (LINUX AND NOT (${LINUX_DISTRO} MATCHES debian AND CMAKE_SYSTEM_PROCESSOR MATCHES aarch64) OR CMAKE_SYSTEM_NAME MATCHES FreeBSD)
- set_property(DIRECTORY APPEND
- PROPERTY CMAKE_CONFIGURE_DEPENDS ${CMAKE_SOURCE_DIR}/../patches/collada-dom-v2.3-r8.patch)
- prepare_thirdparty(
- "https://github.com/secondlife/3p-colladadom/archive/refs/tags/v2.3-r8.tar.gz"
- "colladadom-v2.3-r8.tar.gz"
- "3p-colladadom-2.3-r8"
- "collada-dom-v2.3-r8.patch"
- "b36dce3b7be4b49f3c8e4d6c9dbf3529f7ed1f28e64ee45be0e77805f06376b95079798616529302d771ab2b76bf06d2f894ca11e6f7f3097c3f7a05a78c474f"
- )
- set(OPT_COLLADA14 TRUE)
- add_subdirectory(
- "${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8" "colladadom")
- target_include_directories(
- ll::colladadom INTERFACE
- ${colladadom_SOURCE_DIR}/include
- ${colladadom_SOURCE_DIR}/include/1.4
- )
- target_link_libraries( ll::colladadom INTERFACE collada14dom )
-endif ()
-
set(llprimitive_SOURCE_FILES
lldaeloader.cpp
llgltfmaterial.cpp
diff --git a/patches/collada-dom-v2.3-r8.patch b/patches/collada-dom-v2.3-r8.patch
deleted file mode 100644
index b24ae2746b..0000000000
--- a/patches/collada-dom-v2.3-r8.patch
+++ /dev/null
@@ -1,531 +0,0 @@
-diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
-index d1833f4..ba137f9 100644
---- a/.github/workflows/build.yaml
-+++ b/.github/workflows/build.yaml
-@@ -8,10 +8,10 @@ jobs:
- build:
- strategy:
- matrix:
-- os: [windows-2022, macos-12, ubuntu-22.04]
-+ os: [windows-2022, macos-15, ubuntu-22.04]
- runs-on: ${{ matrix.os }}
- steps:
-- - uses: secondlife/action-autobuild@v4
-+ - uses: secondlife/action-autobuild@v5
- release:
- needs: build
- runs-on: [ubuntu-latest]
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index b1c1993..91313e7 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1,14 +1,25 @@
--include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
--set(COLLADA14_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include/1.4)
--set(COLLADA15_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include/1.5)
-+cmake_minimum_required(VERSION 3.17)
-+project(colladadom)
-+
-+include(FindPkgConfig)
-+
-+find_package(Boost REQUIRED CONFIG)
-+pkg_check_modules(LIBXML2 libxml-2.0)
-+pkg_check_modules(MINIZIP minizip)
-+pkg_check_modules(ZLIB zlib)
-+
-+set(COLLADA_DOM_SOVERSION "0")
-+set(COLLADA_DOM_VERSION "2.3")
-+
- file(GLOB dae_files ${CMAKE_CURRENT_SOURCE_DIR}/src/dae/*.cpp)
- file(GLOB libxmlplugin_files ${CMAKE_CURRENT_SOURCE_DIR}/src/modules/LIBXMLPlugin/*.cpp)
- file(GLOB stddatabase_files ${CMAKE_CURRENT_SOURCE_DIR}/src/modules/STLDatabase/*.cpp)
- file(GLOB stderrplugin_files ${CMAKE_CURRENT_SOURCE_DIR}/src/modules/stdErrPlugin/*.cpp)
-
- set(COLLADA_BASE_SOURCES ${dae_files} ${libxmlplugin_files} ${stddatabase_files} ${stderrplugin_files})
--set(COLLADA_LIBS minizip ${ZLIB_LIBRARIES} ${Boost_FILESYSTEM_LIBRARY} ${Boost_SYSTEM_LIBRARY})
--set(COLLADA_COMPILE_FLAGS "${EXTRA_COMPILE_FLAGS} ${Boost_CFLAGS} -DDOM_INCLUDE_LIBXML")
-+set(COLLADA_LIBS ${LIBXML2_LIBRARIES} ${MINIZIP_LIBRARIES} ${ZLIB_LIBRARIES} ${Boost_FILESYSTEM_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${Boost_REGEX_LIBRARY})
-+list(JOIN MINIZIP_CFLAGS " " VAR_MINIZIP_CFLAGS)
-+set(COLLADA_COMPILE_FLAGS "${EXTRA_COMPILE_FLAGS} ${VAR_MINIZIP_CFLAGS} ${Boost_CFLAGS} -DDOM_INCLUDE_LIBXML")
-
- if( OPT_COLLADA15 )
- add_subdirectory(src/1.5)
-@@ -17,8 +28,8 @@ if( OPT_COLLADA14 )
- add_subdirectory(src/1.4)
- endif()
-
--install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/1.4 DESTINATION ${COLLADA_DOM_INCLUDE_INSTALL_DIR} PATTERN ".svn" EXCLUDE PATTERN ".~" EXCLUDE)
--install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/1.5 DESTINATION ${COLLADA_DOM_INCLUDE_INSTALL_DIR} PATTERN ".svn" EXCLUDE PATTERN ".~" EXCLUDE)
--install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/dae DESTINATION ${COLLADA_DOM_INCLUDE_INSTALL_DIR} PATTERN ".svn" EXCLUDE PATTERN ".~" EXCLUDE)
--install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/modules DESTINATION ${COLLADA_DOM_INCLUDE_INSTALL_DIR} PATTERN ".svn" EXCLUDE PATTERN ".~" EXCLUDE)
--install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/dae.h ${CMAKE_CURRENT_SOURCE_DIR}/include/dae.h DESTINATION ${COLLADA_DOM_INCLUDE_INSTALL_DIR})
-+# install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/1.4 DESTINATION ${COLLADA_DOM_INCLUDE_INSTALL_DIR} PATTERN ".svn" EXCLUDE PATTERN ".~" EXCLUDE)
-+# install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/1.5 DESTINATION ${COLLADA_DOM_INCLUDE_INSTALL_DIR} PATTERN ".svn" EXCLUDE PATTERN ".~" EXCLUDE)
-+# install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/dae DESTINATION ${COLLADA_DOM_INCLUDE_INSTALL_DIR} PATTERN ".svn" EXCLUDE PATTERN ".~" EXCLUDE)
-+# install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/modules DESTINATION ${COLLADA_DOM_INCLUDE_INSTALL_DIR} PATTERN ".svn" EXCLUDE PATTERN ".~" EXCLUDE)
-+# install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/dae.h ${CMAKE_CURRENT_SOURCE_DIR}/include/dae.h DESTINATION ${COLLADA_DOM_INCLUDE_INSTALL_DIR})
-diff --git a/Makefile b/Makefile
-index f317973..441caf1 100755
---- a/Makefile
-+++ b/Makefile
-@@ -59,7 +59,7 @@ ifneq ($(shell uname -p | grep -i powerpc),)
- nativeArch := ppc
- endif
-
--# arch: x86 (or i386), x64 (or x86_64), ppc, ppc64
-+# arch: x86 (or i386), x64 (or x86_64), ppc, ppc64, arm64
- arch ?= i386
-
- # project: 'dom', 'domTest', or 'all'
-@@ -103,7 +103,7 @@ $(error Invalid setting os=$(os))
- endif
-
- archs := $(sort $(subst i386,x86,$(arch)))
--ifneq ($(filter-out x86 ppc x86_64,$(archs)),)
-+ifneq ($(filter-out x86 ppc x86_64 arm64,$(archs)),)
- $(error Invalid setting arch=$(arch))
- endif
-
-diff --git a/autobuild.xml b/autobuild.xml
-index 21a28c7..96436a9 100755
---- a/autobuild.xml
-+++ b/autobuild.xml
-@@ -21,11 +21,11 @@
- <key>archive</key>
- <map>
- <key>hash</key>
-- <string>6bf5f4afddf87d48c069d781b5ef2d44d6ddf2d5</string>
-+ <string>a4553df5b8fde2e9cd54ebb94c6efb8eb5fe3c38</string>
- <key>hash_algorithm</key>
- <string>sha1</string>
- <key>url</key>
-- <string>https://github.com/secondlife/3p-boost/releases/download/v1.86.0-e2bee1e/boost-1.86-darwin64-10475904468.tar.zst</string>
-+ <string>https://github.com/secondlife/3p-boost/releases/download/v1.86.0-be1a669/boost-1.86-darwin64-13246092114.tar.zst</string>
- </map>
- <key>name</key>
- <string>darwin64</string>
-@@ -35,11 +35,11 @@
- <key>archive</key>
- <map>
- <key>hash</key>
-- <string>3c0ba2a87e78d76c81da95fa87579bf4964242e1</string>
-+ <string>4a2a19dc5cb555e157ad894ba917f5a83a35b20d</string>
- <key>hash_algorithm</key>
- <string>sha1</string>
- <key>url</key>
-- <string>https://github.com/secondlife/3p-boost/releases/download/v1.86.0-e2bee1e/boost-1.86-linux64-10475904468.tar.zst</string>
-+ <string>https://github.com/secondlife/3p-boost/releases/download/v1.86.0-be1a669/boost-1.86-linux64-13246092114.tar.zst</string>
- </map>
- <key>name</key>
- <string>linux64</string>
-@@ -49,11 +49,11 @@
- <key>archive</key>
- <map>
- <key>hash</key>
-- <string>d1dd5d629b254d1b361c5a0fa210b5f3283e8a20</string>
-+ <string>8a1fa9366bfe49009286e4805d7aaedb7c3df82e</string>
- <key>hash_algorithm</key>
- <string>sha1</string>
- <key>url</key>
-- <string>https://github.com/secondlife/3p-boost/releases/download/v1.86.0-e2bee1e/boost-1.86-windows64-10475904468.tar.zst</string>
-+ <string>https://github.com/secondlife/3p-boost/releases/download/v1.86.0-be1a669/boost-1.86-windows64-13246092114.tar.zst</string>
- </map>
- <key>name</key>
- <string>windows64</string>
-@@ -81,11 +81,11 @@
- <key>archive</key>
- <map>
- <key>hash</key>
-- <string>b2bf9adc84841b6fcf48d4c00787b221607cdea3</string>
-+ <string>372c92936d940b1cfb5ba34310691d4bb435c161</string>
- <key>hash_algorithm</key>
- <string>sha1</string>
- <key>url</key>
-- <string>https://github.com/secondlife/3p-libxml2/releases/download/v2.13.3-r1/libxml2-2.13.3-r1-darwin64-10329675166.tar.zst</string>
-+ <string>https://github.com/secondlife/3p-libxml2/releases/download/v2.13.5-r2/libxml2-2.13.5-r2-darwin64-13246071272.tar.zst</string>
- </map>
- <key>name</key>
- <string>darwin64</string>
-@@ -95,11 +95,11 @@
- <key>archive</key>
- <map>
- <key>hash</key>
-- <string>6ab8108ea0a42e0bd462568c495e5ce5c4cdc0ff</string>
-+ <string>ba6fbc34112b1acab1c8615dcd13de983f3678d3</string>
- <key>hash_algorithm</key>
- <string>sha1</string>
- <key>url</key>
-- <string>https://github.com/secondlife/3p-libxml2/releases/download/v2.13.3-r1/libxml2-2.13.3-r1-linux64-10329675166.tar.zst</string>
-+ <string>https://github.com/secondlife/3p-libxml2/releases/download/v2.13.5-r2/libxml2-2.13.5-r2-linux64-13246071272.tar.zst</string>
- </map>
- <key>name</key>
- <string>linux64</string>
-@@ -109,18 +109,18 @@
- <key>archive</key>
- <map>
- <key>hash</key>
-- <string>5181bd267de3ad4466227f91c7e2cbed7e8b85d9</string>
-+ <string>71968c4b621636e8ae0c5680e631f4aa67561944</string>
- <key>hash_algorithm</key>
- <string>sha1</string>
- <key>url</key>
-- <string>https://github.com/secondlife/3p-libxml2/releases/download/v2.13.3-r1/libxml2-2.13.3-r1-windows64-10329675166.tar.zst</string>
-+ <string>https://github.com/secondlife/3p-libxml2/releases/download/v2.13.5-r2/libxml2-2.13.5-r2-windows64-13246071272.tar.zst</string>
- </map>
- <key>name</key>
- <string>windows64</string>
- </map>
- </map>
- <key>version</key>
-- <string>2.13.3-r1</string>
-+ <string>2.13.5-r2</string>
- </map>
- <key>minizip-ng</key>
- <map>
-@@ -143,11 +143,11 @@
- <key>archive</key>
- <map>
- <key>hash</key>
-- <string>6bedaa9d770ef0ae6147f49a26fc3209fde9cb80</string>
-+ <string>b628d088e1f368a0cd51a6b66292aaf9a025e2d4</string>
- <key>hash_algorithm</key>
- <string>sha1</string>
- <key>url</key>
-- <string>https://github.com/secondlife/3p-minizip-ng/releases/download/v4.0.7-r1/minizip_ng-4.0.7-r1-darwin64-10324657515.tar.zst</string>
-+ <string>https://github.com/secondlife/3p-minizip-ng/releases/download/v4.0.7-r3/minizip_ng-4.0.7-r3-darwin64-13246046977.tar.zst</string>
- </map>
- <key>name</key>
- <string>darwin64</string>
-@@ -157,11 +157,11 @@
- <key>archive</key>
- <map>
- <key>hash</key>
-- <string>ce2c91b8c4f89af252ce1b6a96af6985fe54f509</string>
-+ <string>492ce9175b730d43df63821c4481685e035af623</string>
- <key>hash_algorithm</key>
- <string>sha1</string>
- <key>url</key>
-- <string>https://github.com/secondlife/3p-minizip-ng/releases/download/v4.0.7-r1/minizip_ng-4.0.7-r1-linux64-10324657515.tar.zst</string>
-+ <string>https://github.com/secondlife/3p-minizip-ng/releases/download/v4.0.7-r3/minizip_ng-4.0.7-r3-linux64-13246046977.tar.zst</string>
- </map>
- <key>name</key>
- <string>linux64</string>
-@@ -171,18 +171,18 @@
- <key>archive</key>
- <map>
- <key>hash</key>
-- <string>9cee9d85f9a7c6fb051125775f0122a926da5cc9</string>
-+ <string>58773e707ff3490822b7b8217d7729ade2186632</string>
- <key>hash_algorithm</key>
- <string>sha1</string>
- <key>url</key>
-- <string>https://github.com/secondlife/3p-minizip-ng/releases/download/v4.0.7-r1/minizip_ng-4.0.7-r1-windows64-10324657515.tar.zst</string>
-+ <string>https://github.com/secondlife/3p-minizip-ng/releases/download/v4.0.7-r3/minizip_ng-4.0.7-r3-windows64-13246046977.tar.zst</string>
- </map>
- <key>name</key>
- <string>windows64</string>
- </map>
- </map>
- <key>version</key>
-- <string>4.0.7-r1</string>
-+ <string>4.0.7-r3</string>
- </map>
- <key>zlib-ng</key>
- <map>
-@@ -205,11 +205,11 @@
- <key>archive</key>
- <map>
- <key>hash</key>
-- <string>3a6593c71c59ace76d1349483759fcde4b719a76</string>
-+ <string>e363e3b889c52fda7601d7aeaa9832307034651e</string>
- <key>hash_algorithm</key>
- <string>sha1</string>
- <key>url</key>
-- <string>https://github.com/secondlife/3p-zlib-ng/releases/download/v2.2.1-r2/zlib_ng-2.2.1-r2-darwin64-10324415171.tar.zst</string>
-+ <string>https://github.com/secondlife/3p-zlib-ng/releases/download/v2.2.3-r1/zlib_ng-2.2.3-dev0.g8aa13e3.d20250206-darwin64-13183604450.tar.zst</string>
- </map>
- <key>name</key>
- <string>darwin64</string>
-@@ -219,11 +219,11 @@
- <key>archive</key>
- <map>
- <key>hash</key>
-- <string>fbadeb0b8c771cb06c0055c9fab6d40c6764dacd</string>
-+ <string>3cdd52f7fb3691789d50f0b40ed6f5642321ff32</string>
- <key>hash_algorithm</key>
- <string>sha1</string>
- <key>url</key>
-- <string>https://github.com/secondlife/3p-zlib-ng/releases/download/v2.2.1-r2/zlib_ng-2.2.1-r2-linux64-10324415171.tar.zst</string>
-+ <string>https://github.com/secondlife/3p-zlib-ng/releases/download/v2.2.3-r1/zlib_ng-2.2.3-dev0.g8aa13e3.d20250206-linux64-13183604450.tar.zst</string>
- </map>
- <key>name</key>
- <string>linux64</string>
-@@ -233,18 +233,18 @@
- <key>archive</key>
- <map>
- <key>hash</key>
-- <string>0094031715662be626f5106ff6c814f4fc3dacfa</string>
-+ <string>e802a28139328bb2421ad39e13d996d350d8106d</string>
- <key>hash_algorithm</key>
- <string>sha1</string>
- <key>url</key>
-- <string>https://github.com/secondlife/3p-zlib-ng/releases/download/v2.2.1-r2/zlib_ng-2.2.1-r2-windows64-10324415171.tar.zst</string>
-+ <string>https://github.com/secondlife/3p-zlib-ng/releases/download/v2.2.3-r1/zlib_ng-2.2.3-dev0.g8aa13e3.d20250206-windows64-13183604450.tar.zst</string>
- </map>
- <key>name</key>
- <string>windows64</string>
- </map>
- </map>
- <key>version</key>
-- <string>2.2.1-r2</string>
-+ <string>2.2.3-dev0.g8aa13e3.d20250206</string>
- </map>
- </map>
- <key>package_description</key>
-diff --git a/build-cmd.sh b/build-cmd.sh
-index ee706ed..df5fa53 100755
---- a/build-cmd.sh
-+++ b/build-cmd.sh
-@@ -96,7 +96,7 @@ case "$AUTOBUILD_PLATFORM" in
- then
- "build/$versub/domTest.exe" -all
- else
-- # 64 bit exe ends up in different location to 32 bit hard coded
-+ # 64 bit exe ends up in different location to 32 bit hard coded
- # path to data directory - source code suggests it looks in a dir
- # called domTestData first so we make one
- mkdir -p "$projdir/x64/Release/domTestData"
-@@ -111,7 +111,7 @@ case "$AUTOBUILD_PLATFORM" in
- libname="libcollada${collada_shortver}dom${dom_shortver}-s.lib"
- if [ "$AUTOBUILD_ADDRSIZE" = 32 ]
- then cp -a "build/$versub/$libname" "$stage"/lib/release/
-- else cp -a "$projdir/x64/Release/$libname" "$stage"/lib/release/
-+ else cp -a "$projdir/x64/Release/$libname" "$stage"/lib/release/
- fi
- ;;
-
-@@ -126,15 +126,13 @@ case "$AUTOBUILD_PLATFORM" in
- # repo root run_tests suffix
- export MACOSX_DEPLOYMENT_TARGET="$LL_BUILD_DARWIN_DEPLOY_TARGET"
-
-- opts="${TARGET_OPTS:--arch $AUTOBUILD_CONFIGURE_ARCH $LL_BUILD_RELEASE}"
-+ opts="${TARGET_OPTS:--arch arm64 -arch x86_64 $LL_BUILD_RELEASE}"
-
- nproc=$(sysctl -n hw.physicalcpu)
-
- libdir="$top/stage"
- mkdir -p "$libdir"/lib/release
-
-- make clean arch="$AUTOBUILD_CONFIGURE_ARCH" # Hide 'arch' env var
--
- # Without the -Wno-etc flag, incredible spam is produced
- make \
- conf=release \
-@@ -142,7 +140,7 @@ case "$AUTOBUILD_PLATFORM" in
- CFLAGS="$opts" \
- CXXFLAGS="$opts -Wno-unused-local-typedef" \
- LDFLAGS="-Wl,-headerpad_max_install_names" \
-- arch="$AUTOBUILD_CONFIGURE_ARCH" \
-+ arch="x86_64 arm64" \
- printCommands=yes \
- printMessages=yes
-
-diff --git a/include/dae/daeArray.h b/include/dae/daeArray.h
-index 81e0fa7..941257e 100644
---- a/include/dae/daeArray.h
-+++ b/include/dae/daeArray.h
-@@ -415,7 +415,7 @@ public:
- * @param other A reference to the other array.
- * @return true if the arrays are equal, false otherwise.
- */
-- bool operator==(const daeTArray<T>& other) {
-+ bool operator==(const daeTArray<T>& other) const {
- if (getCount() != other.getCount())
- return false;
- for (size_t i = 0; i < getCount(); i++)
-diff --git a/make/common.mk b/make/common.mk
-index ea87d36..6105abc 100644
---- a/make/common.mk
-+++ b/make/common.mk
-@@ -15,12 +15,14 @@ ifeq ($(conf),debug)
- ccFlags += -g -D_DEBUG
- debugSuffix := -d
- else
--ccFlags += -O2 -DNDEBUG
-+ccFlags += -O3 -DNDEBUG
- debugSuffix :=
- endif
-
- ifeq ($(arch),x86_64)
- archsupport := -x64
-+else ifeq ($(arch),arm64)
-+archsupport := -a64
- else
- archsupport :=
- endif
-diff --git a/make/rules.mk b/make/rules.mk
-index eb55234..1b976a8 100644
---- a/make/rules.mk
-+++ b/make/rules.mk
-@@ -41,7 +41,7 @@ ifneq ($(obj),)
- # any values we use in rule commands. This is the reason for all the target-specific variables.
- $(obj): cc := $(cc)
- $(obj): ccFlags := $(ccFlags)
--$(obj): ccFlagsNoArch := $(filter-out -arch ppc ppc64 i386 x86_64,$(ccFlags))
-+$(obj): ccFlagsNoArch := $(filter-out -arch ppc ppc64 i386 x86_64 arm64,$(ccFlags))
- $(obj): includeOpts := $(includeOpts)
-
- # Call createObjRule with a source file path
-diff --git a/make/rulesC.mk b/make/rulesC.mk
-index 15b1e6a..023814d 100644
---- a/make/rulesC.mk
-+++ b/make/rulesC.mk
-@@ -52,7 +52,7 @@ ifneq ($(obj),)
- #$(obj): cc := $(cc)
- $(obj): cc := $(CC)
- $(obj): ccFlags := $(ccFlags)
--$(obj): ccFlagsNoArch := $(filter-out -arch ppc ppc64 i386 x86_64,$(ccFlags))
-+$(obj): ccFlagsNoArch := $(filter-out -arch ppc ppc64 i386 x86_64 arm64,$(ccFlags))
- $(obj): includeOpts := $(includeOpts)
-
- # Call createObjRule with a source file path
-diff --git a/src/1.4/CMakeLists.txt b/src/1.4/CMakeLists.txt
-index 17fbaea..d0d5939 100644
---- a/src/1.4/CMakeLists.txt
-+++ b/src/1.4/CMakeLists.txt
-@@ -1,10 +1,31 @@
- file(GLOB dom_files ${CMAKE_CURRENT_SOURCE_DIR}/dom/*.cpp)
--include_directories(${COLLADA14_INCLUDE_DIR})
--add_library(collada14dom SHARED ${COLLADA_BASE_SOURCES} ${dom_files})
-+add_library(collada14dom STATIC ${COLLADA_BASE_SOURCES} ${dom_files})
-+if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
-+ target_compile_options(collada14dom PRIVATE
-+ "-pedantic" "-Wno-error=unused-result" "-Wno-cast-user-defined" "-Wno-nonnull")
-+elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
-+ target_compile_options(collada14dom PRIVATE
-+ "-Wno-error=unused-result"
-+ )
-+endif()
-+target_include_directories(collada14dom PRIVATE
-+ ${colladadom_SOURCE_DIR}/include
-+ ${colladadom_SOURCE_DIR}/include/1.4
-+ ${Boost_INCLUDE_DIRS}
-+ ${LIBXML2_INCLUDE_DIRS}
-+ ${MINIZIP_INCLUDE_DIRS}
-+ ${ZLIB_INCLUDE_DIRS}
-+)
-+target_link_directories(collada14dom INTERFACE
-+ ${Boost_LIBRARY_DIRS}
-+ ${LIBXML2_LIBRARY_DIRS}
-+ ${MINIZIP_LIBRARY_DIRS}
-+ ${ZLIB_LIBRARY_DIRS}
-+)
- target_link_libraries(collada14dom ${COLLADA_LIBS})
- set_target_properties(collada14dom PROPERTIES
- COMPILE_FLAGS "${COLLADA_COMPILE_FLAGS}"
- CLEAN_DIRECT_OUTPUT 1
- SOVERSION ${COLLADA_DOM_SOVERSION}
- VERSION ${COLLADA_DOM_VERSION})
--install(TARGETS collada14dom DESTINATION lib${LIB_SUFFIX})
-+# install(TARGETS collada14dom DESTINATION ${COLLADA_DOM_LIBS_INSTALL_DIR})
-diff --git a/src/1.5/CMakeLists.txt b/src/1.5/CMakeLists.txt
-index e061a01..fb73a70 100644
---- a/src/1.5/CMakeLists.txt
-+++ b/src/1.5/CMakeLists.txt
-@@ -1,10 +1,10 @@
- file(GLOB dom_files ${CMAKE_CURRENT_SOURCE_DIR}/dom/*.cpp)
- include_directories(${COLLADA15_INCLUDE_DIR})
--add_library(collada15dom SHARED ${COLLADA_BASE_SOURCES} ${dom_files})
-+add_library(collada15dom STATIC ${COLLADA_BASE_SOURCES} ${dom_files})
- target_link_libraries(collada15dom ${COLLADA_LIBS})
- set_target_properties(collada15dom PROPERTIES
- COMPILE_FLAGS "${COLLADA_COMPILE_FLAGS}"
- CLEAN_DIRECT_OUTPUT 1
- SOVERSION ${COLLADA_DOM_SOVERSION}
- VERSION ${COLLADA_DOM_VERSION})
--install(TARGETS collada15dom DESTINATION lib${LIB_SUFFIX})
-+install(TARGETS collada15dom DESTINATION ${COLLADA_DOM_LIBS_INSTALL_DIR})
-diff --git a/src/dae/daeMetaElement.cpp b/src/dae/daeMetaElement.cpp
-index 55a57f5..5dc4657 100644
---- a/src/dae/daeMetaElement.cpp
-+++ b/src/dae/daeMetaElement.cpp
-@@ -107,8 +107,8 @@ daeMetaElement::addContentsOrder(daeInt offset)
- meaa->setOffset(offset);
- meaa->setContainer( this);
-
-- if (_metaContentsOrder)
-- delete _metaContentsOrder;
-+ if (_metaContentsOrder)
-+ delete _metaContentsOrder;
-
- _metaContentsOrder = meaa;
- }
-@@ -121,8 +121,8 @@ void daeMetaElement::addCMDataArray(daeInt offset, daeUInt numChoices)
- meaa->setOffset(offset);
- meaa->setContainer( this);
-
-- if (_metaCMData)
-- delete _metaCMData;
-+ if (_metaCMData)
-+ delete _metaCMData;
-
- _metaCMData = meaa;
-
-@@ -175,7 +175,7 @@ daeMetaElement::appendAttribute(daeMetaAttribute* attr)
- else
- _metaAttributes.append(attr);
-
-- if ((attr->getName() != NULL) &&
-+ if ((daeString(attr->getName()) != NULL) &&
- (strcmp(attr->getName(),"id") == 0)) {
- _metaID = attr;
- _isTrackableForQueries = true;
-diff --git a/src/dae/daeUtils.cpp b/src/dae/daeUtils.cpp
-index 682692c..71b1f12 100644
---- a/src/dae/daeUtils.cpp
-+++ b/src/dae/daeUtils.cpp
-@@ -19,6 +19,8 @@
-
- #ifndef NO_BOOST
- #include <boost/filesystem.hpp> // THIS WAS NOT COMMENTED.
-+#include <boost/uuid/uuid_generators.hpp>
-+#include <boost/uuid/uuid_io.hpp>
- #endif
-
- #include <cstdio> // for tmpnam
-@@ -118,7 +120,7 @@ list<string> cdom::makeStringList(const char* s, ...) {
- va_end(args);
- return result;
- }
--#endif 0
-+#endif // 0
-
- string cdom::getCurrentDir() {
- #ifdef __CELLOS_LV2__
-@@ -154,7 +156,7 @@ char cdom::getFileSeparator() {
- const string& cdom::getSystemTmpDir() {
- #ifdef WIN32
- static string tmpDir = string(getenv("TMP")) + getFileSeparator();
--#elif defined(__linux__) || defined(__linux)
-+#elif defined(__linux__) || defined(__linux) || defined(__FreeBSD__)
- static string tmpDir = "/tmp/";
- #elif defined __APPLE_CC__
- static string tmpDir = string(getenv("TMPDIR"));
-@@ -169,11 +171,16 @@ static string tmpDir = string(getenv("TMPDIR"));
- string cdom::getRandomFileName() {
- std::string randomSegment;
- // have to createa a buffer in order to make it multi-thread safe
-+#ifdef NO_BOOST
- std::string tmpbuffer; tmpbuffer.resize(L_tmpnam*2+1);
- std::string tmp(tmpnam(&tmpbuffer[0]));
-+#else
-+ boost::uuids::uuid uuid = boost::uuids::random_generator()();
-+ std::string tmp(boost::uuids::to_string(uuid));
-+#endif
- #ifdef WIN32
- randomSegment = tmp.substr(tmp.find_last_of('\\')+1);
--#elif defined(__linux__) || defined(__linux)
-+#elif defined(__linux__) || defined(__linux) || defined(__FreeBSD__)
- randomSegment = tmp.substr(tmp.find_last_of('/')+1);
- #elif defined __APPLE_CC__
- randomSegment = tmp.substr(tmp.find_last_of('/')+1);