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 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 +++-- patches/collada-dom-v2.3-r7.patch | 122 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 142 insertions(+), 30 deletions(-) delete mode 100644 indra/cmake/DepsBuild.cmake create mode 100644 patches/collada-dom-v2.3-r7.patch 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 diff --git a/patches/collada-dom-v2.3-r7.patch b/patches/collada-dom-v2.3-r7.patch new file mode 100644 index 0000000000..485693ec7a --- /dev/null +++ b/patches/collada-dom-v2.3-r7.patch @@ -0,0 +1,122 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b1c1993..9df2dee 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,14 +1,35 @@ +-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) ++project(colladadom) ++cmake_minimum_required(VERSION 3.17) ++ ++include(FindPkgConfig) ++ ++pkg_check_modules(LIBXML2 libxml-2.0) ++pkg_check_modules(MINIZIP minizip-ng) ++pkg_check_modules(ZLIB zlib) ++ ++set(COLLADA_DOM_SOVERSION "2") ++set(COLLADA_DOM_VERSION "2.3") ++set(COLLADA_DOM_INCLUDE_INSTALL_DIR ++ ${CMAKE_BINARY_DIR}/packages/include/collada ++) ++set(COLLADA_DOM_LIBS_INSTALL_DIR ++ ${CMAKE_BINARY_DIR}/packages/lib ++) ++file(MAKE_DIRECTORY ++ ${COLLADA_DOM_INCLUDE_INSTALL_DIR}/1.4 ++ ${COLLADA_DOM_INCLUDE_INSTALL_DIR}/1.5 ++ ${COLLADA_DOM_LIBS_INSTALL_DIR} ++) ++ + 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}) ++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) +diff --git a/src/1.4/CMakeLists.txt b/src/1.4/CMakeLists.txt +index 17fbaea..a5f0b51 100644 +--- a/src/1.4/CMakeLists.txt ++++ b/src/1.4/CMakeLists.txt +@@ -1,10 +1,21 @@ + 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}) ++target_include_directories(collada14dom PRIVATE ++ ${colladadom_SOURCE_DIR}/include ++ ${colladadom_SOURCE_DIR}/include/1.4 ++ ${LIBXML2_INCLUDE_DIRS} ++ ${MINIZIP_INCLUDE_DIRS} ++ ${ZLIB_INCLUDE_DIRS} ++) ++target_link_directories(collada14dom INTERFACE ++ ${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/daeUtils.cpp b/src/dae/daeUtils.cpp +index 682692c..0e61ef1 100644 +--- a/src/dae/daeUtils.cpp ++++ b/src/dae/daeUtils.cpp +@@ -118,7 +118,7 @@ list cdom::makeStringList(const char* s, ...) { + va_end(args); + return result; + } +-#endif 0 ++#endif // 0 + + string cdom::getCurrentDir() { + #ifdef __CELLOS_LV2__ +@@ -154,7 +154,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")); +@@ -173,7 +173,7 @@ string cdom::getRandomFileName() { + std::string tmp(tmpnam(&tmpbuffer[0])); + #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); -- cgit v1.2.3 From 68a3c60cfec78ae8b6d2477cc4220ad3892b08a4 Mon Sep 17 00:00:00 2001 From: Hiroo Ono Date: Mon, 2 Sep 2024 22:50:37 +0900 Subject: Fix build. * check for minizip (not minizip-ng) on Linux (Debian) * added find_package(Boost REQUIRED CONFIG) in collada-dom build for Linux and FreeBSD --- patches/collada-dom-v2.3-r7.patch | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/patches/collada-dom-v2.3-r7.patch b/patches/collada-dom-v2.3-r7.patch index 485693ec7a..b98965d986 100644 --- a/patches/collada-dom-v2.3-r7.patch +++ b/patches/collada-dom-v2.3-r7.patch @@ -1,21 +1,27 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index b1c1993..9df2dee 100644 +index b1c1993..3cbf2fb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -1,14 +1,35 @@ +@@ -1,14 +1,41 @@ -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) +project(colladadom) +cmake_minimum_required(VERSION 3.17) ++cmake_policy(SET CMP0167 NEW) + +include(FindPkgConfig) + ++find_package(Boost REQUIRED CONFIG) +pkg_check_modules(LIBXML2 libxml-2.0) -+pkg_check_modules(MINIZIP minizip-ng) ++if(LINUX) ++ pkg_check_modules(MINIZIP minizip) ++else(LINUX) ++ pkg_check_modules(MINIZIP minizip-ng) ++endif(LINUX) +pkg_check_modules(ZLIB zlib) + -+set(COLLADA_DOM_SOVERSION "2") ++set(COLLADA_DOM_SOVERSION "0") +set(COLLADA_DOM_VERSION "2.3") +set(COLLADA_DOM_INCLUDE_INSTALL_DIR + ${CMAKE_BINARY_DIR}/packages/include/collada -- cgit v1.2.3 From 6c24e7833f10a20dfbd83610104dae0188b732c0 Mon Sep 17 00:00:00 2001 From: Hiroo Ono Date: Tue, 3 Sep 2024 14:12:04 +0900 Subject: added Boost include directory to the target collada14dom. added -Wno-error=unused-result to the target collada14dom. --- patches/collada-dom-v2.3-r7.patch | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/patches/collada-dom-v2.3-r7.patch b/patches/collada-dom-v2.3-r7.patch index b98965d986..fce2b934d1 100644 --- a/patches/collada-dom-v2.3-r7.patch +++ b/patches/collada-dom-v2.3-r7.patch @@ -1,5 +1,5 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index b1c1993..3cbf2fb 100644 +index b1c1993..7bd70d4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,14 +1,41 @@ @@ -43,29 +43,34 @@ index b1c1993..3cbf2fb 100644 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}) ++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) diff --git a/src/1.4/CMakeLists.txt b/src/1.4/CMakeLists.txt -index 17fbaea..a5f0b51 100644 +index 17fbaea..8df5462 100644 --- a/src/1.4/CMakeLists.txt +++ b/src/1.4/CMakeLists.txt -@@ -1,10 +1,21 @@ +@@ -1,10 +1,26 @@ 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}) ++target_compile_options(collada14dom PRIVATE ++ "-Wno-error=unused-result" ++) +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} -- cgit v1.2.3 From cd4e9098c148dd35002c167fde7febc02849c86a Mon Sep 17 00:00:00 2001 From: Hiroo Ono Date: Tue, 3 Sep 2024 19:52:49 +0900 Subject: So, it was minizip, not minizip-ng. Sorry. --- patches/collada-dom-v2.3-r7.patch | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/patches/collada-dom-v2.3-r7.patch b/patches/collada-dom-v2.3-r7.patch index fce2b934d1..4c36e83891 100644 --- a/patches/collada-dom-v2.3-r7.patch +++ b/patches/collada-dom-v2.3-r7.patch @@ -1,8 +1,8 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index b1c1993..7bd70d4 100644 +index b1c1993..d9787be 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -1,14 +1,41 @@ +@@ -1,14 +1,37 @@ -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) @@ -14,11 +14,7 @@ index b1c1993..7bd70d4 100644 + +find_package(Boost REQUIRED CONFIG) +pkg_check_modules(LIBXML2 libxml-2.0) -+if(LINUX) -+ pkg_check_modules(MINIZIP minizip) -+else(LINUX) -+ pkg_check_modules(MINIZIP minizip-ng) -+endif(LINUX) ++pkg_check_modules(MINIZIP minizip) +pkg_check_modules(ZLIB zlib) + +set(COLLADA_DOM_SOVERSION "0") -- cgit v1.2.3 From bfd4d03908464373f7d2cab747d73d24b516a09c Mon Sep 17 00:00:00 2001 From: secretfoxtail Date: Wed, 4 Sep 2024 00:18:55 -0600 Subject: Window_Background adjustment Add some more disctinction between titlebar and rest of window. --- .../default/textures/windows/Window_Background.png | Bin 7708 -> 8603 bytes .../default/textures/windows/Window_Foreground.png | Bin 8056 -> 9175 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/indra/newview/skins/default/textures/windows/Window_Background.png b/indra/newview/skins/default/textures/windows/Window_Background.png index 83b45f9343..21149351c8 100644 Binary files a/indra/newview/skins/default/textures/windows/Window_Background.png and b/indra/newview/skins/default/textures/windows/Window_Background.png differ diff --git a/indra/newview/skins/default/textures/windows/Window_Foreground.png b/indra/newview/skins/default/textures/windows/Window_Foreground.png index db4b58916f..4a64fd468a 100644 Binary files a/indra/newview/skins/default/textures/windows/Window_Foreground.png and b/indra/newview/skins/default/textures/windows/Window_Foreground.png differ -- cgit v1.2.3 From faf303b4100ac2f3143e7c1f72130c3ff569a8c7 Mon Sep 17 00:00:00 2001 From: Hiroo Ono Date: Thu, 5 Sep 2024 02:45:22 +0900 Subject: Comment out 'install' lines in collada-dom' CMakeLists.txt, because we do not really use what is 'installed', but use what is there before installing. This should fix the build on Ubuntu. --- patches/collada-dom-v2.3-r7.patch | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/patches/collada-dom-v2.3-r7.patch b/patches/collada-dom-v2.3-r7.patch index 4c36e83891..a8d2687f8c 100644 --- a/patches/collada-dom-v2.3-r7.patch +++ b/patches/collada-dom-v2.3-r7.patch @@ -1,14 +1,13 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index b1c1993..d9787be 100644 +index b1c1993..cdcba63 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -1,14 +1,37 @@ +@@ -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) +project(colladadom) +cmake_minimum_required(VERSION 3.17) -+cmake_policy(SET CMP0167 NEW) + +include(FindPkgConfig) + @@ -19,17 +18,6 @@ index b1c1993..d9787be 100644 + +set(COLLADA_DOM_SOVERSION "0") +set(COLLADA_DOM_VERSION "2.3") -+set(COLLADA_DOM_INCLUDE_INSTALL_DIR -+ ${CMAKE_BINARY_DIR}/packages/include/collada -+) -+set(COLLADA_DOM_LIBS_INSTALL_DIR -+ ${CMAKE_BINARY_DIR}/packages/lib -+) -+file(MAKE_DIRECTORY -+ ${COLLADA_DOM_INCLUDE_INSTALL_DIR}/1.4 -+ ${COLLADA_DOM_INCLUDE_INSTALL_DIR}/1.5 -+ ${COLLADA_DOM_LIBS_INSTALL_DIR} -+) + file(GLOB dae_files ${CMAKE_CURRENT_SOURCE_DIR}/src/dae/*.cpp) file(GLOB libxmlplugin_files ${CMAKE_CURRENT_SOURCE_DIR}/src/modules/LIBXMLPlugin/*.cpp) @@ -45,8 +33,22 @@ index b1c1993..d9787be 100644 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/src/1.4/CMakeLists.txt b/src/1.4/CMakeLists.txt -index 17fbaea..8df5462 100644 +index 17fbaea..93b8256 100644 --- a/src/1.4/CMakeLists.txt +++ b/src/1.4/CMakeLists.txt @@ -1,10 +1,26 @@ @@ -78,7 +80,7 @@ index 17fbaea..8df5462 100644 SOVERSION ${COLLADA_DOM_SOVERSION} VERSION ${COLLADA_DOM_VERSION}) -install(TARGETS collada14dom DESTINATION lib${LIB_SUFFIX}) -+install(TARGETS collada14dom DESTINATION ${COLLADA_DOM_LIBS_INSTALL_DIR}) ++# 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 -- cgit v1.2.3 From a160ac9d8531f1702ad60a196d0d1914a0f683b9 Mon Sep 17 00:00:00 2001 From: Erik Kundiman Date: Thu, 5 Sep 2024 08:22:32 +0800 Subject: Get colladadom 2.3 build method to work on Fedora --- README.md | 2 +- patches/collada-dom-v2.3-r7.patch | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b27bb1f459..517ed9050b 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,7 @@ $ megapahit ### Fedora ``` -$ sudo dnf install cmake gcc-c++ patchelf apr-util-devel boost-devel collada-dom-devel expat-devel fltk-devel mesa-libGLU-devel hunspell-devel libnghttp2-devel nanosvg-devel openjpeg-devel pipewire-devel pulseaudio-libs-devel SDL2-devel uriparser-devel vlc-devel libvorbis-devel xmlrpc-epi-devel xxhash-devel +$ sudo dnf install cmake gcc-c++ patchelf apr-util-devel boost-devel collada-dom-devel expat-devel fltk-devel mesa-libGLU-devel hunspell-devel minizip-ng-compat-devel libnghttp2-devel nanosvg-devel openjpeg-devel pipewire-devel pulseaudio-libs-devel SDL2-devel uriparser-devel vlc-devel libvorbis-devel xmlrpc-epi-devel xxhash-devel $ export LL_BUILD="-O3 -std=c++17 -fPIC -DLL_LINUX=1" $ cmake -DCMAKE_BUILD_TYPE:STRING=Release -DADDRESS_SIZE:INTERNAL=64 -DUSESYSTEMLIBS:BOOL=ON -DUSE_OPENAL:BOOL=OFF -DUSE_FMODSTUDIO:BOOL=ON -DLL_TESTS:BOOL=OFF -DNDOF:BOOL=ON -DROOT_PROJECT_NAME:STRING=Megapahit -DVIEWER_CHANNEL:STRING=Megapahit -DVIEWER_BINARY_NAME:STRING=megapahit -DBUILD_SHARED_LIBS:BOOL=OFF -DINSTALL:BOOL=ON -DPACKAGE:BOOL=ON ../indra $ make -j`nproc` diff --git a/patches/collada-dom-v2.3-r7.patch b/patches/collada-dom-v2.3-r7.patch index a8d2687f8c..dc603d8af4 100644 --- a/patches/collada-dom-v2.3-r7.patch +++ b/patches/collada-dom-v2.3-r7.patch @@ -57,7 +57,7 @@ index 17fbaea..93b8256 100644 -add_library(collada14dom SHARED ${COLLADA_BASE_SOURCES} ${dom_files}) +add_library(collada14dom STATIC ${COLLADA_BASE_SOURCES} ${dom_files}) +target_compile_options(collada14dom PRIVATE -+ "-Wno-error=unused-result" ++ "-Wno-error=unused-result" "-Wno-cast-user-defined" +) +target_include_directories(collada14dom PRIVATE + ${colladadom_SOURCE_DIR}/include -- cgit v1.2.3 From 3c760b9da437a0b8a99e77d9e60493036ce16b0c Mon Sep 17 00:00:00 2001 From: Erik Kundiman Date: Sat, 7 Sep 2024 08:43:44 +0800 Subject: BSD/Linux can use the same dae loader construction Also add explicit minizip, pcre, and xml2 development packages in Debian/Ubuntu instructions. --- README.md | 4 ++-- indra/llprimitive/lldaeloader.cpp | 8 -------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 517ed9050b..b0173ca2fd 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ $ open newview/Megapahit.app ### Debian ``` -$ sudo apt install cmake pkg-config libxml2-utils libalut-dev libaprutil1-dev libboost-fiber1.81-dev libboost-json1.81-dev libboost-program-options1.81-dev libboost-regex1.81-dev libcollada-dom-dev libexpat1-dev libfltk1.3-dev libfontconfig-dev libfreetype-dev libglu1-mesa-dev libhunspell-dev libjpeg-dev libmeshoptimizer-dev libnghttp2-dev libpipewire-0.3-dev libpng-dev libsdl2-dev liburiparser-dev libvlc-dev libvlccore-dev libvorbis-dev libxft-dev libxmlrpc-epi-dev libxxhash-dev +$ sudo apt install cmake pkg-config libxml2-utils libalut-dev libaprutil1-dev libboost-fiber1.81-dev libboost-json1.81-dev libboost-program-options1.81-dev libboost-regex1.81-dev libcollada-dom-dev libexpat1-dev libfltk1.3-dev libfontconfig-dev libfreetype-dev libglu1-mesa-dev libhunspell-dev libjpeg-dev libmeshoptimizer-dev libminizip-dev libnghttp2-dev libpcre3-dev libpipewire-0.3-dev libpng-dev libsdl2-dev liburiparser-dev libvlc-dev libvlccore-dev libvorbis-dev libxft-dev libxml2-dev libxmlrpc-epi-dev libxxhash-dev $ export LL_BUILD="-O3 -std=c++17 -fPIC -DLL_LINUX=1" $ cmake -DCMAKE_BUILD_TYPE:STRING=Release -DADDRESS_SIZE:INTERNAL=64 -DUSESYSTEMLIBS:BOOL=ON -DUSE_OPENAL:BOOL=ON -DUSE_FMODSTUDIO:BOOL=OFF -DLL_TESTS:BOOL=OFF -DNDOF:BOOL=ON -DROOT_PROJECT_NAME:STRING=Megapahit -DVIEWER_CHANNEL:STRING=Megapahit -DVIEWER_BINARY_NAME:STRING=megapahit -DBUILD_SHARED_LIBS:BOOL=OFF -DINSTALL:BOOL=ON -DPACKAGE:BOOL=ON ../indra $ make -j`nproc` @@ -61,7 +61,7 @@ $ megapahit ### Ubuntu ``` -$ sudo apt install cmake pkg-config libxml2-utils libaprutil1-dev libboost-fiber-dev libboost-json-dev libboost-program-options-dev libboost-regex-dev libcollada-dom-dev libexpat1-dev libfltk1.3-dev libfontconfig-dev libfreetype-dev libglu1-mesa-dev libhunspell-dev libjpeg-dev libmeshoptimizer-dev libnanosvg-dev libnghttp2-dev libpipewire-0.3-dev libpng-dev libsdl2-dev liburiparser-dev libvlc-dev libvlccore-dev libvorbis-dev libxft-dev libxmlrpc-epi-dev libxxhash-dev +$ sudo apt install cmake pkg-config libxml2-utils libaprutil1-dev libboost-fiber-dev libboost-json-dev libboost-program-options-dev libboost-regex-dev libcollada-dom-dev libexpat1-dev libfltk1.3-dev libfontconfig-dev libfreetype-dev libglu1-mesa-dev libhunspell-dev libjpeg-dev libmeshoptimizer-dev libminizip-dev libnanosvg-dev libnghttp2-dev libpcre3-dev libpipewire-0.3-dev libpng-dev libsdl2-dev liburiparser-dev libvlc-dev libvlccore-dev libvorbis-dev libxft-dev libxml2-dev libxmlrpc-epi-dev libxxhash-dev $ export LL_BUILD="-O3 -std=c++17 -fPIC -DLL_LINUX=1" $ cmake -DCMAKE_BUILD_TYPE:STRING=Release -DADDRESS_SIZE:INTERNAL=64 -DUSESYSTEMLIBS:BOOL=ON -DUSE_OPENAL:BOOL=OFF -DUSE_FMODSTUDIO:BOOL=ON -DLL_TESTS:BOOL=OFF -DNDOF:BOOL=ON -DROOT_PROJECT_NAME:STRING=Megapahit -DVIEWER_CHANNEL:STRING=Megapahit -DVIEWER_BINARY_NAME:STRING=megapahit -DBUILD_SHARED_LIBS:BOOL=OFF -DINSTALL:BOOL=ON -DPACKAGE:BOOL=ON ../indra $ make -j`nproc` diff --git a/indra/llprimitive/lldaeloader.cpp b/indra/llprimitive/lldaeloader.cpp index 56bf91bc22..43fb043363 100644 --- a/indra/llprimitive/lldaeloader.cpp +++ b/indra/llprimitive/lldaeloader.cpp @@ -941,20 +941,12 @@ bool LLDAELoader::OpenFile(const std::string& filename) domCOLLADA* dom; if (mPreprocessDAE) { -#if __FreeBSD__ || (LL_USESYSTEMLIBS && LL_LINUX) - dom = static_cast(dae.openFromMemory(uri_filename, preprocessDAE(filename).c_str())); -#else dom = dae.openFromMemory(uri_filename, preprocessDAE(filename).c_str()); -#endif } else { LL_INFOS() << "Skipping dae preprocessing" << LL_ENDL; -#if __FreeBSD__ || (LL_USESYSTEMLIBS && LL_LINUX) - dom = static_cast(dae.open(uri_filename)); -#else dom = dae.open(uri_filename); -#endif } if (!dom) -- cgit v1.2.3 From 3aacb2ec3f49d82e99af516bef4cd547f55dc3e0 Mon Sep 17 00:00:00 2001 From: Erik Kundiman Date: Sat, 7 Sep 2024 17:43:34 +0800 Subject: Make colladadom 2.3 build on Ubuntu 24.04.1 GCC 13 --- patches/collada-dom-v2.3-r7.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patches/collada-dom-v2.3-r7.patch b/patches/collada-dom-v2.3-r7.patch index dc603d8af4..f80a42580e 100644 --- a/patches/collada-dom-v2.3-r7.patch +++ b/patches/collada-dom-v2.3-r7.patch @@ -57,7 +57,7 @@ index 17fbaea..93b8256 100644 -add_library(collada14dom SHARED ${COLLADA_BASE_SOURCES} ${dom_files}) +add_library(collada14dom STATIC ${COLLADA_BASE_SOURCES} ${dom_files}) +target_compile_options(collada14dom PRIVATE -+ "-Wno-error=unused-result" "-Wno-cast-user-defined" ++ "-Wno-error=unused-result" "-Wno-cast-user-defined" "-Wno-nonnull" +) +target_include_directories(collada14dom PRIVATE + ${colladadom_SOURCE_DIR}/include -- cgit v1.2.3