From 08113620404175754e5154c90c743f3c9b1330b8 Mon Sep 17 00:00:00 2001 From: Hiroo Ono Date: Sun, 1 Sep 2024 01:33:17 +0900 Subject: Build private static collada-dom library for Linux and FreeBSD. Clone the repository by git and make it a cmake submodule. --- indra/cmake/DepsBuild.cmake | 17 +++++++++++++++++ indra/cmake/LLPrimitive.cmake | 2 ++ indra/llprimitive/CMakeLists.txt | 16 ++++++++++++++++ 3 files changed, 35 insertions(+) create mode 100644 indra/cmake/DepsBuild.cmake (limited to 'indra') diff --git a/indra/cmake/DepsBuild.cmake b/indra/cmake/DepsBuild.cmake new file mode 100644 index 0000000000..f4d80e9a67 --- /dev/null +++ b/indra/cmake/DepsBuild.cmake @@ -0,0 +1,17 @@ +# -*- cmake -*- +find_program(GIT git) + +macro( checkout_deps_repository DEPSREPO DEPSDIR DEPSTAG) + execute_process( + COMMAND ${GIT} "clone" ${DEPSREPO} ${DEPSDIR} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/../.. + ) + execute_process( + COMMAND ${GIT} "checkout" ${DEPSTAG} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/../../${DEPSDIR} + ) + execute_process( + COMMAND ${GIT} "pull" + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/../../${DEPSDIR} + ) +endmacro( checkout_deps_repository ) diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake index 216f4d574a..6f14c04efc 100644 --- a/indra/cmake/LLPrimitive.cmake +++ b/indra/cmake/LLPrimitive.cmake @@ -19,6 +19,7 @@ if( USE_CONAN ) endif() if(LINUX OR CMAKE_SYSTEM_NAME MATCHES FreeBSD ) +if(FALSE) include(FindPkgConfig) pkg_check_modules(Colladadom REQUIRED collada-dom) target_compile_definitions( ll::colladadom INTERFACE COLLADA_DOM_SUPPORT141 ) @@ -26,6 +27,7 @@ if(LINUX OR CMAKE_SYSTEM_NAME MATCHES FreeBSD ) target_link_directories( ll::colladadom INTERFACE ${Colladadom_LIBRARY_DIRS} ) target_link_libraries( ll::colladadom INTERFACE ${Colladadom_LIBRARIES} ) return () +endif(FALSE) endif(LINUX OR CMAKE_SYSTEM_NAME MATCHES FreeBSD ) if( USESYSTEMLIBS ) diff --git a/indra/llprimitive/CMakeLists.txt b/indra/llprimitive/CMakeLists.txt index dea85f8f4f..985c15b99f 100644 --- a/indra/llprimitive/CMakeLists.txt +++ b/indra/llprimitive/CMakeLists.txt @@ -3,6 +3,7 @@ project(llprimitive) include(00-Common) +include(DepsBuild) include(LLCommon) include(LLCoreHttp) include(LLPhysicsExtensions) @@ -11,6 +12,21 @@ include(GLH) include(GLM) include(TinyGLTF) +if(LINUX OR CMAKE_SYSTEM_NAME MATCHES FreeBSD ) + checkout_deps_repository( + "https://github.com/oikumene/3p-colladadom-test.git" + "collada-dom" "v2.3-r7-megapahit" + ) + set(OPT_COLLADA14 TRUE) + add_subdirectory(${CMAKE_SOURCE_DIR}/../../collada-dom "collada-dom") + target_include_directories( + ll::colladadom INTERFACE + ${colladadom_SOURCE_DIR}/include + ${colladadom_SOURCE_DIR}/include/1.4 + ) + target_link_libraries( ll::colladadom INTERFACE collada14dom ) +endif(LINUX OR CMAKE_SYSTEM_NAME MATCHES FreeBSD ) + set(llprimitive_SOURCE_FILES lldaeloader.cpp llgltfloader.cpp -- cgit v1.2.3 From ea9ff01bbc249751f7366607d796353784daaf69 Mon Sep 17 00:00:00 2001 From: Hiroo Ono Date: Sun, 1 Sep 2024 21:17:05 +0900 Subject: Build and link collada-dom v2.3-r7 taken from Linden Lab's 3rd party software repository. --- indra/cmake/DepsBuild.cmake | 17 ----------------- indra/cmake/LLPrimitive.cmake | 8 -------- indra/cmake/Prebuilt.cmake | 11 +++++++++++ indra/llprimitive/CMakeLists.txt | 14 +++++++++----- 4 files changed, 20 insertions(+), 30 deletions(-) delete mode 100644 indra/cmake/DepsBuild.cmake (limited to 'indra') diff --git a/indra/cmake/DepsBuild.cmake b/indra/cmake/DepsBuild.cmake deleted file mode 100644 index f4d80e9a67..0000000000 --- a/indra/cmake/DepsBuild.cmake +++ /dev/null @@ -1,17 +0,0 @@ -# -*- cmake -*- -find_program(GIT git) - -macro( checkout_deps_repository DEPSREPO DEPSDIR DEPSTAG) - execute_process( - COMMAND ${GIT} "clone" ${DEPSREPO} ${DEPSDIR} - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/../.. - ) - execute_process( - COMMAND ${GIT} "checkout" ${DEPSTAG} - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/../../${DEPSDIR} - ) - execute_process( - COMMAND ${GIT} "pull" - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/../../${DEPSDIR} - ) -endmacro( checkout_deps_repository ) diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake index 6f14c04efc..a649765720 100644 --- a/indra/cmake/LLPrimitive.cmake +++ b/indra/cmake/LLPrimitive.cmake @@ -19,15 +19,7 @@ if( USE_CONAN ) endif() if(LINUX OR CMAKE_SYSTEM_NAME MATCHES FreeBSD ) -if(FALSE) - include(FindPkgConfig) - pkg_check_modules(Colladadom REQUIRED collada-dom) - target_compile_definitions( ll::colladadom INTERFACE COLLADA_DOM_SUPPORT141 ) - target_include_directories( ll::colladadom SYSTEM INTERFACE ${Colladadom_INCLUDE_DIRS} ${Colladadom_INCLUDE_DIRS}/1.4 ) - target_link_directories( ll::colladadom INTERFACE ${Colladadom_LIBRARY_DIRS} ) - target_link_libraries( ll::colladadom INTERFACE ${Colladadom_LIBRARIES} ) return () -endif(FALSE) endif(LINUX OR CMAKE_SYSTEM_NAME MATCHES FreeBSD ) if( USESYSTEMLIBS ) diff --git a/indra/cmake/Prebuilt.cmake b/indra/cmake/Prebuilt.cmake index 8d911b339c..4034599fde 100644 --- a/indra/cmake/Prebuilt.cmake +++ b/indra/cmake/Prebuilt.cmake @@ -119,3 +119,14 @@ macro ( use_system_binary package ) endif() endmacro() +find_package(Patch) + +# Download the third party software archive and patch it. +macro(prepare_thirdparty url filename dirname patch hash) + file(DOWNLOAD ${url} ${filename} EXPECTED_HASH SHA512=${hash}) + file(ARCHIVE_EXTRACT INPUT ${filename} + DESTINATION ${CMAKE_SOURCE_DIR}/../..) + execute_process(COMMAND ${Patch_EXECUTABLE} "-p1" "-i" + ${CMAKE_SOURCE_DIR}/../patches/${patch} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/../../${dirname}) +endmacro() diff --git a/indra/llprimitive/CMakeLists.txt b/indra/llprimitive/CMakeLists.txt index 985c15b99f..19bae2112b 100644 --- a/indra/llprimitive/CMakeLists.txt +++ b/indra/llprimitive/CMakeLists.txt @@ -3,7 +3,7 @@ project(llprimitive) include(00-Common) -include(DepsBuild) +include(Prebuilt) include(LLCommon) include(LLCoreHttp) include(LLPhysicsExtensions) @@ -13,12 +13,16 @@ include(GLM) include(TinyGLTF) if(LINUX OR CMAKE_SYSTEM_NAME MATCHES FreeBSD ) - checkout_deps_repository( - "https://github.com/oikumene/3p-colladadom-test.git" - "collada-dom" "v2.3-r7-megapahit" + prepare_thirdparty( + "https://github.com/secondlife/3p-colladadom/archive/refs/tags/v2.3-r7.tar.gz" + "colladadom-v2.3-r7.tar.gz" + "3p-colladadom-2.3-r7" + "collada-dom-v2.3-r7.patch" + "0d7a13531eb0de8c617b48af90c3b5b22c2a0b566069d1a0c36f9602dbfeb9ebab1516556e6dda34645d63354c3c6539375d7e5b8c0b36baba11312d18a3c705" ) set(OPT_COLLADA14 TRUE) - add_subdirectory(${CMAKE_SOURCE_DIR}/../../collada-dom "collada-dom") + add_subdirectory( + "${CMAKE_SOURCE_DIR}/../../3p-colladadom-2.3-r7" "colladadom") target_include_directories( ll::colladadom INTERFACE ${colladadom_SOURCE_DIR}/include -- cgit v1.2.3