diff options
Diffstat (limited to 'indra/cmake/LLPrimitive.cmake')
| -rw-r--r-- | indra/cmake/LLPrimitive.cmake | 57 |
1 files changed, 33 insertions, 24 deletions
diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake index 81b40cb0b5..eb1f23b2a3 100644 --- a/indra/cmake/LLPrimitive.cmake +++ b/indra/cmake/LLPrimitive.cmake @@ -18,35 +18,35 @@ if( USE_CONAN ) "${CONAN_INCLUDE_DIRS_COLLADADOM}/collada-dom/1.4/" ) endif() -if (TRUE) +if (NOT USE_FLATPAK) include(FindPkgConfig) pkg_check_modules(Minizip REQUIRED minizip) - if (${LINUX_DISTRO} MATCHES arch OR (${LINUX_DISTRO} MATCHES gentoo) OR DARWIN) + if (${LINUX_DISTRO} MATCHES arch OR (${LINUX_DISTRO} MATCHES gentoo) OR DARWIN OR WINDOWS) set(Minizip_INCLUDE_DIRS ${Minizip_INCLUDE_DIRS}/minizip) endif () 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-r10.tar.gz) + if (NOT EXISTS ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r11.tar.gz) file(DOWNLOAD - https://github.com/secondlife/3p-colladadom/archive/refs/tags/v2.3-r10.tar.gz - ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r10.tar.gz + https://github.com/secondlife/3p-colladadom/archive/refs/tags/v2.3-r11.tar.gz + ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r11.tar.gz ) endif () file(ARCHIVE_EXTRACT - INPUT ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r10.tar.gz + INPUT ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r11.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 + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r11 ) 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 + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r11 ) endif () if (WINDOWS) @@ -54,12 +54,12 @@ if (TRUE) 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-r10/src + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r11/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-r10 + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r11 ) endif () if (DARWIN) @@ -69,24 +69,33 @@ if (TRUE) elseif (WINDOWS) set(BOOST_CFLAGS -I${prefix_result}/../include) set(BOOST_LIBS -L${prefix_result}) - if ($ENV{MSYSTEM_CARCH} MATCHES aarch64) - set(BOOST_LIBRARY_SUFFIX -vc143-mt-a64-1_91) + # Detect actual toolset/version suffix from vcpkg-installed libs. + file(GLOB _boost_context_libs "${prefix_result}/boost_context-*.lib") + if (_boost_context_libs) + list(GET _boost_context_libs 0 _boost_context_lib) + get_filename_component(_boost_context_name "${_boost_context_lib}" NAME_WE) + string(REPLACE "boost_context" "" BOOST_LIBRARY_SUFFIX "${_boost_context_name}") else () - set(BOOST_LIBRARY_SUFFIX -vc143-mt-x64-1_91) + if ($ENV{MSYSTEM_CARCH} MATCHES aarch64) + set(BOOST_LIBRARY_SUFFIX -vc143-mt-a64-1_91) + else () + set(BOOST_LIBRARY_SUFFIX -vc143-mt-x64-1_91) + endif () + message(WARNING "Could not detect Boost suffix via glob in LLPrimitive; using fallback.") 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 + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r11/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-r10 - BINARY_DIR ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r10 + SOURCE_DIR ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r11 + BINARY_DIR ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r11 TARGET collada14dom CMAKE_FLAGS -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} @@ -106,13 +115,13 @@ if (TRUE) ) if (WINDOWS) execute_process( - COMMAND MSBuild.exe ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r10/Project.slnx -p:Configuration=${CMAKE_BUILD_TYPE} - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r10 + COMMAND MSBuild.exe ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r11/Project.slnx -p:Configuration=${CMAKE_BUILD_TYPE} + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r11 OUTPUT_VARIABLE colladadom_installed ) file(REMOVE_RECURSE ${LIBS_PREBUILT_DIR}/include/collada) file( - COPY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r10/include + COPY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r11/include DESTINATION ${LIBS_PREBUILT_DIR}/include ) file(RENAME @@ -121,13 +130,13 @@ if (TRUE) ) file(MAKE_DIRECTORY ${ARCH_PREBUILT_DIRS_RELEASE}) file(RENAME - ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r10/src/1.4/${CMAKE_BUILD_TYPE}/collada14dom.lib + ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r11/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-r10 + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r11 OUTPUT_VARIABLE colladadom_installed ) file(RENAME @@ -138,9 +147,9 @@ if (TRUE) file(WRITE ${PREBUILD_TRACKING_DIR}/colladadom_installed "${colladadom_installed}") endif () -else (TRUE) +else (NOT USE_FLATPAK) -use_system_binary( colladadom ) +#use_system_binary( colladadom ) use_prebuilt_binary(colladadom) use_prebuilt_binary(minizip-ng) # needed for colladadom @@ -166,7 +175,7 @@ if (WINDOWS) target_link_libraries( ll::libxml INTERFACE Bcrypt.lib) endif() -endif (TRUE) +endif (NOT USE_FLATPAK) target_include_directories( ll::colladadom SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/collada |
