summaryrefslogtreecommitdiff
path: root/indra/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'indra/cmake')
-rw-r--r--indra/cmake/APR.cmake5
-rw-r--r--indra/cmake/CMakeLists.txt1
-rw-r--r--indra/cmake/LLPhysicsExtensions.cmake23
-rw-r--r--indra/cmake/VHACD.cmake30
4 files changed, 48 insertions, 11 deletions
diff --git a/indra/cmake/APR.cmake b/indra/cmake/APR.cmake
index 4ce0d47f7f..22e94f2c8f 100644
--- a/indra/cmake/APR.cmake
+++ b/indra/cmake/APR.cmake
@@ -45,3 +45,8 @@ if(DARWIN)
endif()
target_include_directories(ll::apr SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/apr-1)
+
+# Fix erroneous check for __attribute__ definition introduced with APR 1.7.5, causing lots of "this declaration may not have extern 'C' linkage" errors in VS
+file(READ ${LIBS_PREBUILT_DIR}/include/apr-1/apr.h APR_HEADER_CONTENTS)
+string(REPLACE "#if !(defined(__attribute__) || defined(__has_attribute))" "#if !defined(__attribute__)" APR_HEADER_CONTENTS "${APR_HEADER_CONTENTS}")
+file(WRITE ${LIBS_PREBUILT_DIR}/include/apr-1/apr.h "${APR_HEADER_CONTENTS}")
diff --git a/indra/cmake/CMakeLists.txt b/indra/cmake/CMakeLists.txt
index a3233f1c6f..be1e9008e5 100644
--- a/indra/cmake/CMakeLists.txt
+++ b/indra/cmake/CMakeLists.txt
@@ -61,6 +61,7 @@ set(cmake_SOURCE_FILES
UI.cmake
UnixInstall.cmake
Variables.cmake
+ VHACD.cmake
ViewerMiscLibs.cmake
VisualLeakDetector.cmake
LibVLCPlugin.cmake
diff --git a/indra/cmake/LLPhysicsExtensions.cmake b/indra/cmake/LLPhysicsExtensions.cmake
index f9870e4a28..84722b45a7 100644
--- a/indra/cmake/LLPhysicsExtensions.cmake
+++ b/indra/cmake/LLPhysicsExtensions.cmake
@@ -29,17 +29,18 @@ if (HAVOK)
#target_link_libraries( llphysicsextensions_impl INTERFACE llphysicsextensionsstub)
else()
target_link_libraries( llphysicsextensions_impl INTERFACE llphysicsextensions)
+ target_compile_definitions( llphysicsextensions_impl INTERFACE LL_HAVOK=1 )
endif()
+ target_include_directories( llphysicsextensions_impl INTERFACE ${LIBS_PREBUILT_DIR}/include/llphysicsextensions)
elseif (HAVOK_TPV)
use_prebuilt_binary(llphysicsextensions_tpv)
- if (CMAKE_OSX_ARCHITECTURES MATCHES x86_64)
- target_link_directories( llphysicsextensions_impl INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE} )
- endif ()
- target_link_libraries( llphysicsextensions_impl INTERFACE llphysicsextensions_tpv)
-else (HAVOK)
- use_prebuilt_binary(llphysicsextensions_stub)
- set(LLPHYSICSEXTENSIONS_SRC_DIR ${LIBS_PREBUILT_DIR}/llphysicsextensions/stub)
- target_link_libraries( llphysicsextensions_impl INTERFACE llphysicsextensionsstub)
-endif (HAVOK)
-
-target_include_directories( llphysicsextensions_impl INTERFACE ${LIBS_PREBUILT_DIR}/include/llphysicsextensions)
+ if (NOT DARWIN)
+ if(WINDOWS)
+ target_link_libraries( llphysicsextensions_impl INTERFACE ${ARCH_PREBUILT_DIRS}/llphysicsextensions_tpv.lib)
+ elseif(LINUX)
+ target_link_libraries( llphysicsextensions_impl INTERFACE ${ARCH_PREBUILT_DIRS}/libllphysicsextensions_tpv.a)
+ endif()
+ target_compile_definitions( llphysicsextensions_impl INTERFACE LL_HAVOK=1 )
+ endif()
+ target_include_directories( llphysicsextensions_impl INTERFACE ${LIBS_PREBUILT_DIR}/include/llphysicsextensions)
+endif ()
diff --git a/indra/cmake/VHACD.cmake b/indra/cmake/VHACD.cmake
new file mode 100644
index 0000000000..b368fe28e0
--- /dev/null
+++ b/indra/cmake/VHACD.cmake
@@ -0,0 +1,30 @@
+# -*- cmake -*-
+include(Prebuilt)
+
+add_library(ll::vhacd INTERFACE IMPORTED)
+
+if (FALSE)
+use_system_binary(vhacd)
+use_prebuilt_binary(vhacd)
+
+elseif (NOT (${LINUX_DISTRO} MATCHES fedora))
+ if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/vhacd_installed OR NOT ${vhacd_installed} EQUAL 0)
+ if (NOT EXISTS ${CMAKE_BINARY_DIR}/v-hacd-4.1.0.tar.gz)
+ file(DOWNLOAD
+ https://github.com/kmammou/v-hacd/archive/refs/tags/v4.1.0.tar.gz
+ ${CMAKE_BINARY_DIR}/v-hacd-4.1.0.tar.gz
+ )
+ endif ()
+ file(ARCHIVE_EXTRACT
+ INPUT ${CMAKE_BINARY_DIR}/v-hacd-4.1.0.tar.gz
+ DESTINATION ${CMAKE_BINARY_DIR}
+ )
+ file(MAKE_DIRECTORY ${LIBS_PREBUILT_DIR}/include/vhacd)
+ file(
+ COPY ${CMAKE_BINARY_DIR}/v-hacd-4.1.0/include/VHACD.h
+ DESTINATION ${LIBS_PREBUILT_DIR}/include/vhacd
+ )
+ file(WRITE ${PREBUILD_TRACKING_DIR}/vhacd_installed "0")
+ endif ()
+target_include_directories(ll::vhacd SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/vhacd/)
+endif ()