summaryrefslogtreecommitdiff
path: root/indra/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'indra/cmake')
-rw-r--r--indra/cmake/00-Common.cmake60
-rw-r--r--indra/cmake/APR.cmake23
-rw-r--r--indra/cmake/Audio.cmake33
-rw-r--r--indra/cmake/Boost.cmake69
-rw-r--r--indra/cmake/CEFPlugin.cmake66
-rw-r--r--indra/cmake/CMakeLists.txt3
-rw-r--r--indra/cmake/CURL.cmake106
-rw-r--r--indra/cmake/Copy3rdPartyLibs.cmake69
-rw-r--r--indra/cmake/EXPAT.cmake19
-rw-r--r--indra/cmake/FMODSTUDIO.cmake63
-rw-r--r--indra/cmake/FreeType.cmake29
-rw-r--r--indra/cmake/GLEXT.cmake9
-rw-r--r--indra/cmake/GLH.cmake4
-rw-r--r--indra/cmake/GLM.cmake13
-rw-r--r--indra/cmake/Hunspell.cmake15
-rw-r--r--indra/cmake/JPEG.cmake10
-rw-r--r--indra/cmake/LLCommon.cmake4
-rw-r--r--indra/cmake/LLPhysicsExtensions.cmake3
-rw-r--r--indra/cmake/LLPrimitive.cmake207
-rw-r--r--indra/cmake/LLWindow.cmake5
-rw-r--r--indra/cmake/LibVLCPlugin.cmake82
-rw-r--r--indra/cmake/LibraryInstall.cmake18
-rw-r--r--indra/cmake/Linking.cmake1
-rw-r--r--indra/cmake/Meshoptimizer.cmake103
-rw-r--r--indra/cmake/NDOF.cmake17
-rw-r--r--indra/cmake/NGHTTP2.cmake8
-rw-r--r--indra/cmake/NVAPI.cmake4
-rw-r--r--indra/cmake/OPENAL.cmake16
-rw-r--r--indra/cmake/OpenJPEG.cmake102
-rw-r--r--indra/cmake/OpenSSL.cmake162
-rw-r--r--indra/cmake/OpenXR.cmake24
-rw-r--r--indra/cmake/PNG.cmake4
-rw-r--r--indra/cmake/Prebuilt.cmake91
-rw-r--r--indra/cmake/Python.cmake2
-rw-r--r--indra/cmake/Tracy.cmake27
-rw-r--r--indra/cmake/UI.cmake9
-rw-r--r--indra/cmake/URIPARSER.cmake19
-rw-r--r--indra/cmake/UnixInstall.cmake22
-rw-r--r--indra/cmake/ViewerMiscLibs.cmake14
-rw-r--r--indra/cmake/VulkanGltf.cmake2
-rw-r--r--indra/cmake/WebRTC.cmake102
-rw-r--r--indra/cmake/XmlRpcEpi.cmake38
-rw-r--r--indra/cmake/ZLIBNG.cmake16
-rw-r--r--indra/cmake/xxHash.cmake8
44 files changed, 836 insertions, 865 deletions
diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
index afe20a6dd3..5cb0c23d6d 100644
--- a/indra/cmake/00-Common.cmake
+++ b/indra/cmake/00-Common.cmake
@@ -33,6 +33,16 @@ add_compile_definitions( ADDRESS_SIZE=${ADDRESS_SIZE})
# -- which we do. Without one or the other, we get a ton of Boost warnings.
add_compile_definitions(BOOST_BIND_GLOBAL_PLACEHOLDERS)
+if(CMAKE_OSX_ARCHITECTURES MATCHES arm64 OR CMAKE_SYSTEM_PROCESSOR MATCHES aarch64)
+add_compile_definitions(GLM_FORCE_DEFAULT_ALIGNED_GENTYPES=1 GLM_FORCE_NEON=1 GLM_ENABLE_EXPERIMENTAL=1)
+elseif($ENV{MSYSTEM_CARCH} MATCHES aarch64)
+add_compile_definitions(GLM_FORCE_DEFAULT_ALIGNED_GENTYPES=1 GLM_ENABLE_EXPERIMENTAL=1)
+else()
+# Force enable SSE2 instructions in GLM per the manual
+# https://github.com/g-truc/glm/blob/master/manual.md#section2_10
+add_compile_definitions(GLM_FORCE_DEFAULT_ALIGNED_GENTYPES=1 GLM_FORCE_SSE2=1 GLM_ENABLE_EXPERIMENTAL=1)
+endif()
+
# Configure crash reporting
set(RELEASE_CRASH_REPORTING OFF CACHE BOOL "Enable use of crash reporting in release builds")
set(NON_RELEASE_CRASH_REPORTING OFF CACHE BOOL "Enable use of crash reporting in developer builds")
@@ -45,12 +55,17 @@ if(NON_RELEASE_CRASH_REPORTING)
add_compile_definitions( LL_SEND_CRASH_REPORTS=1)
endif()
+set(USE_LTO OFF CACHE BOOL "Enable Link Time Optimization")
+if(USE_LTO)
+ set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)
+endif()
+
# Don't bother with a MinSizeRel or Debug builds.
set(CMAKE_CONFIGURATION_TYPES "RelWithDebInfo;Release" CACHE STRING "Supported build types." FORCE)
# Platform-specific compilation flags.
-if (WINDOWS)
+if (NOT CMAKE_CXX_COMPILER_ID MATCHES GNU AND WINDOWS)
# Don't build DLLs.
set(BUILD_SHARED_LIBS OFF)
@@ -61,15 +76,16 @@ if (WINDOWS)
# http://www.cmake.org/pipermail/cmake/2009-September/032143.html
string(REPLACE "/Zm1000" " " CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
- # zlib has assembly-language object files incompatible with SAFESEH
add_link_options(/LARGEADDRESSAWARE
- /SAFESEH:NO
/NODEFAULTLIB:LIBCMT
/IGNORE:4099)
- add_definitions(
- -DNOMINMAX
-# /DDOM_DYNAMIC # For shared library colladadom
+ add_compile_definitions(
+ WIN32_LEAN_AND_MEAN
+ NOMINMAX
+# DOM_DYNAMIC # For shared library colladadom
+ _CRT_SECURE_NO_WARNINGS # Allow use of sprintf etc
+ _WINSOCK_DEPRECATED_NO_WARNINGS # Disable deprecated WinSock API warnings
)
add_compile_options(
/Zo
@@ -82,6 +98,7 @@ if (WINDOWS)
/Oy-
/fp:fast
/MP
+ /permissive-
)
# Nicky: x64 implies SSE2
@@ -96,7 +113,7 @@ if (WINDOWS)
#ND: When using something like buildcache (https://github.com/mbitsnbites/buildcache)
# to make those wrappers work /Zi must be changed to /Z7, as /Zi due to it's nature is not compatible with caching
- if( ${CMAKE_CXX_COMPILER_LAUNCHER} MATCHES ".*cache.*")
+ if(${CMAKE_CXX_COMPILER_LAUNCHER} MATCHES ".*cache.*")
add_compile_options( /Z7 )
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
@@ -104,15 +121,7 @@ if (WINDOWS)
string(REPLACE "/Zi" "/Z7" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
endif()
-
- # workaround for github runner image breakage:
- # https://github.com/actions/runner-images/issues/10004#issuecomment-2153445161
- # can be removed after the above issue is resolved and deployed across GHA
- add_compile_definitions(_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR)
-
- # Allow use of sprintf etc
- add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
-endif (WINDOWS)
+endif (NOT CMAKE_CXX_COMPILER_ID MATCHES GNU AND WINDOWS)
if (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
set( CMAKE_BUILD_WITH_INSTALL_RPATH TRUE )
@@ -155,11 +164,16 @@ if (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
-fno-math-errno
-fno-strict-aliasing
-fsigned-char
- -msse2
- -mfpmath=sse
-pthread
)
+ if (CMAKE_SYSTEM_NAME MATCHES x86_64)
+ add_compile_options(
+ -msse2
+ -mfpmath=sse
+ )
+ endif ()
+
if (NOT BUILD_SHARED_LIBS)
add_compile_options(-fvisibility=hidden)
endif (NOT BUILD_SHARED_LIBS)
@@ -181,6 +195,12 @@ if (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
-Wno-dangling-pointer
)
+ if (CMAKE_SYSTEM_PROCESSOR MATCHES aarch64)
+ set(GCC_WARNINGS
+ ${GCC_WARNINGS}
+ -Wno-cpp
+ )
+ endif ()
add_link_options(
-Wl,--no-keep-memory
-Wl,--build-id
@@ -235,6 +255,10 @@ if (DARWIN)
list(APPEND GCC_WARNINGS -Wno-unused-but-set-variable -Wno-unused-variable )
endif()
+ if (CMAKE_OSX_ARCHITECTURES MATCHES arm64)
+ list(APPEND GCC_WARNINGS "-Wno-#warnings" )
+ endif()
+
add_compile_options(${GCC_WARNINGS})
add_compile_options(-m${ADDRESS_SIZE})
endif ()
diff --git a/indra/cmake/APR.cmake b/indra/cmake/APR.cmake
index 72486f110d..58a00c74da 100644
--- a/indra/cmake/APR.cmake
+++ b/indra/cmake/APR.cmake
@@ -5,15 +5,20 @@ include_guard()
add_library( ll::apr INTERFACE IMPORTED )
-if (NOT (USE_AUTOBUILD_3P OR USE_CONAN))
+if (WINDOWS)
+ target_include_directories(ll::apr SYSTEM INTERFACE ${prefix_result}/../include)
+ target_link_directories(ll::apr INTERFACE ${prefix_result})
+ target_link_libraries(ll::apr INTERFACE libapr-1 libaprutil-1)
+else ()
include(FindPkgConfig)
pkg_check_modules(Apr REQUIRED apr-1 apr-util-1)
target_include_directories(ll::apr SYSTEM INTERFACE ${Apr_INCLUDE_DIRS})
target_link_directories(ll::apr INTERFACE ${Apr_LIBRARY_DIRS})
target_link_libraries(ll::apr INTERFACE ${Apr_LIBRARIES})
- return ()
endif ()
+return ()
+
use_system_binary( apr apr-util )
use_prebuilt_binary(apr_suite)
@@ -27,6 +32,7 @@ if (WINDOWS)
${ARCH_PREBUILT_DIRS_RELEASE}/${APR_selector}apr-1.lib
${ARCH_PREBUILT_DIRS_RELEASE}/${APR_selector}aprutil-1.lib
)
+ target_compile_definitions( ll::apr INTERFACE APR_DECLARE_STATIC=1 APU_DECLARE_STATIC=1 API_DECLARE_STATIC=1)
elseif (DARWIN)
if (LLCOMMON_LINK_SHARED)
set(APR_selector "0.dylib")
@@ -37,16 +43,15 @@ elseif (DARWIN)
endif (LLCOMMON_LINK_SHARED)
target_link_libraries( ll::apr INTERFACE
- libapr-1.${APR_selector}
- libaprutil-1.${APRUTIL_selector}
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libapr-1.${APR_selector}
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libaprutil-1.${APR_selector}
iconv
)
-else (WINDOWS)
+else()
target_link_libraries( ll::apr INTERFACE
- apr-1
- aprutil-1
- uuid
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libapr-1.a
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libaprutil-1.a
rt
)
-endif (WINDOWS)
+endif ()
target_include_directories( ll::apr SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/apr-1 )
diff --git a/indra/cmake/Audio.cmake b/indra/cmake/Audio.cmake
index 4388e1e259..c569fba4e8 100644
--- a/indra/cmake/Audio.cmake
+++ b/indra/cmake/Audio.cmake
@@ -1,25 +1,38 @@
# -*- cmake -*-
+include(Linking)
include(Prebuilt)
include_guard()
add_library( ll::vorbis INTERFACE IMPORTED )
-if (NOT (USE_AUTOBUILD_3P OR USE_CONAN))
- include(FindPkgConfig)
- pkg_check_modules(Vorbis REQUIRED ogg vorbis vorbisenc vorbisfile)
- target_include_directories(ll::vorbis SYSTEM INTERFACE ${Vorbis_INCLUDE_DIRS})
- target_link_directories(ll::vorbis INTERFACE ${Vorbis_LIBRARY_DIRS})
- target_link_libraries(ll::vorbis INTERFACE ${Vorbis_LIBRARIES})
- return ()
-endif ()
+include(FindPkgConfig)
+pkg_check_modules(Vorbis REQUIRED ogg vorbis vorbisenc vorbisfile)
+target_include_directories(ll::vorbis SYSTEM INTERFACE ${Vorbis_INCLUDE_DIRS})
+target_link_directories(ll::vorbis INTERFACE ${Vorbis_LIBRARY_DIRS})
+target_link_libraries(ll::vorbis INTERFACE ${Vorbis_LIBRARIES})
+return ()
use_system_binary(vorbis)
use_prebuilt_binary(ogg_vorbis)
target_include_directories( ll::vorbis SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include )
if (WINDOWS)
- target_link_libraries(ll::vorbis INTERFACE ogg_static vorbis_static vorbisenc_static vorbisfile_static )
+ target_link_libraries(ll::vorbis INTERFACE
+ optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libogg.lib
+ debug ${ARCH_PREBUILT_DIRS_DEBUG}/libogg.lib
+ optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libvorbisenc.lib
+ debug ${ARCH_PREBUILT_DIRS_DEBUG}/libvorbisenc.lib
+ optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libvorbisfile.lib
+ debug ${ARCH_PREBUILT_DIRS_DEBUG}/libvorbisfile.lib
+ optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libvorbis.lib
+ debug ${ARCH_PREBUILT_DIRS_DEBUG}/libvorbis.lib
+ )
else (WINDOWS)
- target_link_libraries(ll::vorbis INTERFACE vorbisfile vorbis ogg vorbisenc )
+ target_link_libraries(ll::vorbis INTERFACE
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libogg.a
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libvorbisenc.a
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libvorbisfile.a
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libvorbis.a
+ )
endif (WINDOWS)
diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake
index a4f81917ea..8459214f59 100644
--- a/indra/cmake/Boost.cmake
+++ b/indra/cmake/Boost.cmake
@@ -4,36 +4,43 @@ include(Prebuilt)
include_guard()
add_library( ll::boost INTERFACE IMPORTED )
+
+if (DARWIN)
+ target_include_directories( ll::boost SYSTEM INTERFACE /opt/local/libexec/boost/1.87/include)
+ target_link_directories( ll::boost INTERFACE /opt/local/libexec/boost/1.87/lib)
+ set(sfx -mt)
+elseif (WINDOWS)
+ target_include_directories( ll::boost SYSTEM INTERFACE ${prefix_result}/../include)
+ target_link_directories( ll::boost INTERFACE ${prefix_result})
+ if ($ENV{MSYSTEM_CARCH} MATCHES aarch64)
+ set(sfx -vc143-mt-a64-1_88)
+ else ()
+ set(sfx -vc143-mt-x64-1_88)
+ endif ()
+else ()
+ find_package( Boost REQUIRED )
+endif ()
+target_link_libraries( ll::boost INTERFACE
+ boost_context${sfx}
+ boost_fiber${sfx}
+ boost_filesystem${sfx}
+ boost_program_options${sfx}
+ boost_system${sfx}
+ boost_thread${sfx}
+ boost_url${sfx}
+ )
+if (WINDOWS)
+ target_link_libraries( ll::boost INTERFACE boost_json${sfx})
+else ()
+ target_link_libraries( ll::boost INTERFACE boost_regex${sfx})
+endif ()
+target_compile_definitions( ll::boost INTERFACE BOOST_BIND_GLOBAL_PLACEHOLDERS )
+return()
+
if( USE_CONAN )
target_link_libraries( ll::boost INTERFACE CONAN_PKG::boost )
target_compile_definitions( ll::boost INTERFACE BOOST_ALLOW_DEPRECATED_HEADERS BOOST_BIND_GLOBAL_PLACEHOLDERS )
return()
-elseif( NOT USE_AUTOBUILD_3P )
- if (DARWIN)
- target_include_directories( ll::boost SYSTEM INTERFACE /opt/local/libexec/boost/1.81/include)
- target_link_libraries( ll::boost INTERFACE
- /opt/local/libexec/boost/1.81/lib/libboost_context-mt.a
- /opt/local/libexec/boost/1.81/lib/libboost_fiber-mt.a
- /opt/local/libexec/boost/1.81/lib/libboost_filesystem-mt.a
- /opt/local/libexec/boost/1.81/lib/libboost_program_options-mt.a
- /opt/local/libexec/boost/1.81/lib/libboost_regex-mt.a
- /opt/local/libexec/boost/1.81/lib/libboost_system-mt.a
- /opt/local/libexec/boost/1.81/lib/libboost_thread-mt.a
- )
- else (DARWIN)
- find_package( Boost REQUIRED )
- target_link_libraries( ll::boost INTERFACE
- boost_context
- boost_fiber
- boost_filesystem
- boost_program_options
- boost_regex
- boost_system
- boost_thread
- )
- endif (DARWIN)
- target_compile_definitions( ll::boost INTERFACE BOOST_BIND_GLOBAL_PLACEHOLDERS )
- return()
endif()
use_prebuilt_binary(boost)
@@ -50,7 +57,8 @@ if (WINDOWS)
libboost_program_options-mt${addrsfx}
libboost_regex-mt${addrsfx}
libboost_system-mt${addrsfx}
- libboost_thread-mt${addrsfx})
+ libboost_thread-mt${addrsfx}
+ libboost_url-mt${addrsfx})
elseif (LINUX)
target_link_libraries( ll::boost INTERFACE
boost_fiber-mt${addrsfx}
@@ -58,9 +66,9 @@ elseif (LINUX)
boost_filesystem-mt${addrsfx}
boost_program_options-mt${addrsfx}
boost_regex-mt${addrsfx}
- boost_thread-mt${addrsfx}
boost_system-mt${addrsfx}
- )
+ boost_thread-mt${addrsfx}
+ boost_url-mt${addrsfx})
elseif (DARWIN)
target_link_libraries( ll::boost INTERFACE
boost_context-mt${addrsfx}
@@ -69,7 +77,8 @@ elseif (DARWIN)
boost_program_options-mt${addrsfx}
boost_regex-mt${addrsfx}
boost_system-mt${addrsfx}
- boost_thread-mt${addrsfx})
+ boost_thread-mt${addrsfx}
+ boost_url-mt${addrsfx})
endif (WINDOWS)
if (LINUX)
diff --git a/indra/cmake/CEFPlugin.cmake b/indra/cmake/CEFPlugin.cmake
index 119a41f570..b70be7926f 100644
--- a/indra/cmake/CEFPlugin.cmake
+++ b/indra/cmake/CEFPlugin.cmake
@@ -35,16 +35,64 @@ elseif (CMAKE_OSX_ARCHITECTURES MATCHES x86_64)
)
file(WRITE ${PREBUILD_TRACKING_DIR}/dullahan_installed "0")
endif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/dullahan_installed OR NOT ${dullahan_installed} EQUAL 0)
+elseif (CMAKE_SYSTEM_PROCESSOR MATCHES aarch64)
+ if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/dullahan_installed OR NOT ${dullahan_installed} EQUAL 0)
+ if (NOT EXISTS ${CMAKE_BINARY_DIR}/v1.14.0-r3.tar.gz)
+ file(DOWNLOAD
+ https://github.com/secondlife/dullahan/archive/refs/tags/v1.14.0-r3.tar.gz
+ ${CMAKE_BINARY_DIR}/v1.14.0-r3.tar.gz
+ )
+ endif ()
+ file(ARCHIVE_EXTRACT
+ INPUT ${CMAKE_BINARY_DIR}/v1.14.0-r3.tar.gz
+ DESTINATION ${CMAKE_BINARY_DIR}
+ )
+ execute_process(
+ COMMAND sed -i "/#include <vector>/a #include <cstdint>" dullahan.h
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/dullahan-1.14.0-r3/src
+ )
+ file(MAKE_DIRECTORY ${LIBS_PREBUILT_DIR}/include/cef)
+ try_compile(DULLAHAN_RESULT
+ PROJECT dullahan
+ SOURCE_DIR ${CMAKE_BINARY_DIR}/dullahan-1.14.0-r3
+ BINARY_DIR ${CMAKE_BINARY_DIR}/dullahan-1.14.0-r3
+ CMAKE_FLAGS
+ -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+ -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}
+ -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=${CMAKE_OSX_DEPLOYMENT_TARGET}
+ -DCMAKE_INSTALL_PREFIX:PATH=${LIBS_PREBUILT_DIR}
+ -DCMAKE_INSTALL_LIBDIR:PATH=${ARCH_PREBUILT_DIRS_RELEASE}
+ -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON
+ -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
+ -DUSE_SPOTIFY_CEF:BOOL=ON
+ -DSPOTIFY_CEF_URL:STRING=https://cef-builds.spotifycdn.com/cef_binary_118.4.1%2Bg3dd6078%2Bchromium-118.0.5993.54_linuxarm64_beta_minimal.tar.bz2
+ -DPROJECT_ARCH:STRING=${CMAKE_SYSTEM_PROCESSOR}
+ -DENABLE_CXX11_ABI:BOOL=ON
+ )
+ if (${DULLAHAN_RESULT})
+ execute_process(
+ COMMAND ${CMAKE_MAKE_PROGRAM} install
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/dullahan-1.14.0-r3
+ OUTPUT_VARIABLE dullahan_installed
+ )
+ file(
+ COPY
+ ${CMAKE_BINARY_DIR}/dullahan-1.14.0-r3/src/dullahan.h
+ ${CMAKE_BINARY_DIR}/dullahan-1.14.0-r3/src/dullahan_version.h
+ DESTINATION ${LIBS_PREBUILT_DIR}/include/cef
+ )
+ file(WRITE ${PREBUILD_TRACKING_DIR}/dullahan_installed "${dullahan_installed}")
+ endif (${DULLAHAN_RESULT})
+ endif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/dullahan_installed OR NOT ${dullahan_installed} EQUAL 0)
else (CMAKE_OSX_ARCHITECTURES MATCHES arm64)
use_prebuilt_binary(dullahan)
- if (${LINUX_DISTRO} MATCHES fedora)
- execute_process(
- COMMAND patchelf --remove-rpath bin/release/dullahan_host
- WORKING_DIRECTORY ${LIBS_PREBUILT_DIR}
- )
- endif (${LINUX_DISTRO} MATCHES fedora)
endif (CMAKE_OSX_ARCHITECTURES MATCHES arm64)
+execute_process(
+ COMMAND patchelf --remove-rpath bin/release/dullahan_host
+ WORKING_DIRECTORY ${LIBS_PREBUILT_DIR}
+ )
+
target_include_directories( ll::cef SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/cef)
if (WINDOWS)
@@ -73,8 +121,8 @@ elseif (DARWIN)
elseif (LINUX)
target_link_libraries( ll::cef INTERFACE
- libdullahan.a
- cef
- cef_dll_wrapper.a
+ libdullahan.a
+ cef
+ cef_dll_wrapper.a
)
endif (WINDOWS)
diff --git a/indra/cmake/CMakeLists.txt b/indra/cmake/CMakeLists.txt
index fa6cd8556b..5525ac9f24 100644
--- a/indra/cmake/CMakeLists.txt
+++ b/indra/cmake/CMakeLists.txt
@@ -26,6 +26,7 @@ set(cmake_SOURCE_FILES
FreeType.cmake
GLEXT.cmake
GLH.cmake
+ GLM.cmake
Havok.cmake
Hunspell.cmake
LLAddBuildTest.cmake
@@ -57,13 +58,11 @@ set(cmake_SOURCE_FILES
Tut.cmake
UI.cmake
UnixInstall.cmake
- URIPARSER.cmake
Variables.cmake
ViewerMiscLibs.cmake
VisualLeakDetector.cmake
LibVLCPlugin.cmake
WebRTC.cmake
- XmlRpcEpi.cmake
xxHash.cmake
ZLIBNG.cmake
)
diff --git a/indra/cmake/CURL.cmake b/indra/cmake/CURL.cmake
index 08938ff3d8..211c3ae9a0 100644
--- a/indra/cmake/CURL.cmake
+++ b/indra/cmake/CURL.cmake
@@ -1,18 +1,18 @@
# -*- cmake -*-
include(Prebuilt)
+include(Linking)
include_guard()
add_library( ll::libcurl INTERFACE IMPORTED )
-if (NOT USESYSTEMLIBS)
+if ($ENV{MSYSTEM_CARCH} MATCHES aarch64)
use_system_binary(libcurl)
-endif (NOT USESYSTEMLIBS)
-if (DARWIN OR LINUX OR NOT USESYSTEMLIBS)
+elseif (LINUX AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 OR DARWIN OR WINDOWS)
use_prebuilt_binary(curl)
if (DARWIN)
execute_process(
COMMAND lipo -archs libcurl.a
- WORKING_DIRECTORY ${LIBS_PREBUILT_DIR}/lib/release
+ WORKING_DIRECTORY ${ARCH_PREBUILT_DIRS_RELEASE}
OUTPUT_VARIABLE curl_archs
OUTPUT_STRIP_TRAILING_WHITESPACE
)
@@ -22,75 +22,83 @@ use_prebuilt_binary(curl)
libcurl.a
-thin ${CMAKE_OSX_ARCHITECTURES}
-output libcurl.a
- WORKING_DIRECTORY ${LIBS_PREBUILT_DIR}/lib/release
+ WORKING_DIRECTORY ${ARCH_PREBUILT_DIRS_RELEASE}
)
- endif (NOT ${curl_archs} STREQUAL ${CMAKE_OSX_ARCHITECTURES})
- endif (DARWIN)
+ endif ()
+ endif ()
elseif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/curl_installed OR NOT ${curl_installed} EQUAL 0)
if (NOT EXISTS ${CMAKE_BINARY_DIR}/3p-curl-7.54.1-r1.tar.gz)
file(DOWNLOAD
https://github.com/secondlife/3p-curl/archive/refs/tags/v7.54.1-r1.tar.gz
${CMAKE_BINARY_DIR}/3p-curl-7.54.1-r1.tar.gz
)
- endif (NOT EXISTS ${CMAKE_BINARY_DIR}/3p-curl-7.54.1-r1.tar.gz)
+ endif ()
file(ARCHIVE_EXTRACT
INPUT ${CMAKE_BINARY_DIR}/3p-curl-7.54.1-r1.tar.gz
DESTINATION ${CMAKE_BINARY_DIR}
)
+ if (CMAKE_SYSTEM_PROCESSOR MATCHES aarch64 AND (${LINUX_DISTRO} MATCHES fedora))
+ execute_process(
+ COMMAND sed -i netrc.c -e "s/defined(HAVE_GETPWUID_R)/0/g" netrc.c
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-curl-7.54.1-r1/curl/lib
+ )
+ endif ()
file(
COPY
- ${CMAKE_BINARY_DIR}/3p-curl-7.54.1-r1/curl/include/curl/curl.h
- ${CMAKE_BINARY_DIR}/3p-curl-7.54.1-r1/curl/include/curl/curlbuild.h
- ${CMAKE_BINARY_DIR}/3p-curl-7.54.1-r1/curl/include/curl/curlrules.h
- ${CMAKE_BINARY_DIR}/3p-curl-7.54.1-r1/curl/include/curl/curlver.h
- ${CMAKE_BINARY_DIR}/3p-curl-7.54.1-r1/curl/include/curl/easy.h
- ${CMAKE_BINARY_DIR}/3p-curl-7.54.1-r1/curl/include/curl/mprintf.h
- ${CMAKE_BINARY_DIR}/3p-curl-7.54.1-r1/curl/include/curl/multi.h
- ${CMAKE_BINARY_DIR}/3p-curl-7.54.1-r1/curl/include/curl/stdcheaders.h
- ${CMAKE_BINARY_DIR}/3p-curl-7.54.1-r1/curl/include/curl/system.h
- ${CMAKE_BINARY_DIR}/3p-curl-7.54.1-r1/curl/include/curl/typecheck-gcc.h
- DESTINATION ${LIBS_PREBUILT_DIR}/include/curl
- )
- file(
- COPY
- ${LIBS_PREBUILT_DIR}/lib/release/libcrypto.a
- ${LIBS_PREBUILT_DIR}/lib/release/libssl.a
- DESTINATION ${LIBS_PREBUILT_DIR}/lib
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libcrypto.a
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libssl.a
+ DESTINATION ${ARCH_PREBUILT_DIRS}
)
- message("We need to temporarily have OpenSSL3 header directory and libraries renamed just until the libcurl building process with OpenSSL1.1 now is finished.")
- execute_process(COMMAND sudo mv /usr/include/openssl /usr/include/openssl3)
- execute_process(COMMAND sudo mv /usr/lib/libcrypto.a /usr/lib/libcrypto.a.3)
- execute_process(COMMAND sudo mv /usr/lib/libcrypto.so /usr/lib/libcrypto.so.3)
- execute_process(COMMAND sudo mv /usr/lib/libssl.a /usr/lib/libssl.a.3)
- execute_process(COMMAND sudo mv /usr/lib/libssl.so /usr/lib/libssl.so.3)
+ if (CMAKE_SYSTEM_NAME MATCHES FreeBSD)
+ message("We need to temporarily have OpenSSL3 header directory and libraries renamed just until the libcurl building process with OpenSSL1.1 now is finished.")
+ execute_process(COMMAND sudo mv /usr/include/openssl /usr/include/openssl3)
+ execute_process(COMMAND sudo mv /usr/lib/libcrypto.a /usr/lib/libcrypto.a.3)
+ execute_process(COMMAND sudo mv /usr/lib/libcrypto.so /usr/lib/libcrypto.so.3)
+ execute_process(COMMAND sudo mv /usr/lib/libssl.a /usr/lib/libssl.a.3)
+ execute_process(COMMAND sudo mv /usr/lib/libssl.so /usr/lib/libssl.so.3)
+ endif ()
+ set(ENV{CFLAGS} "-std=c90")
execute_process(
- COMMAND ./configure --disable-alt-svc --disable-dict --disable-doh --disable-file --disable-gopher --disable-headers-api --disable-hsts --disable-imap --disable-ldap --disable-ldaps --disable-libcurl-option --disable-manual --disable-mqtt --disable-ntlm --disable-ntlm-wb --disable-pop3 --disable-rtsp --disable-shared --disable-smb --disable-smtp --disable-sspi --disable-telnet --disable-tftp --disable-tls-srp --disable-unix-sockets --disable-verbose --disable-versioned-symbols --enable-threaded-resolver --with-ssl=${LIBS_PREBUILT_DIR} --without-libidn2 --without-libpsl --without-libssh2
+ COMMAND ./configure --disable-alt-svc --disable-dict --disable-doh --disable-file --disable-gopher --disable-headers-api --disable-hsts --disable-imap --disable-ldap --disable-ldaps --disable-libcurl-option --disable-manual --disable-mqtt --disable-ntlm --disable-ntlm-wb --disable-pop3 --disable-rtsp --disable-shared --disable-smb --disable-smtp --disable-sspi --disable-telnet --disable-tftp --disable-tls-srp --disable-unix-sockets --disable-verbose --disable-versioned-symbols --enable-threaded-resolver --with-ssl=${LIBS_PREBUILT_DIR} --without-libidn2 --without-libpsl --without-libssh2 --prefix=${LIBS_PREBUILT_DIR} --libdir=${ARCH_PREBUILT_DIRS_RELEASE}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-curl-7.54.1-r1/curl
)
execute_process(
COMMAND make -j${MAKE_JOBS}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-curl-7.54.1-r1/curl
- RESULT_VARIABLE curl_installed
)
- file(
- COPY ${CMAKE_BINARY_DIR}/3p-curl-7.54.1-r1/curl/lib/.libs/libcurl.a
- DESTINATION ${LIBS_PREBUILT_DIR}/lib/release
+ unset(ENV{CFLAGS})
+ execute_process(
+ COMMAND make install
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-curl-7.54.1-r1/curl
+ RESULT_VARIABLE curl_installed
)
- execute_process(COMMAND sudo mv /usr/include/openssl3 /usr/include/openssl)
- execute_process(COMMAND sudo mv /usr/lib/libcrypto.a.3 /usr/lib/libcrypto.a)
- execute_process(COMMAND sudo mv /usr/lib/libcrypto.so.3 /usr/lib/libcrypto.so)
- execute_process(COMMAND sudo mv /usr/lib/libssl.a.3 /usr/lib/libssl.a)
- execute_process(COMMAND sudo mv /usr/lib/libssl.so.3 /usr/lib/libssl.so)
- message("OpenSSL3 header directory and library names have been restored.")
+ if (CMAKE_SYSTEM_NAME MATCHES FreeBSD)
+ execute_process(COMMAND sudo mv /usr/include/openssl3 /usr/include/openssl)
+ execute_process(COMMAND sudo mv /usr/lib/libcrypto.a.3 /usr/lib/libcrypto.a)
+ execute_process(COMMAND sudo mv /usr/lib/libcrypto.so.3 /usr/lib/libcrypto.so)
+ execute_process(COMMAND sudo mv /usr/lib/libssl.a.3 /usr/lib/libssl.a)
+ execute_process(COMMAND sudo mv /usr/lib/libssl.so.3 /usr/lib/libssl.so)
+ message("OpenSSL3 header directory and library names have been restored.")
+ endif ()
file(REMOVE
- ${LIBS_PREBUILT_DIR}/lib/libcrypto.a
- ${LIBS_PREBUILT_DIR}/lib/libssl.a
+ ${ARCH_PREBUILT_DIRS}/libcrypto.a
+ ${ARCH_PREBUILT_DIRS}/libssl.a
)
file(WRITE ${PREBUILD_TRACKING_DIR}/curl_installed "${curl_installed}")
-endif (DARWIN OR LINUX OR NOT USESYSTEMLIBS)
+endif ()
if (WINDOWS)
- target_link_libraries(ll::libcurl INTERFACE libcurl.lib)
-else (WINDOWS)
- target_link_libraries(ll::libcurl INTERFACE libcurl.a)
-endif (WINDOWS)
+ target_link_libraries(ll::libcurl INTERFACE
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libcurl.lib
+ ll::openssl
+ ll::nghttp2
+ ll::zlib-ng
+ )
+else ()
+ target_link_libraries(ll::libcurl INTERFACE
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libcurl.a
+ ll::openssl
+ ll::nghttp2
+ ll::zlib-ng
+ )
+endif ()
target_include_directories( ll::libcurl SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include)
diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake
index d78f2b90b8..6ac00fd131 100644
--- a/indra/cmake/Copy3rdPartyLibs.cmake
+++ b/indra/cmake/Copy3rdPartyLibs.cmake
@@ -54,21 +54,12 @@ if(WINDOWS)
set(release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
set(release_files
openjp2.dll
- libapr-1.dll
- libaprutil-1.dll
- nghttp2.dll
- libhunspell.dll
- uriparser.dll
)
- # OpenSSL
- if(ADDRESS_SIZE EQUAL 64)
- set(release_files ${release_files} libcrypto-1_1-x64.dll)
- set(release_files ${release_files} libssl-1_1-x64.dll)
- else(ADDRESS_SIZE EQUAL 64)
- set(release_files ${release_files} libcrypto-1_1.dll)
- set(release_files ${release_files} libssl-1_1.dll)
- endif(ADDRESS_SIZE EQUAL 64)
+ if(LLCOMMON_LINK_SHARED)
+ set(release_files ${release_files} libapr-1.dll)
+ set(release_files ${release_files} libaprutil-1.dll)
+ endif()
# Filenames are different for 32/64 bit BugSplat file and we don't
# have any control over them so need to branch.
@@ -137,9 +128,14 @@ if(WINDOWS)
# Check each of them.
foreach(release_msvc_file
msvcp${MSVC_VER}.dll
+ msvcp${MSVC_VER}_1.dll
+ msvcp${MSVC_VER}_2.dll
+ msvcp${MSVC_VER}_atomic_wait.dll
+ msvcp${MSVC_VER}_codecvt_ids.dll
msvcr${MSVC_VER}.dll
vcruntime${MSVC_VER}.dll
vcruntime${MSVC_VER}_1.dll
+ vcruntime${MSVC_VER}_threads.dll
)
if(redist_path AND EXISTS "${redist_path}/${release_msvc_file}")
MESSAGE(STATUS "Copying redist file from ${redist_path}/${release_msvc_file}")
@@ -159,10 +155,6 @@ if(WINDOWS)
MESSAGE(STATUS "Redist lib ${release_msvc_file} not found")
endif()
endforeach()
- MESSAGE(STATUS "Will copy redist files for MSVC ${MSVC_VER}:")
- foreach(target ${third_party_targets})
- MESSAGE(STATUS "${target}")
- endforeach()
elseif(DARWIN)
set(vivox_lib_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
@@ -176,20 +168,18 @@ elseif(DARWIN)
)
set(release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
set(release_files
- libapr-1.0.dylib
- libapr-1.dylib
- libaprutil-1.0.dylib
- libaprutil-1.dylib
- ${EXPAT_COPY}
- libhunspell-1.3.0.dylib
libndofdev.dylib
- libnghttp2.dylib
- libnghttp2.14.dylib
- liburiparser.dylib
- liburiparser.1.dylib
- liburiparser.1.0.27.dylib
)
+ if(LLCOMMON_LINK_SHARED)
+ set(release_files ${release_files}
+ libapr-1.0.dylib
+ libapr-1.dylib
+ libaprutil-1.0.dylib
+ libaprutil-1.dylib
+ )
+ endif()
+
if (TARGET ll::openal)
list(APPEND release_files libalut.dylib libopenal.dylib)
endif ()
@@ -220,15 +210,28 @@ elseif(LINUX)
set(release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
# *FIX - figure out what to do with duplicate libalut.so here -brad
set(release_files
- ${EXPAT_COPY}
- )
+ )
if( USE_AUTOBUILD_3P )
list( APPEND release_files
- libapr-1.so.0
- libaprutil-1.so.0
- libhunspell-1.3.so.0.0.0
+ libatk-1.0.so
+ libfreetype.so.6.6.2
+ libfreetype.so.6
+ libopenjp2.so
+ libuuid.so.16
+ libuuid.so.16.0.22
+ libfontconfig.so.1.8.0
+ libfontconfig.so.1
+ libgmodule-2.0.so
+ libgobject-2.0.so
)
+
+ if(LLCOMMON_LINK_SHARED)
+ set(release_files ${release_files}
+ libapr-1.so.0
+ libaprutil-1.so.0
+ )
+ endif()
endif()
else(WINDOWS)
diff --git a/indra/cmake/EXPAT.cmake b/indra/cmake/EXPAT.cmake
index 327fe8aa72..1a0b8789dc 100644
--- a/indra/cmake/EXPAT.cmake
+++ b/indra/cmake/EXPAT.cmake
@@ -7,14 +7,13 @@ add_library( ll::expat INTERFACE IMPORTED )
use_system_binary(expat)
use_prebuilt_binary(expat)
if (WINDOWS)
- target_link_libraries( ll::expat INTERFACE libexpatMT )
- set(EXPAT_COPY libexpatMT.dll)
-else (WINDOWS)
- target_link_libraries( ll::expat INTERFACE expat )
- if (DARWIN)
- set(EXPAT_COPY libexpat.1.dylib libexpat.dylib)
- else ()
- set(EXPAT_COPY libexpat.so.1 libexpat.so)
- endif ()
-endif (WINDOWS)
+ target_compile_definitions( ll::expat INTERFACE XML_STATIC=1)
+ target_link_libraries( ll::expat INTERFACE
+ debug ${ARCH_PREBUILT_DIRS_DEBUG}/libexpatd.lib
+ optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libexpat.lib)
+else ()
+ target_link_libraries( ll::expat INTERFACE
+ debug ${ARCH_PREBUILT_DIRS_DEBUG}/libexpat.a
+ optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libexpat.a)
+endif ()
target_include_directories( ll::expat SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include )
diff --git a/indra/cmake/FMODSTUDIO.cmake b/indra/cmake/FMODSTUDIO.cmake
index 313ee2cde7..8cac756ead 100644
--- a/indra/cmake/FMODSTUDIO.cmake
+++ b/indra/cmake/FMODSTUDIO.cmake
@@ -30,11 +30,11 @@ if (USE_FMODSTUDIO)
# Note: if you're not using INSTALL_PROPRIETARY, the package URL should be local (file:/// URL)
# as accessing the private LL location will fail if you don't have the credential
include(Prebuilt)
- if (USESYSTEMLIBS AND (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/fmodstudio_installed OR NOT ${fmodstudio_installed} EQUAL 0))
- file(MAKE_DIRECTORY ${LIBS_PREBUILT_DIR}/lib/release)
+ if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/fmodstudio_installed OR NOT ${fmodstudio_installed} EQUAL 0)
+ file(MAKE_DIRECTORY ${ARCH_PREBUILT_DIRS_RELEASE})
if (DARWIN)
execute_process(
- COMMAND hdiutil attach -noverify fmodstudioapi20223mac-installer.dmg
+ COMMAND hdiutil attach -noverify fmodstudioapi20229mac-installer.dmg
WORKING_DIRECTORY $ENV{HOME}/Downloads
)
file(
@@ -53,7 +53,7 @@ if (USE_FMODSTUDIO)
COMMAND lipo
lib/libfmod.dylib
-thin ${CMAKE_OSX_ARCHITECTURES}
- -output ${LIBS_PREBUILT_DIR}/lib/release/libfmod.dylib
+ -output ${ARCH_PREBUILT_DIRS_RELEASE}/libfmod.dylib
WORKING_DIRECTORY /Volumes/FMOD\ Programmers\ API\ Mac/FMOD\ Programmers\ API/api/core
)
execute_process(
@@ -62,36 +62,47 @@ if (USE_FMODSTUDIO)
RESULT_VARIABLE fmodstudio_installed
)
file(WRITE ${PREBUILD_TRACKING_DIR}/fmodstudio_installed "${fmodstudio_installed}")
- else (DARWIN)
+ else ()
file(ARCHIVE_EXTRACT
- INPUT $ENV{HOME}/Downloads/fmodstudioapi20223linux.tar.gz
+ INPUT $ENV{HOME}/Downloads/fmodstudioapi20229linux.tar.gz
DESTINATION ${CMAKE_BINARY_DIR}
)
file(
COPY
- ${CMAKE_BINARY_DIR}/fmodstudioapi20223linux/api/core/inc/fmod.h
- ${CMAKE_BINARY_DIR}/fmodstudioapi20223linux/api/core/inc/fmod.hpp
- ${CMAKE_BINARY_DIR}/fmodstudioapi20223linux/api/core/inc/fmod_codec.h
- ${CMAKE_BINARY_DIR}/fmodstudioapi20223linux/api/core/inc/fmod_common.h
- ${CMAKE_BINARY_DIR}/fmodstudioapi20223linux/api/core/inc/fmod_dsp.h
- ${CMAKE_BINARY_DIR}/fmodstudioapi20223linux/api/core/inc/fmod_dsp_effects.h
- ${CMAKE_BINARY_DIR}/fmodstudioapi20223linux/api/core/inc/fmod_errors.h
- ${CMAKE_BINARY_DIR}/fmodstudioapi20223linux/api/core/inc/fmod_output.h
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20229linux/api/core/inc/fmod.h
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20229linux/api/core/inc/fmod.hpp
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20229linux/api/core/inc/fmod_codec.h
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20229linux/api/core/inc/fmod_common.h
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20229linux/api/core/inc/fmod_dsp.h
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20229linux/api/core/inc/fmod_dsp_effects.h
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20229linux/api/core/inc/fmod_errors.h
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20229linux/api/core/inc/fmod_output.h
DESTINATION ${LIBS_PREBUILT_DIR}/include/fmodstudio
)
- file(
- COPY
- ${CMAKE_BINARY_DIR}/fmodstudioapi20223linux/api/core/lib/${CMAKE_SYSTEM_PROCESSOR}/libfmod.so
- ${CMAKE_BINARY_DIR}/fmodstudioapi20223linux/api/core/lib/${CMAKE_SYSTEM_PROCESSOR}/libfmod.so.13
- ${CMAKE_BINARY_DIR}/fmodstudioapi20223linux/api/core/lib/${CMAKE_SYSTEM_PROCESSOR}/libfmod.so.13.23
- DESTINATION ${LIBS_PREBUILT_DIR}/lib/release
- FOLLOW_SYMLINK_CHAIN
- )
+ if (CMAKE_SYSTEM_PROCESSOR MATCHES aarch64)
+ file(
+ COPY
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20229linux/api/core/lib/arm64/libfmod.so
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20229linux/api/core/lib/arm64/libfmod.so.13
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20229linux/api/core/lib/arm64/libfmod.so.13.29
+ DESTINATION ${ARCH_PREBUILT_DIRS_RELEASE}
+ FOLLOW_SYMLINK_CHAIN
+ )
+ else ()
+ file(
+ COPY
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20229linux/api/core/lib/${CMAKE_SYSTEM_PROCESSOR}/libfmod.so
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20229linux/api/core/lib/${CMAKE_SYSTEM_PROCESSOR}/libfmod.so.13
+ ${CMAKE_BINARY_DIR}/fmodstudioapi20229linux/api/core/lib/${CMAKE_SYSTEM_PROCESSOR}/libfmod.so.13.29
+ DESTINATION ${ARCH_PREBUILT_DIRS_RELEASE}
+ FOLLOW_SYMLINK_CHAIN
+ )
+ endif ()
file(WRITE ${PREBUILD_TRACKING_DIR}/fmodstudio_installed "0")
- endif (DARWIN)
- else (USESYSTEMLIBS AND (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/fmodstudio_installed OR NOT ${fmodstudio_installed} EQUAL 0))
- use_prebuilt_binary(fmodstudio)
- endif (USESYSTEMLIBS AND (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/fmodstudio_installed OR NOT ${fmodstudio_installed} EQUAL 0))
+ endif ()
+ endif ()
+
+ #use_prebuilt_binary(fmodstudio)
if (WINDOWS)
target_link_libraries( ll::fmodstudio INTERFACE fmod_vc)
elseif (DARWIN)
diff --git a/indra/cmake/FreeType.cmake b/indra/cmake/FreeType.cmake
index 82ba8fc06e..d5c7891032 100644
--- a/indra/cmake/FreeType.cmake
+++ b/indra/cmake/FreeType.cmake
@@ -1,23 +1,24 @@
# -*- cmake -*-
include(Prebuilt)
+include(Linking)
include_guard()
add_library( ll::freetype INTERFACE IMPORTED )
-if (USESYSTEMLIBS)
- include(FindPkgConfig)
- pkg_check_modules(Freetype REQUIRED freetype2)
- target_include_directories( ll::freetype SYSTEM INTERFACE ${Freetype_INCLUDE_DIRS} )
- target_link_directories( ll::freetype INTERFACE ${Freetype_LIBRARY_DIRS} )
- target_link_libraries( ll::freetype INTERFACE ${Freetype_LIBRARIES} )
- return ()
-endif ()
+include(FindPkgConfig)
+pkg_check_modules(Freetype REQUIRED freetype2)
+target_include_directories( ll::freetype SYSTEM INTERFACE ${Freetype_INCLUDE_DIRS} )
+target_link_directories( ll::freetype INTERFACE ${Freetype_LIBRARY_DIRS} )
+target_link_libraries( ll::freetype INTERFACE ${Freetype_LIBRARIES} )
+return ()
- use_system_binary(freetype)
- use_prebuilt_binary(freetype)
- target_include_directories( ll::freetype SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/freetype2/)
-if( LINUX )
- target_link_libraries( ll::freetype INTERFACE ${LIBS_PREBUILT_DIR}/lib/release/libfreetype.a ${LIBS_PREBUILT_DIR}/lib/release/libpng16.a)
+use_system_binary(freetype)
+use_prebuilt_binary(freetype)
+target_include_directories( ll::freetype SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/freetype2/)
+
+if (WINDOWS)
+ target_link_libraries( ll::freetype INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/freetype.lib)
else()
- target_link_libraries( ll::freetype INTERFACE freetype )
+ target_link_libraries( ll::freetype INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libfreetype.a)
endif()
+
diff --git a/indra/cmake/GLEXT.cmake b/indra/cmake/GLEXT.cmake
index ea349237d3..f45b27e7b8 100644
--- a/indra/cmake/GLEXT.cmake
+++ b/indra/cmake/GLEXT.cmake
@@ -3,10 +3,9 @@ include(Prebuilt)
include(GLH)
add_library( ll::glext INTERFACE IMPORTED )
-
-if (USESYSTEMLIBS)
- return ()
+#use_system_binary(glext)
+if (WINDOWS)
+use_prebuilt_binary(glext)
endif ()
-use_system_binary(glext)
-use_prebuilt_binary(glext)
+
diff --git a/indra/cmake/GLH.cmake b/indra/cmake/GLH.cmake
index 648a08454b..ac86f385c6 100644
--- a/indra/cmake/GLH.cmake
+++ b/indra/cmake/GLH.cmake
@@ -4,7 +4,5 @@ include(Prebuilt)
add_library( ll::glh_linear INTERFACE IMPORTED )
target_include_directories( ll::glh_linear SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include)
-if (NOT USESYSTEMLIBS)
-use_system_binary( glh_linear )
-endif (NOT USESYSTEMLIBS)
+#use_system_binary( glh_linear )
use_prebuilt_binary(glh_linear)
diff --git a/indra/cmake/GLM.cmake b/indra/cmake/GLM.cmake
index 451b7292cb..db6acc065e 100644
--- a/indra/cmake/GLM.cmake
+++ b/indra/cmake/GLM.cmake
@@ -3,12 +3,9 @@ include(Prebuilt)
add_library( ll::glm INTERFACE IMPORTED )
-if (NOT USESYSTEMLIBS)
-use_system_binary( glm )
-elseif (NOT LINUX)
- find_package( glm REQUIRED )
-endif (NOT USESYSTEMLIBS)
-
-if (LINUX OR USESYSTEMLIBS)
+#use_system_binary( glm )
+if (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES ubuntu) OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed))
use_prebuilt_binary(glm)
-endif (LINUX OR USESYSTEMLIBS)
+elseif (NOT WINDOWS)
+ find_package( glm REQUIRED )
+endif ()
diff --git a/indra/cmake/Hunspell.cmake b/indra/cmake/Hunspell.cmake
index 96c75ad262..129679febd 100644
--- a/indra/cmake/Hunspell.cmake
+++ b/indra/cmake/Hunspell.cmake
@@ -1,19 +1,24 @@
# -*- cmake -*-
+include(Linking)
include(Prebuilt)
include_guard()
-if (USE_AUTOBUILD_3P OR USE_CONAN)
use_prebuilt_binary(dictionaries)
-endif ()
add_library( ll::hunspell INTERFACE IMPORTED )
use_system_binary(hunspell)
use_prebuilt_binary(libhunspell)
if (WINDOWS)
- target_link_libraries( ll::hunspell INTERFACE libhunspell)
+ target_compile_definitions( ll::hunspell INTERFACE HUNSPELL_STATIC=1)
+ target_link_libraries( ll::hunspell INTERFACE
+ debug ${ARCH_PREBUILT_DIRS_DEBUG}/libhunspell.lib
+ optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libhunspell.lib
+ )
elseif(DARWIN)
- target_link_libraries( ll::hunspell INTERFACE hunspell-1.3)
+ target_link_libraries( ll::hunspell INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libhunspell-1.7.a
+ )
elseif(LINUX)
- target_link_libraries( ll::hunspell INTERFACE hunspell-1.3)
+ target_link_libraries( ll::hunspell INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libhunspell-1.7.a
+ )
endif()
target_include_directories( ll::hunspell SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/hunspell)
diff --git a/indra/cmake/JPEG.cmake b/indra/cmake/JPEG.cmake
index 252d7852d4..ade5a070cc 100644
--- a/indra/cmake/JPEG.cmake
+++ b/indra/cmake/JPEG.cmake
@@ -7,12 +7,14 @@ include_guard()
add_library( ll::libjpeg INTERFACE IMPORTED )
use_system_binary(libjpeg)
-use_prebuilt_binary(jpeglib)
+use_prebuilt_binary(libjpeg-turbo)
if (LINUX)
- target_link_libraries( ll::libjpeg INTERFACE jpeg)
+ target_link_libraries( ll::libjpeg INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libjpeg.a)
elseif (DARWIN)
- target_link_libraries( ll::libjpeg INTERFACE jpeg)
+ target_link_libraries( ll::libjpeg INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libjpeg.a)
elseif (WINDOWS)
- target_link_libraries( ll::libjpeg INTERFACE jpeglib)
+ target_link_libraries( ll::libjpeg INTERFACE
+ debug ${ARCH_PREBUILT_DIRS_DEBUG}/jpeg.lib
+ optimized ${ARCH_PREBUILT_DIRS_RELEASE}/jpeg.lib)
endif (LINUX)
target_include_directories( ll::libjpeg SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include)
diff --git a/indra/cmake/LLCommon.cmake b/indra/cmake/LLCommon.cmake
index 9e3707ff17..91e376352f 100644
--- a/indra/cmake/LLCommon.cmake
+++ b/indra/cmake/LLCommon.cmake
@@ -1,10 +1,8 @@
# -*- cmake -*-
+include(EXPAT)
include(APR)
include(Boost)
-include(EXPAT)
include(Tracy)
include(xxHash)
include(ZLIBNG)
-
-include(XmlRpcEpi)
diff --git a/indra/cmake/LLPhysicsExtensions.cmake b/indra/cmake/LLPhysicsExtensions.cmake
index 1cb1679d75..80d243d9f8 100644
--- a/indra/cmake/LLPhysicsExtensions.cmake
+++ b/indra/cmake/LLPhysicsExtensions.cmake
@@ -26,9 +26,6 @@ if (HAVOK)
elseif (HAVOK_TPV)
use_prebuilt_binary(llphysicsextensions_tpv)
target_link_libraries( llphysicsextensions_impl INTERFACE llphysicsextensions_tpv)
-elseif (NOT (USE_AUTOBUILD_3P OR USE_CONAN))
- target_link_libraries( llphysicsextensions_impl INTERFACE llphysicsextensionsstub)
- return ()
else (HAVOK)
use_prebuilt_binary(llphysicsextensions_stub)
set(LLPHYSICSEXTENSIONS_SRC_DIR ${LIBS_PREBUILT_DIR}/llphysicsextensions/stub)
diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake
index 1e77ec3346..e6adea477f 100644
--- a/indra/cmake/LLPrimitive.cmake
+++ b/indra/cmake/LLPrimitive.cmake
@@ -2,11 +2,11 @@
# these should be moved to their own cmake file
include(Prebuilt)
+include(Linking)
include(Boost)
include_guard()
-add_library( ll::pcre INTERFACE IMPORTED )
add_library( ll::minizip-ng INTERFACE IMPORTED )
add_library( ll::libxml INTERFACE IMPORTED )
add_library( ll::colladadom INTERFACE IMPORTED )
@@ -18,141 +18,136 @@ if( USE_CONAN )
"${CONAN_INCLUDE_DIRS_COLLADADOM}/collada-dom/1.4/" )
endif()
-if( USESYSTEMLIBS )
- if( LINUX OR CMAKE_SYSTEM_NAME MATCHES FreeBSD)
- # Build of the collada-dom for Linux and FreeBSD is done in
- # indra/llprimitive/CMakeLists.txt
- return ()
- endif( LINUX OR CMAKE_SYSTEM_NAME MATCHES FreeBSD)
- 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-r4.tar.gz)
+if (LINUX OR CMAKE_SYSTEM_NAME MATCHES FreeBSD)
+ # Build of the collada-dom for Linux and FreeBSD is done in
+ # indra/llprimitive/CMakeLists.txt
+ return()
+else ()
+ 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)
file(DOWNLOAD
- https://github.com/secondlife/3p-colladadom/archive/refs/tags/v2.3-r4.tar.gz
- ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4.tar.gz
+ https://github.com/secondlife/3p-colladadom/archive/refs/tags/v2.3-r8.tar.gz
+ ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8.tar.gz
)
- endif (NOT EXISTS ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4.tar.gz)
+ endif ()
file(ARCHIVE_EXTRACT
- INPUT ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4.tar.gz
+ INPUT ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8.tar.gz
DESTINATION ${CMAKE_BINARY_DIR}
)
- file(MAKE_DIRECTORY ${LIBS_PREBUILT_DIR}/include/collada/1.4)
- include(FindPkgConfig)
- pkg_check_modules(Minizip REQUIRED minizip)
- pkg_check_modules(Libxml2 REQUIRED libxml-2.0)
- pkg_check_modules(Libpcrecpp libpcrecpp)
- if( DARWIN )
- try_compile(COLLADADOM_RESULT
- PROJECT colladadom
- SOURCE_DIR ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4
- BINARY_DIR ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4
- TARGET collada14dom
- CMAKE_FLAGS
- -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
- -DCMAKE_SHARED_LINKER_FLAGS:STRING=-L${Libxml2_LIBRARY_DIRS}
- -Dlibpcrecpp_LIBRARIES:STRING=pcrecpp
- -DZLIB_LIBRARIES:STRING=${Libxml2_LIBRARIES}
- -DBoost_FILESYSTEM_LIBRARY:STRING=boost_filesystem-mt
- -DBoost_SYSTEM_LIBRARY:STRING=boost_system-mt
- -Dlibpcrecpp_CFLAGS_OTHERS:STRING=-I${Libpcrecpp_INCLUDE_DIRS}/libxml2
- -DEXTRA_COMPILE_FLAGS:STRING=-I${Minizip_INCLUDE_DIRS}
- -DBoost_CFLAGS:STRING=-I${Libpcrecpp_INCLUDE_DIRS}
- -DOPT_COLLADA14:BOOL=ON
- -DCOLLADA_DOM_INCLUDE_INSTALL_DIR:FILEPATH=${LIBS_PREBUILT_DIR}/include/collada
- -DCOLLADA_DOM_SOVERSION:STRING=0
- -DCOLLADA_DOM_VERSION:STRING=2.3-r4
- -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}
- -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.15
- OUTPUT_VARIABLE colladadom_installed
+ 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
)
- if (${COLLADADOM_RESULT})
- file(
- COPY
- ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4/src/1.4/libcollada14dom.2.3-r4.dylib
- ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4/src/1.4/libcollada14dom.0.dylib
- ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4/src/1.4/libcollada14dom.dylib
- DESTINATION ${LIBS_PREBUILT_DIR}/lib/release
- FOLLOW_SYMLINK_CHAIN
- )
- endif (${COLLADADOM_RESULT})
- else( DARWIN )
+ else ()
execute_process(
- COMMAND sed -i "" -e "s/SHARED/STATIC/g" 1.4/CMakeLists.txt
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4/src
+ COMMAND sed -i "" -e "s/SHARED/STATIC/" src/1.4/CMakeLists.txt
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8
)
- try_compile(COLLADADOM_RESULT
- PROJECT colladadom
- SOURCE_DIR ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4
- BINARY_DIR ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4
- TARGET collada14dom
- CMAKE_FLAGS
- -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
- -DCMAKE_SHARED_LINKER_FLAGS:STRING=-L${Libxml2_LIBRARY_DIRS}
- -Dlibpcrecpp_LIBRARIES:STRING=pcrecpp
- -DZLIB_LIBRARIES:STRING=${Libxml2_LIBRARIES}
- -DBoost_FILESYSTEM_LIBRARY:STRING=boost_filesystem
- -DBoost_SYSTEM_LIBRARY:STRING=boost_system
- -Dlibpcrecpp_CFLAGS_OTHERS:STRING=-I${Libxml2_INCLUDE_DIRS}
- -DEXTRA_COMPILE_FLAGS:STRING=-I${Minizip_INCLUDE_DIRS}
- -DBoost_CFLAGS:STRING=-I${Libpcrecpp_INCLUDE_DIRS}
- -DOPT_COLLADA14:BOOL=ON
- -DCOLLADA_DOM_INCLUDE_INSTALL_DIR:FILEPATH=${LIBS_PREBUILT_DIR}/include/collada
- -DCOLLADA_DOM_SOVERSION:STRING=0
- -DCOLLADA_DOM_VERSION:STRING=2.3-r4
+ endif ()
+ if (DARWIN)
+ set(BOOST_CFLAGS -I${Libxml2_LIBRARY_DIRS}exec/boost/1.87/include)
+ set(BOOST_LIBS -L${Minizip_LIBRARY_DIRS}exec/boost/1.87/lib)
+ set(BOOST_LIBRARY_SUFFIX -mt)
+ 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_88)
+ else ()
+ set(BOOST_LIBRARY_SUFFIX -vc143-mt-x64-1_88)
+ endif ()
+ 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
+ TARGET collada14dom
+ CMAKE_FLAGS
+ -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+ -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}
+ -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=${CMAKE_OSX_DEPLOYMENT_TARGET}
+ -DCMAKE_INSTALL_PREFIX:PATH=${LIBS_PREBUILT_DIR}
+ -DCMAKE_CXX_STANDARD:STRING=17
+ -DCMAKE_CXX_FLAGS:STRING=-I${Minizip_INCLUDE_DIRS}
+ -DBoost_CFLAGS:STRING=${BOOST_CFLAGS}
+ -DEXTRA_COMPILE_FLAGS:STRING=-I${Libxml2_INCLUDE_DIRS}
+ "-DCMAKE_SHARED_LINKER_FLAGS:STRING=-L${Minizip_LIBRARY_DIRS} ${BOOST_LIBS}"
+ -DBoost_FILESYSTEM_LIBRARY:STRING=boost_filesystem${BOOST_LIBRARY_SUFFIX}
+ -DBoost_SYSTEM_LIBRARY:STRING=boost_system${BOOST_LIBRARY_SUFFIX}
+ -DZLIB_LIBRARIES:STRING=${Libxml2_LIBRARIES}
+ -DOPT_COLLADA14:BOOL=ON
+ -DCOLLADA_DOM_INCLUDE_INSTALL_DIR:PATH=${LIBS_PREBUILT_DIR}/include/collada
+ )
+ 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
OUTPUT_VARIABLE colladadom_installed
)
- if (${COLLADADOM_RESULT})
- file(
- COPY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4/src/1.4/libcollada14dom.a
- DESTINATION ${LIBS_PREBUILT_DIR}/lib/release
- )
- endif (${COLLADADOM_RESULT})
- endif( DARWIN )
- if (${COLLADADOM_RESULT})
- file(REMOVE_RECURSE ${LIBS_PREBUILT_DIR}/include/collada/1.4)
+ file(REMOVE_RECURSE ${LIBS_PREBUILT_DIR}/include/collada)
file(
- COPY
- ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4/include/1.4
- ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4/include/1.5
- ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4/include/dae
- ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4/include/dae.h
- ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4/include/dom.h
- ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r4/include/modules
- DESTINATION ${LIBS_PREBUILT_DIR}/include/collada
+ COPY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8/include
+ DESTINATION ${LIBS_PREBUILT_DIR}/include
+ )
+ file(RENAME
+ ${LIBS_PREBUILT_DIR}/include/include
+ ${LIBS_PREBUILT_DIR}/include/collada
+ )
+ 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
+ ${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
+ OUTPUT_VARIABLE colladadom_installed
+ )
+ file(RENAME
+ ${ARCH_PREBUILT_DIRS}/libcollada14dom.a
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libcollada14dom.a
)
- file(WRITE ${PREBUILD_TRACKING_DIR}/colladadom_installed "0")
- endif (${COLLADADOM_RESULT})
- endif( ${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/colladadom_installed OR NOT ${colladadom_installed} EQUAL 0 )
-else( USESYSTEMLIBS )
+ endif ()
+ file(WRITE ${PREBUILD_TRACKING_DIR}/colladadom_installed "${colladadom_installed}")
+ endif ()
+endif ()
+
+if (FALSE)
use_system_binary( colladadom )
use_prebuilt_binary(colladadom)
use_prebuilt_binary(minizip-ng) # needed for colladadom
-use_prebuilt_binary(pcre)
use_prebuilt_binary(libxml2)
-endif( USESYSTEMLIBS )
-
-target_link_libraries( ll::pcre INTERFACE pcrecpp pcre )
if (WINDOWS)
- target_link_libraries( ll::minizip-ng INTERFACE libminizip )
+ target_link_libraries( ll::minizip-ng INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/minizip.lib )
else()
- target_link_libraries( ll::minizip-ng INTERFACE minizip )
+ target_link_libraries( ll::minizip-ng INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libminizip.a )
endif()
if (WINDOWS)
- target_link_libraries( ll::libxml INTERFACE libxml2_a)
+ target_link_libraries( ll::libxml INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libxml2.lib Bcrypt.lib)
else()
- target_link_libraries( ll::libxml INTERFACE xml2)
+ target_link_libraries( ll::libxml INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libxml2.a)
endif()
+endif (FALSE)
target_include_directories( ll::colladadom SYSTEM INTERFACE
${LIBS_PREBUILT_DIR}/include/collada
${LIBS_PREBUILT_DIR}/include/collada/1.4
)
if (WINDOWS)
- target_link_libraries(ll::colladadom INTERFACE libcollada14dom23-s ll::libxml ll::minizip-ng )
-elseif (DARWIN)
- target_link_libraries(ll::colladadom INTERFACE collada14dom ll::libxml ll::minizip-ng)
+ target_link_libraries(ll::colladadom INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libcollada14dom23-s.lib ll::libxml ll::minizip-ng )
else ()
- target_link_libraries(ll::colladadom INTERFACE collada14dom ll::libxml ll::minizip-ng)
+ target_link_libraries(ll::colladadom INTERFACE collada14dom ll::boost ll::libxml ll::minizip-ng)
endif()
diff --git a/indra/cmake/LLWindow.cmake b/indra/cmake/LLWindow.cmake
index 383051a4a6..007b8dfba6 100644
--- a/indra/cmake/LLWindow.cmake
+++ b/indra/cmake/LLWindow.cmake
@@ -7,20 +7,19 @@ include(Prebuilt)
include_guard()
add_library( ll::SDL INTERFACE IMPORTED )
-if (USESYSTEMLIBS AND NOT DARWIN)
+if (NOT (WINDOWS OR DARWIN))
include(FindPkgConfig)
pkg_check_modules(Sdl2 REQUIRED sdl2)
target_compile_definitions( ll::SDL INTERFACE LL_SDL=1)
target_include_directories(ll::SDL SYSTEM INTERFACE ${Sdl2_INCLUDE_DIRS})
target_link_directories(ll::SDL INTERFACE ${Sdl2_LIBRARY_DIRS})
- if (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
+ if (LINUX OR CMAKE_SYSTEM_NAME MATCHES FreeBSD)
list(APPEND Sdl2_LIBRARIES X11)
endif ()
target_link_libraries(ll::SDL INTERFACE ${Sdl2_LIBRARIES})
return ()
endif ()
-
if (LINUX)
#Must come first as use_system_binary can exit this file early
target_compile_definitions( ll::SDL INTERFACE LL_SDL_VERSION=2 LL_SDL)
diff --git a/indra/cmake/LibVLCPlugin.cmake b/indra/cmake/LibVLCPlugin.cmake
index 779576a485..45ef25a63c 100644
--- a/indra/cmake/LibVLCPlugin.cmake
+++ b/indra/cmake/LibVLCPlugin.cmake
@@ -5,56 +5,46 @@ include(Prebuilt)
include_guard()
add_library( ll::libvlc INTERFACE IMPORTED )
-if (USESYSTEMLIBS)
- if (DARWIN)
- if (CMAKE_OSX_ARCHITECTURES MATCHES arm64)
- if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/vlc_installed OR NOT ${vlc_installed} EQUAL 0)
- if (NOT EXISTS ${CMAKE_BINARY_DIR}/vlc-3.0.21-arm64.dmg)
- file(DOWNLOAD
- https://get.videolan.org/vlc/3.0.21/macosx/vlc-3.0.21-arm64.dmg
- ${CMAKE_BINARY_DIR}/vlc-3.0.21-arm64.dmg
- )
- endif (NOT EXISTS ${CMAKE_BINARY_DIR}/vlc-3.0.21-arm64.dmg)
- file(WRITE ${PREBUILD_TRACKING_DIR}/vlc_installed "0")
- endif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/vlc_installed OR NOT ${vlc_installed} EQUAL 0)
- execute_process(
- COMMAND hdiutil attach -noverify vlc-3.0.21-arm64.dmg
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+if (DARWIN)
+ if (CMAKE_OSX_ARCHITECTURES MATCHES x86_64)
+ set(ARCHITECTURE intel64)
+ else ()
+ set(ARCHITECTURE ${CMAKE_OSX_ARCHITECTURES})
+ endif ()
+ if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/vlc_installed OR NOT ${vlc_installed} EQUAL 0)
+ if (NOT EXISTS ${CMAKE_BINARY_DIR}/vlc-3.0.21-${ARCHITECTURE}.dmg)
+ file(DOWNLOAD
+ https://get.videolan.org/vlc/3.0.21/macosx/vlc-3.0.21-${ARCHITECTURE}.dmg
+ ${CMAKE_BINARY_DIR}/vlc-3.0.21-${ARCHITECTURE}.dmg
)
- else (CMAKE_OSX_ARCHITECTURES MATCHES arm64)
- if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/vlc_installed OR NOT ${vlc_installed} EQUAL 0)
- if (NOT EXISTS ${CMAKE_BINARY_DIR}/vlc-3.0.21-intel64.dmg)
- file(DOWNLOAD
- https://get.videolan.org/vlc/3.0.21/macosx/vlc-3.0.21-intel64.dmg
- ${CMAKE_BINARY_DIR}/vlc-3.0.21-intel64.dmg
- )
- endif (NOT EXISTS ${CMAKE_BINARY_DIR}/vlc-3.0.21-intel64.dmg)
- file(WRITE ${PREBUILD_TRACKING_DIR}/vlc_installed "0")
- endif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/vlc_installed OR NOT ${vlc_installed} EQUAL 0)
- execute_process(
- COMMAND hdiutil attach -noverify vlc-3.0.21-intel64.dmg
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
- )
- endif (CMAKE_OSX_ARCHITECTURES MATCHES arm64)
- target_include_directories( ll::libvlc SYSTEM INTERFACE /Volumes/VLC\ media\ player/VLC.app/Contents/MacOS/include)
- target_link_directories( ll::libvlc INTERFACE /Volumes/VLC\ media\ player/VLC.app/Contents/MacOS/lib)
- target_link_libraries( ll::libvlc INTERFACE vlc vlccore )
- else (DARWIN)
- include(FindPkgConfig)
- pkg_check_modules(Libvlc REQUIRED libvlc vlc-plugin)
- target_include_directories( ll::libvlc SYSTEM INTERFACE ${Libvlc_INCLUDE_DIRS} )
- target_link_directories( ll::libvlc INTERFACE ${Libvlc_LIBRARY_DIRS} )
- target_link_libraries( ll::libvlc INTERFACE ${Libvlc_LIBRARIES} )
- endif (DARWIN)
- set(LIBVLCPLUGIN ON CACHE BOOL
- "LIBVLCPLUGIN support for the llplugin/llmedia test apps.")
- return()
-else (USESYSTEMLIBS)
-
+ endif ()
+ file(WRITE ${PREBUILD_TRACKING_DIR}/vlc_installed "0")
+ endif ()
+ execute_process(
+ COMMAND hdiutil attach -noverify vlc-3.0.21-${ARCHITECTURE}.dmg
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+ )
+ target_include_directories( ll::libvlc SYSTEM INTERFACE /Volumes/VLC\ media\ player/VLC.app/Contents/MacOS/include)
+ target_link_directories( ll::libvlc INTERFACE /Volumes/VLC\ media\ player/VLC.app/Contents/MacOS/lib)
+ target_link_libraries( ll::libvlc INTERFACE vlc vlccore )
+elseif (WINDOWS)
use_prebuilt_binary(vlc-bin)
+ target_link_libraries( ll::libvlc INTERFACE
+ libvlc.lib
+ libvlccore.lib
+ )
+else ()
+ include(FindPkgConfig)
+ pkg_check_modules(Libvlc REQUIRED libvlc vlc-plugin)
+ target_include_directories( ll::libvlc SYSTEM INTERFACE ${Libvlc_INCLUDE_DIRS} )
+ target_link_directories( ll::libvlc INTERFACE ${Libvlc_LIBRARY_DIRS} )
+ target_link_libraries( ll::libvlc INTERFACE ${Libvlc_LIBRARIES} )
+endif ()
+
set(LIBVLCPLUGIN ON CACHE BOOL
"LIBVLCPLUGIN support for the llplugin/llmedia test apps.")
-endif (USESYSTEMLIBS)
+
+return()
if (WINDOWS)
target_link_libraries( ll::libvlc INTERFACE
diff --git a/indra/cmake/LibraryInstall.cmake b/indra/cmake/LibraryInstall.cmake
index b94841897c..a843f40c99 100644
--- a/indra/cmake/LibraryInstall.cmake
+++ b/indra/cmake/LibraryInstall.cmake
@@ -1,13 +1,13 @@
list(REMOVE_ITEM ${PROJECT_NAME}_HEADER_FILES CMakeLists.txt)
#install(FILES ${${PROJECT_NAME}_HEADER_FILES}
-# DESTINATION include/${PROJECT_NAME})
+# DESTINATION include/${PROJECT_NAME})
if (BUILD_SHARED_LIBS)
- if (EXISTS ${CMAKE_SYSROOT}/usr/lib/${ARCH}-linux-gnu)
- set(_LIB lib/${ARCH}-linux-gnu)
- elseif (EXISTS /lib64)
- set(_LIB lib64)
- else ()
- set(_LIB lib)
- endif ()
- install(TARGETS ${PROJECT_NAME} DESTINATION ${_LIB})
+ if (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES ubuntu))
+ set(_LIB lib/${ARCH}-linux-gnu)
+ elseif (${LINUX_DISTRO} MATCHES fedora OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed) OR (${LINUX_DISTRO} MATCHES gentoo))
+ set(_LIB lib${ADDRESS_SIZE})
+ else ()
+ set(_LIB lib)
+ endif ()
+ install(TARGETS ${PROJECT_NAME} DESTINATION ${_LIB})
endif ()
diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake
index 8e91dac109..a1a24de04b 100644
--- a/indra/cmake/Linking.cmake
+++ b/indra/cmake/Linking.cmake
@@ -67,7 +67,6 @@ elseif (WINDOWS)
legacy_stdio_definitions
)
elseif (DARWIN)
- include(CMakeFindFrameworks)
find_library(COREFOUNDATION_LIBRARY CoreFoundation)
find_library(CARBON_LIBRARY Carbon)
find_library(COCOA_LIBRARY Cocoa)
diff --git a/indra/cmake/Meshoptimizer.cmake b/indra/cmake/Meshoptimizer.cmake
index 0dc4069431..5058614580 100644
--- a/indra/cmake/Meshoptimizer.cmake
+++ b/indra/cmake/Meshoptimizer.cmake
@@ -6,74 +6,53 @@ include(Prebuilt)
include_guard()
add_library( ll::meshoptimizer INTERFACE IMPORTED )
-if (NOT USESYSTEMLIBS)
-use_system_binary(meshoptimizer)
-else (NOT USESYSTEMLIBS)
- if (NOT (${LINUX_DISTRO} MATCHES fedora OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed) OR DARWIN))
+#use_system_binary(meshoptimizer)
+if (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES ubuntu) OR CMAKE_SYSTEM_NAME MATCHES FreeBSD OR WINDOWS)
+ if (NOT WINDOWS)
find_package(meshoptimizer)
- target_link_libraries( ll::meshoptimizer INTERFACE meshoptimizer)
- endif (NOT (${LINUX_DISTRO} MATCHES fedora OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed) OR DARWIN))
-endif (NOT USESYSTEMLIBS)
-
-if (${LINUX_DISTRO} MATCHES fedora OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed) OR DARWIN OR NOT USESYSTEMLIBS)
- if (USESYSTEMLIBS)
- if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/meshoptimizer_installed OR NOT ${meshoptimizer_installed} EQUAL 0)
- if (NOT EXISTS ${CMAKE_BINARY_DIR}/meshoptimizer-0.21.tar.gz)
- file(DOWNLOAD
- https://github.com/zeux/meshoptimizer/archive/refs/tags/v0.21.tar.gz
- ${CMAKE_BINARY_DIR}/meshoptimizer-0.21.tar.gz
- )
- endif (NOT EXISTS ${CMAKE_BINARY_DIR}/meshoptimizer-0.21.tar.gz)
- file(ARCHIVE_EXTRACT
- INPUT ${CMAKE_BINARY_DIR}/meshoptimizer-0.21.tar.gz
- DESTINATION ${CMAKE_BINARY_DIR}
- )
- if (DARWIN)
- try_compile(MESHOPTIMIZER_RESULT
- PROJECT meshoptimizer
- SOURCE_DIR ${CMAKE_BINARY_DIR}/meshoptimizer-0.21
- BINARY_DIR ${CMAKE_BINARY_DIR}/meshoptimizer-0.21
- TARGET meshoptimizer
- CMAKE_FLAGS
- -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
- -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}
- -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.15
- OUTPUT_VARIABLE meshoptimizer_installed
- )
- else (DARWIN)
- try_compile(MESHOPTIMIZER_RESULT
- PROJECT meshoptimizer
- SOURCE_DIR ${CMAKE_BINARY_DIR}/meshoptimizer-0.21
- BINARY_DIR ${CMAKE_BINARY_DIR}/meshoptimizer-0.21
- TARGET meshoptimizer
- CMAKE_FLAGS
- -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
- OUTPUT_VARIABLE meshoptimizer_installed
- )
- endif (DARWIN)
- if (${MESHOPTIMIZER_RESULT})
- file(
- COPY ${CMAKE_BINARY_DIR}/meshoptimizer-0.21/src/meshoptimizer.h
- DESTINATION ${LIBS_PREBUILT_DIR}/include/meshoptimizer
- )
- file(
- COPY ${CMAKE_BINARY_DIR}/meshoptimizer-0.21/libmeshoptimizer.a
- DESTINATION ${LIBS_PREBUILT_DIR}/lib/release
- )
- file(WRITE ${PREBUILD_TRACKING_DIR}/meshoptimizer_installed "0")
- endif (${MESHOPTIMIZER_RESULT})
- endif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/meshoptimizer_installed OR NOT ${meshoptimizer_installed} EQUAL 0)
- else (USESYSTEMLIBS)
+ endif ()
+ target_link_libraries( ll::meshoptimizer INTERFACE meshoptimizer)
+ return ()
+elseif (LINUX AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 AND NOT (${LINUX_DISTRO} MATCHES gentoo))
use_prebuilt_binary(meshoptimizer)
- endif (USESYSTEMLIBS)
+elseif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/meshoptimizer_installed OR NOT ${meshoptimizer_installed} EQUAL 0)
+ if (NOT EXISTS ${CMAKE_BINARY_DIR}/meshoptimizer-0.21.tar.gz)
+ file(DOWNLOAD
+ https://github.com/zeux/meshoptimizer/archive/refs/tags/v0.21.tar.gz
+ ${CMAKE_BINARY_DIR}/meshoptimizer-0.21.tar.gz
+ )
+ endif ()
+ file(ARCHIVE_EXTRACT
+ INPUT ${CMAKE_BINARY_DIR}/meshoptimizer-0.21.tar.gz
+ DESTINATION ${CMAKE_BINARY_DIR}
+ )
+ try_compile(MESHOPTIMIZER_RESULT
+ PROJECT meshoptimizer
+ SOURCE_DIR ${CMAKE_BINARY_DIR}/meshoptimizer-0.21
+ BINARY_DIR ${CMAKE_BINARY_DIR}/meshoptimizer-0.21
+ TARGET meshoptimizer
+ CMAKE_FLAGS
+ -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+ -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}
+ -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=${CMAKE_OSX_DEPLOYMENT_TARGET}
+ -DCMAKE_INSTALL_PREFIX:PATH=${LIBS_PREBUILT_DIR}
+ -DCMAKE_INSTALL_LIBDIR:PATH=${ARCH_PREBUILT_DIRS_RELEASE}
+ -DCMAKE_INSTALL_INCLUDEDIR:PATH=${LIBS_PREBUILT_DIR}/include/meshoptimizer
+ )
+ if (${MESHOPTIMIZER_RESULT})
+ execute_process(
+ COMMAND ${CMAKE_MAKE_PROGRAM} install
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/meshoptimizer-0.21
+ OUTPUT_VARIABLE meshoptimizer_installed
+ )
+ file(WRITE ${PREBUILD_TRACKING_DIR}/meshoptimizer_installed "${meshoptimizer_installed}")
+ endif ()
+endif ()
if (WINDOWS)
target_link_libraries( ll::meshoptimizer INTERFACE meshoptimizer.lib)
-elseif (LINUX)
- target_link_libraries( ll::meshoptimizer INTERFACE libmeshoptimizer.a)
-elseif (DARWIN)
+else ()
target_link_libraries( ll::meshoptimizer INTERFACE libmeshoptimizer.a)
endif (WINDOWS)
target_include_directories( ll::meshoptimizer SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/meshoptimizer)
-endif (${LINUX_DISTRO} MATCHES fedora OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed) OR DARWIN OR NOT USESYSTEMLIBS)
diff --git a/indra/cmake/NDOF.cmake b/indra/cmake/NDOF.cmake
index 1bf6c5086c..d6e5e53ac9 100644
--- a/indra/cmake/NDOF.cmake
+++ b/indra/cmake/NDOF.cmake
@@ -8,8 +8,8 @@ add_library( ll::ndof INTERFACE IMPORTED )
if (NDOF)
if (WINDOWS OR DARWIN)
- if (USESYSTEMLIBS)
- if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/libndofdev_installed OR NOT ${libndofdev_installed} EQUAL 0)
+ #use_prebuilt_binary(libndofdev)
+ if (DARWIN AND (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/libndofdev_installed OR NOT ${libndofdev_installed} EQUAL 0))
file(DOWNLOAD
https://github.com/secondlife/3p-libndofdev/archive/refs/tags/v0.1.8e9edc7.tar.gz
${CMAKE_BINARY_DIR}/3p-libndofdev-0.1.8e9edc7.tar.gz
@@ -26,7 +26,7 @@ if (NDOF)
CMAKE_FLAGS
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}
- -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.15
+ -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=${CMAKE_OSX_DEPLOYMENT_TARGET}
-DCMAKE_C_FLAGS:STRING=-DTARGET_OS_MAC\ -Wno-int-conversion
OUTPUT_VARIABLE libndofdev_installed
)
@@ -37,14 +37,11 @@ if (NDOF)
)
file(
COPY ${CMAKE_BINARY_DIR}/3p-libndofdev-0.1.8e9edc7/libndofdev/src/libndofdev.dylib
- DESTINATION ${LIBS_PREBUILT_DIR}/lib/release
+ DESTINATION ${ARCH_PREBUILT_DIRS_RELEASE}
)
- file(WRITE ${PREBUILD_TRACKING_DIR}/libndofdev_installed "0")
- endif (${LIBNDOFDEV_RESULT})
- endif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/libndofdev_installed OR NOT ${libndofdev_installed} EQUAL 0)
- else (USESYSTEMLIBS)
- use_prebuilt_binary(libndofdev)
- endif (USESYSTEMLIBS)
+ file(WRITE ${PREBUILD_TRACKING_DIR}/libndofdev_installed "${libndofdev_installed}")
+ endif ()
+ endif ()
elseif (LINUX)
use_prebuilt_binary(open-libndofdev)
endif (WINDOWS OR DARWIN)
diff --git a/indra/cmake/NGHTTP2.cmake b/indra/cmake/NGHTTP2.cmake
index 6396a5bd01..7b2aa5971f 100644
--- a/indra/cmake/NGHTTP2.cmake
+++ b/indra/cmake/NGHTTP2.cmake
@@ -8,9 +8,7 @@ use_system_binary(nghttp2)
use_prebuilt_binary(nghttp2)
if (WINDOWS)
target_link_libraries( ll::nghttp2 INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/nghttp2.lib)
-elseif (DARWIN)
- target_link_libraries( ll::nghttp2 INTERFACE libnghttp2.dylib)
-else (WINDOWS)
- target_link_libraries( ll::nghttp2 INTERFACE libnghttp2.a )
-endif (WINDOWS)
+else ()
+ target_link_libraries( ll::nghttp2 INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libnghttp2.a)
+endif ()
target_include_directories( ll::nghttp2 SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/nghttp2)
diff --git a/indra/cmake/NVAPI.cmake b/indra/cmake/NVAPI.cmake
index ff5a5428e0..1bec691a18 100644
--- a/indra/cmake/NVAPI.cmake
+++ b/indra/cmake/NVAPI.cmake
@@ -4,10 +4,10 @@ include(Prebuilt)
set(NVAPI ON CACHE BOOL "Use NVAPI.")
if (NVAPI)
- if (WINDOWS)
+ if (WINDOWS AND NOT ($ENV{MSYSTEM_CARCH} MATCHES aarch64))
add_library( ll::nvapi INTERFACE IMPORTED )
target_link_libraries( ll::nvapi INTERFACE nvapi)
use_prebuilt_binary(nvapi)
- endif (WINDOWS)
+ endif ()
endif (NVAPI)
diff --git a/indra/cmake/OPENAL.cmake b/indra/cmake/OPENAL.cmake
index 6555027dc1..f63e55cdf3 100644
--- a/indra/cmake/OPENAL.cmake
+++ b/indra/cmake/OPENAL.cmake
@@ -19,15 +19,13 @@ endif()
if (USE_OPENAL)
add_library( ll::openal INTERFACE IMPORTED )
- if (NOT (USE_AUTOBUILD_3P OR USE_CONAN))
- target_compile_definitions( ll::openal INTERFACE LL_OPENAL=1)
- include(FindPkgConfig)
- pkg_check_modules(Openal REQUIRED freealut)
- target_include_directories(ll::openal SYSTEM INTERFACE ${Openal_INCLUDE_DIRS})
- target_link_directories(ll::openal INTERFACE ${Openal_LIBRARY_DIRS})
- target_link_libraries(ll::openal INTERFACE ${Openal_LIBRARIES})
- return ()
- endif ()
+ target_compile_definitions( ll::openal INTERFACE LL_OPENAL=1)
+ include(FindPkgConfig)
+ pkg_check_modules(Openal REQUIRED freealut)
+ target_include_directories(ll::openal SYSTEM INTERFACE ${Openal_INCLUDE_DIRS})
+ target_link_directories(ll::openal INTERFACE ${Openal_LIBRARY_DIRS})
+ target_link_libraries(ll::openal INTERFACE ${Openal_LIBRARIES})
+ return ()
target_include_directories( ll::openal SYSTEM INTERFACE "${LIBS_PREBUILT_DIR}/include/AL")
target_compile_definitions( ll::openal INTERFACE LL_OPENAL=1)
diff --git a/indra/cmake/OpenJPEG.cmake b/indra/cmake/OpenJPEG.cmake
index 9bb222d8e8..5729f6a10e 100644
--- a/indra/cmake/OpenJPEG.cmake
+++ b/indra/cmake/OpenJPEG.cmake
@@ -4,52 +4,70 @@ include(Prebuilt)
include_guard()
add_library( ll::openjpeg INTERFACE IMPORTED )
-if (NOT USESYSTEMLIBS)
-use_system_binary(openjpeg)
-elseif (${LINUX_DISTRO} MATCHES fedora OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed) OR DARWIN OR CMAKE_SYSTEM_NAME MATCHES FreeBSD)
- include(FindPkgConfig)
- pkg_check_modules(Openjpeg REQUIRED libopenjp2)
- target_include_directories(ll::openjpeg SYSTEM INTERFACE ${Openjpeg_INCLUDE_DIRS})
- target_link_directories(ll::openjpeg INTERFACE ${Openjpeg_LIBRARY_DIRS})
- target_link_libraries(ll::openjpeg INTERFACE ${Openjpeg_LIBRARIES})
-endif (NOT USESYSTEMLIBS)
-if (USESYSTEMLIBS AND (${LINUX_DISTRO} MATCHES fedora OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed) OR DARWIN OR CMAKE_SYSTEM_NAME MATCHES FreeBSD))
- if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/openjpeg_installed OR NOT ${openjpeg_installed} EQUAL 0)
- if (NOT EXISTS ${CMAKE_BINARY_DIR}/openjpeg-2.5.2.tar.gz)
- file(DOWNLOAD
- https://github.com/uclouvain/openjpeg/archive/refs/tags/v2.5.2.tar.gz
- ${CMAKE_BINARY_DIR}/openjpeg-2.5.2.tar.gz
- )
- endif (NOT EXISTS ${CMAKE_BINARY_DIR}/openjpeg-2.5.2.tar.gz)
- file(ARCHIVE_EXTRACT
- INPUT ${CMAKE_BINARY_DIR}/openjpeg-2.5.2.tar.gz
- DESTINATION ${CMAKE_BINARY_DIR}
+#use_system_binary(openjpeg)
+#use_prebuilt_binary(openjpeg)
+
+if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/openjpeg_installed OR NOT ${openjpeg_installed} EQUAL 0)
+ if (NOT EXISTS ${CMAKE_BINARY_DIR}/openjpeg-2.5.3.tar.gz)
+ file(DOWNLOAD
+ https://github.com/uclouvain/openjpeg/archive/refs/tags/v2.5.3.tar.gz
+ ${CMAKE_BINARY_DIR}/openjpeg-2.5.3.tar.gz
)
- execute_process(
- COMMAND cmake
+ endif ()
+ file(ARCHIVE_EXTRACT
+ INPUT ${CMAKE_BINARY_DIR}/openjpeg-2.5.3.tar.gz
+ DESTINATION ${CMAKE_BINARY_DIR}
+ )
+
+ if (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES ubuntu))
+ try_compile(OPENJPEG_RESULT
+ PROJECT OPENJPEG
+ SOURCE_DIR ${CMAKE_BINARY_DIR}/openjpeg-2.5.3
+ BINARY_DIR ${CMAKE_BINARY_DIR}/openjpeg-2.5.3
+ TARGET openjp2
+ CMAKE_FLAGS
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
- .
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/openjpeg-2.5.2
- RESULT_VARIABLE openjpeg_installed
- )
- file(
- COPY
- ${CMAKE_BINARY_DIR}/openjpeg-2.5.2/src/lib/openjp2/cio.h
- ${CMAKE_BINARY_DIR}/openjpeg-2.5.2/src/lib/openjp2/event.h
- ${CMAKE_BINARY_DIR}/openjpeg-2.5.2/src/lib/openjp2/opj_config_private.h
- DESTINATION ${LIBS_PREBUILT_DIR}/include/openjpeg-2.5
+ -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}
+ -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=${CMAKE_OSX_DEPLOYMENT_TARGET}
+ -DCMAKE_INSTALL_PREFIX:PATH=${LIBS_PREBUILT_DIR}
+ -DCMAKE_INSTALL_LIBDIR:PATH=${ARCH_PREBUILT_DIRS_RELEASE}
+ -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON
+ -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
+ -DBUILD_CODEC:BOOL=OFF
)
- file(WRITE ${PREBUILD_TRACKING_DIR}/openjpeg_installed "${openjpeg_installed}")
- endif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/openjpeg_installed OR NOT ${openjpeg_installed} EQUAL 0)
-else (USESYSTEMLIBS AND (${LINUX_DISTRO} MATCHES fedora OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed) OR DARWIN OR CMAKE_SYSTEM_NAME MATCHES FreeBSD))
-use_prebuilt_binary(openjpeg)
- if (NOT EXISTS ${LIBS_PREBUILT_DIR}/include/openjpeg-2.5)
- file(RENAME
- ${LIBS_PREBUILT_DIR}/include/openjpeg
- ${LIBS_PREBUILT_DIR}/include/openjpeg-2.5
+ if (${OPENJPEG_RESULT})
+ execute_process(
+ COMMAND ${CMAKE_MAKE_PROGRAM} install
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/openjpeg-2.5.3
+ OUTPUT_VARIABLE openjpeg_installed
+ )
+ endif ()
+
+ else ()
+ execute_process(
+ COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES} -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=${CMAKE_OSX_DEPLOYMENT_TARGET} -DCMAKE_INSTALL_PREFIX:PATH=${LIBS_PREBUILT_DIR} -DCMAKE_INSTALL_LIBDIR:PATH=${ARCH_PREBUILT_DIRS_RELEASE} -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS} -DBUILD_CODEC:BOOL=OFF
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/openjpeg-2.5.3
+ OUTPUT_VARIABLE openjpeg_installed
)
- endif (NOT EXISTS ${LIBS_PREBUILT_DIR}/include/openjpeg-2.5)
+ endif ()
+
+ file(
+ COPY
+ ${CMAKE_BINARY_DIR}/openjpeg-2.5.3/src/lib/openjp2/cio.h
+ ${CMAKE_BINARY_DIR}/openjpeg-2.5.3/src/lib/openjp2/event.h
+ ${CMAKE_BINARY_DIR}/openjpeg-2.5.3/src/lib/openjp2/opj_config_private.h
+ DESTINATION ${LIBS_PREBUILT_DIR}/include/openjpeg-2.5
+ )
+ file(WRITE ${PREBUILD_TRACKING_DIR}/openjpeg_installed "${openjpeg_installed}")
+endif ()
+if (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES ubuntu))
target_link_libraries(ll::openjpeg INTERFACE openjp2 )
-endif (USESYSTEMLIBS AND (${LINUX_DISTRO} MATCHES fedora OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed) OR DARWIN OR CMAKE_SYSTEM_NAME MATCHES FreeBSD))
+else ()
+ include(FindPkgConfig)
+ pkg_check_modules(Openjpeg REQUIRED libopenjp2)
+ target_include_directories(ll::openjpeg SYSTEM INTERFACE ${Openjpeg_INCLUDE_DIRS})
+ target_link_directories(ll::openjpeg INTERFACE ${Openjpeg_LIBRARY_DIRS})
+ target_link_libraries(ll::openjpeg INTERFACE ${Openjpeg_LIBRARIES})
+endif ()
target_include_directories( ll::openjpeg SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include)
diff --git a/indra/cmake/OpenSSL.cmake b/indra/cmake/OpenSSL.cmake
index 118ca84132..afa2ba377d 100644
--- a/indra/cmake/OpenSSL.cmake
+++ b/indra/cmake/OpenSSL.cmake
@@ -1,18 +1,18 @@
# -*- cmake -*-
include(Prebuilt)
+include(Linking)
include_guard()
add_library( ll::openssl INTERFACE IMPORTED )
-if (NOT USESYSTEMLIBS)
+if ($ENV{MSYSTEM_CARCH} MATCHES aarch64)
use_system_binary(openssl)
-endif (NOT USESYSTEMLIBS)
-if (DARWIN OR LINUX OR NOT USESYSTEMLIBS)
+elseif (LINUX AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 OR DARWIN OR WINDOWS)
use_prebuilt_binary(openssl)
if (DARWIN)
execute_process(
COMMAND lipo -archs libcrypto.a
- WORKING_DIRECTORY ${LIBS_PREBUILT_DIR}/lib/release
+ WORKING_DIRECTORY ${ARCH_PREBUILT_DIRS_RELEASE}
OUTPUT_VARIABLE crypto_archs
OUTPUT_STRIP_TRAILING_WHITESPACE
)
@@ -22,12 +22,12 @@ use_prebuilt_binary(openssl)
libcrypto.a
-thin ${CMAKE_OSX_ARCHITECTURES}
-output libcrypto.a
- WORKING_DIRECTORY ${LIBS_PREBUILT_DIR}/lib/release
+ WORKING_DIRECTORY ${ARCH_PREBUILT_DIRS_RELEASE}
)
- endif (NOT ${crypto_archs} STREQUAL ${CMAKE_OSX_ARCHITECTURES})
+ endif ()
execute_process(
COMMAND lipo -archs libssl.a
- WORKING_DIRECTORY ${LIBS_PREBUILT_DIR}/lib/release
+ WORKING_DIRECTORY ${ARCH_PREBUILT_DIRS_RELEASE}
OUTPUT_VARIABLE ssl_archs
OUTPUT_STRIP_TRAILING_WHITESPACE
)
@@ -37,152 +37,44 @@ use_prebuilt_binary(openssl)
libssl.a
-thin ${CMAKE_OSX_ARCHITECTURES}
-output libssl.a
- WORKING_DIRECTORY ${LIBS_PREBUILT_DIR}/lib/release
+ WORKING_DIRECTORY ${ARCH_PREBUILT_DIRS_RELEASE}
)
- endif (NOT ${ssl_archs} STREQUAL ${CMAKE_OSX_ARCHITECTURES})
- endif (DARWIN)
+ endif ()
+ endif ()
elseif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/openssl_installed OR NOT ${openssl_installed} EQUAL 0)
- if (NOT EXISTS ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55.tar.gz)
+ if (NOT EXISTS ${CMAKE_BINARY_DIR}/OpenSSL_1_1_1w.tar.gz)
file(DOWNLOAD
- https://github.com/secondlife/3p-openssl/archive/refs/tags/v1.1.1q.de53f55.tar.gz
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55.tar.gz
+ https://github.com/openssl/openssl/archive/refs/tags/OpenSSL_1_1_1w.tar.gz
+ ${CMAKE_BINARY_DIR}/OpenSSL_1_1_1w.tar.gz
)
- endif (NOT EXISTS ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55.tar.gz)
+ endif ()
file(ARCHIVE_EXTRACT
- INPUT ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55.tar.gz
+ INPUT ${CMAKE_BINARY_DIR}/OpenSSL_1_1_1w.tar.gz
DESTINATION ${CMAKE_BINARY_DIR}
)
execute_process(
- COMMAND ./config no-shared
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl
+ COMMAND ./config no-shared --openssldir=${LIBS_PREBUILT_DIR}/ssl --prefix=${LIBS_PREBUILT_DIR} --libdir=${ARCH_PREBUILT_DIRS_RELEASE}
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/openssl-OpenSSL_1_1_1w
)
execute_process(
COMMAND make -j${MAKE_JOBS}
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl
- RESULT_VARIABLE openssl_installed
- )
- file(
- COPY
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/aes.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/bnerr.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/conf_api.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/dtls1.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/evperr.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/obj_mac.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/pkcs12.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/rsa.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/stack.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/x509.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/asn1.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/buffer.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/conferr.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/e_os2.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/hmac.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/objects.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/pkcs12err.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/rsaerr.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/store.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/x509_vfy.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/asn1_mac.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/buffererr.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/crypto.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/ebcdic.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/idea.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/objectserr.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/pkcs7.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/safestack.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/storeerr.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/x509err.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/asn1err.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/camellia.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/cryptoerr.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/ec.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/kdf.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/ocsp.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/pkcs7err.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/seed.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/symhacks.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/x509v3.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/asn1t.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/cast.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/ct.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/ecdh.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/kdferr.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/ocsperr.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/rand.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/sha.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/tls1.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/x509v3err.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/async.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/cmac.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/cterr.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/ecdsa.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/lhash.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/opensslconf.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/rand_drbg.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/srp.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/ts.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/asyncerr.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/cms.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/des.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/ecerr.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/md2.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/opensslv.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/randerr.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/srtp.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/tserr.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/bio.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/cmserr.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/dh.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/engine.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/md4.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/ossl_typ.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/rc2.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/ssl.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/txt_db.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/bioerr.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/comp.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/dherr.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/engineerr.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/md5.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/pem.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/rc4.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/ssl2.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/ui.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/blowfish.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/comperr.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/dsa.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/err.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/mdc2.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/pem2.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/rc5.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/ssl3.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/uierr.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/bn.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/conf.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/dsaerr.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/evp.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/modes.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/pemerr.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/ripemd.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/sslerr.h
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/include/openssl/whrlpool.h
- DESTINATION ${LIBS_PREBUILT_DIR}/include/openssl
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/openssl-OpenSSL_1_1_1w
)
- file(
- COPY
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/libcrypto.a
- ${CMAKE_BINARY_DIR}/3p-openssl-1.1.1q.de53f55/openssl/libssl.a
- DESTINATION ${LIBS_PREBUILT_DIR}/lib/release
+ execute_process(
+ COMMAND make install
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/openssl-OpenSSL_1_1_1w
+ RESULT_VARIABLE openssl_installed
)
file(WRITE ${PREBUILD_TRACKING_DIR}/openssl_installed "${openssl_installed}")
-endif (DARWIN OR LINUX OR NOT USESYSTEMLIBS)
+endif ()
if (WINDOWS)
- target_link_libraries(ll::openssl INTERFACE libssl libcrypto)
+ target_link_libraries(ll::openssl INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libssl.lib ${ARCH_PREBUILT_DIRS_RELEASE}/libcrypto.lib Crypt32.lib)
elseif (LINUX)
- target_link_libraries(ll::openssl INTERFACE ssl crypto dl)
+ target_link_libraries(ll::openssl INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libssl.a ${ARCH_PREBUILT_DIRS_RELEASE}/libcrypto.a dl)
else()
target_link_libraries(ll::openssl INTERFACE ssl crypto)
endif (WINDOWS)
+if (NOT WINDOWS)
target_include_directories( ll::openssl SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include)
+endif ()
diff --git a/indra/cmake/OpenXR.cmake b/indra/cmake/OpenXR.cmake
new file mode 100644
index 0000000000..b37ed50939
--- /dev/null
+++ b/indra/cmake/OpenXR.cmake
@@ -0,0 +1,24 @@
+# -*- cmake -*-
+
+include(Prebuilt)
+
+include_guard()
+add_library( ll::openxr INTERFACE IMPORTED )
+
+if(USE_CONAN )
+ target_link_libraries( ll::openxr INTERFACE CONAN_PKG::openxr )
+ return()
+elseif (CMAKE_SYSTEM_PROCESSOR MATCHES aarch64)
+ return()
+endif()
+
+use_prebuilt_binary(openxr)
+if (WINDOWS)
+ target_link_libraries( ll::openxr INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/openxr_loader.lib )
+else()
+ target_link_libraries( ll::openxr INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libopenxr_loader.a )
+endif (WINDOWS)
+
+if( NOT LINUX )
+ target_include_directories( ll::openxr SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include)
+endif()
diff --git a/indra/cmake/PNG.cmake b/indra/cmake/PNG.cmake
index 044262bc8d..e5893e9a20 100644
--- a/indra/cmake/PNG.cmake
+++ b/indra/cmake/PNG.cmake
@@ -7,8 +7,8 @@ add_library( ll::libpng INTERFACE IMPORTED )
use_system_binary(libpng)
use_prebuilt_binary(libpng)
if (WINDOWS)
- target_link_libraries(ll::libpng INTERFACE libpng16)
+ target_link_libraries(ll::libpng INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libpng16.lib)
else()
- target_link_libraries(ll::libpng INTERFACE png16 )
+ target_link_libraries(ll::libpng INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libpng16.a)
endif()
target_include_directories( ll::libpng SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/libpng16)
diff --git a/indra/cmake/Prebuilt.cmake b/indra/cmake/Prebuilt.cmake
index 4034599fde..2d5eb5d805 100644
--- a/indra/cmake/Prebuilt.cmake
+++ b/indra/cmake/Prebuilt.cmake
@@ -40,38 +40,37 @@ macro (use_prebuilt_binary _binary)
--install-dir=${AUTOBUILD_INSTALL_DIR}
${_binary} ")
endif(DEBUG_PREBUILT)
- if(USESYSTEMLIBS)
+ execute_process(COMMAND xmllint
+ --xpath
+ "//map/map/map/map/map/map/string[contains(text(),'${_binary}')][contains(text(),'common')]/text()" autobuild.xml
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/..
+ OUTPUT_VARIABLE package_url
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ if ("${package_url}" STREQUAL "")
+ string(TOLOWER ${CMAKE_SYSTEM_NAME} system_name)
+ if (${system_name} MATCHES freebsd)
+ set(system_name "linux")
+ endif (${system_name} MATCHES freebsd)
execute_process(COMMAND xmllint
--xpath
- "//map/map/map/map/map/map/string[contains(text(),'${_binary}')][contains(text(),'common')]/text()" autobuild.xml
+ "//map/map/map/map/map/map/string[contains(text(),'${_binary}')][contains(text(),'${system_name}')]/text()" autobuild.xml
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/..
OUTPUT_VARIABLE package_url
OUTPUT_STRIP_TRAILING_WHITESPACE
)
- if ("${package_url}" STREQUAL "")
- string(TOLOWER ${CMAKE_SYSTEM_NAME} system_name)
- if (${system_name} MATCHES freebsd)
- set(system_name "linux")
- endif (${system_name} MATCHES freebsd)
- execute_process(COMMAND xmllint
- --xpath
- "//map/map/map/map/map/map/string[contains(text(),'${_binary}')][contains(text(),'${system_name}')]/text()" autobuild.xml
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/..
- OUTPUT_VARIABLE package_url
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
- endif ("${package_url}" STREQUAL "")
- string(REGEX REPLACE "^https://(megapahit.net/downloads|github.com/secondlife|automated-builds-secondlife-com.s3.amazonaws.com/ct2).*/" "" package_name ${package_url})
- file(DOWNLOAD
- ${package_url}
- ${CMAKE_BINARY_DIR}/${package_name}
- )
- file(ARCHIVE_EXTRACT
- INPUT ${CMAKE_BINARY_DIR}/${package_name}
- DESTINATION ${AUTOBUILD_INSTALL_DIR}
- )
- set(${_binary}_installed 0)
- else(USESYSTEMLIBS)
+ endif ("${package_url}" STREQUAL "")
+ string(REGEX REPLACE "^https?://(megapahit.net/downloads|github.com/secondlife|automated-builds-secondlife-com.s3.amazonaws.com/ct2).*/" "" package_name ${package_url})
+ file(DOWNLOAD
+ ${package_url}
+ ${CMAKE_BINARY_DIR}/${package_name}
+ )
+ file(ARCHIVE_EXTRACT
+ INPUT ${CMAKE_BINARY_DIR}/${package_name}
+ DESTINATION ${AUTOBUILD_INSTALL_DIR}
+ )
+ set(${_binary}_installed 0)
+ if(FALSE)
execute_process(COMMAND "${AUTOBUILD_EXECUTABLE}"
install
--install-dir=${AUTOBUILD_INSTALL_DIR}
@@ -79,7 +78,7 @@ macro (use_prebuilt_binary _binary)
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
RESULT_VARIABLE ${_binary}_installed
)
- endif(USESYSTEMLIBS)
+ endif()
file(WRITE ${PREBUILD_TRACKING_DIR}/${_binary}_installed "${${_binary}_installed}")
endif(${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/${_binary}_installed OR NOT ${${_binary}_installed} EQUAL 0)
@@ -92,6 +91,22 @@ endmacro (use_prebuilt_binary _binary)
#Sadly we need a macro here, otherwise the return() will not properly work
macro ( use_system_binary package )
+ include(FindPkgConfig)
+ pkg_check_modules(${package} ${package})
+ if( ${package}_FOUND )
+ target_link_directories( ll::${package} INTERFACE ${${package}_LIBRARY_DIRS} )
+ else()
+ pkg_check_modules(${package} lib${package})
+ if( ${package}_FOUND )
+ target_link_directories( ll::${package} INTERFACE ${${package}_LIBRARY_DIRS} )
+ else()
+ find_package( ${package} REQUIRED )
+ endif()
+ endif()
+ target_include_directories( ll::${package} SYSTEM INTERFACE ${${package}_INCLUDE_DIRS} )
+ target_link_libraries( ll::${package} INTERFACE ${${package}_LIBRARIES} )
+ return()
+
if( USE_CONAN )
target_link_libraries( ll::${package} INTERFACE CONAN_PKG::${package} )
foreach( extra_pkg "${ARGN}" )
@@ -100,22 +115,6 @@ macro ( use_system_binary package )
endif()
endforeach()
return()
- elseif( NOT USE_AUTOBUILD_3P )
- include(FindPkgConfig)
- pkg_check_modules(${package} ${package})
- if( ${package}_FOUND )
- target_link_directories( ll::${package} INTERFACE ${${package}_LIBRARY_DIRS} )
- else()
- pkg_check_modules(${package} lib${package})
- if( ${package}_FOUND )
- target_link_directories( ll::${package} INTERFACE ${${package}_LIBRARY_DIRS} )
- else()
- find_package( ${package} REQUIRED )
- endif()
- endif()
- target_include_directories( ll::${package} SYSTEM INTERFACE ${${package}_INCLUDE_DIRS} )
- target_link_libraries( ll::${package} INTERFACE ${${package}_LIBRARIES} )
- return()
endif()
endmacro()
@@ -123,10 +122,10 @@ 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(DOWNLOAD ${url} ${filename})
file(ARCHIVE_EXTRACT INPUT ${filename}
- DESTINATION ${CMAKE_SOURCE_DIR}/../..)
+ DESTINATION ${CMAKE_BINARY_DIR})
execute_process(COMMAND ${Patch_EXECUTABLE} "-p1" "-i"
${CMAKE_SOURCE_DIR}/../patches/${patch}
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/../../${dirname})
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/${dirname})
endmacro()
diff --git a/indra/cmake/Python.cmake b/indra/cmake/Python.cmake
index da5d2ef22c..7cce190f6a 100644
--- a/indra/cmake/Python.cmake
+++ b/indra/cmake/Python.cmake
@@ -13,7 +13,7 @@ elseif (WINDOWS)
foreach(hive HKEY_CURRENT_USER HKEY_LOCAL_MACHINE)
# prefer more recent Python versions to older ones, if multiple versions
# are installed
- foreach(pyver 3.12 3.11 3.10 3.9 3.8 3.7)
+ foreach(pyver 3.13 3.12 3.11 3.10 3.9 3.8 3.7)
list(APPEND regpaths "[${hive}\\SOFTWARE\\Python\\PythonCore\\${pyver}\\InstallPath]")
endforeach()
endforeach()
diff --git a/indra/cmake/Tracy.cmake b/indra/cmake/Tracy.cmake
index 32c02edb93..a7eac2711f 100644
--- a/indra/cmake/Tracy.cmake
+++ b/indra/cmake/Tracy.cmake
@@ -4,14 +4,37 @@ include(Prebuilt)
include_guard()
add_library( ll::tracy INTERFACE IMPORTED )
-set(USE_TRACY OFF CACHE BOOL "Use Tracy profiler.")
+# default Tracy profiling on for test builds, but off for all others
+string(TOLOWER ${VIEWER_CHANNEL} channel_lower)
+if(channel_lower MATCHES "^second life test")
+ option(USE_TRACY "Use Tracy profiler." ON)
+else()
+ option(USE_TRACY "Use Tracy profiler." OFF)
+endif()
if (USE_TRACY)
+ option(USE_TRACY_ON_DEMAND "Use on-demand Tracy profiling." ON)
+ option(USE_TRACY_LOCAL_ONLY "Disallow remote Tracy profiling." OFF)
+
use_system_binary(tracy)
use_prebuilt_binary(tracy)
target_include_directories( ll::tracy SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/tracy)
- target_link_libraries( ll::tracy INTERFACE TracyClient )
+
+ target_compile_definitions(ll::tracy INTERFACE -DTRACY_ENABLE=1 -DTRACY_ONLY_IPV4=1)
+
+ if (USE_TRACY_ON_DEMAND)
+ target_compile_definitions(ll::tracy INTERFACE -DTRACY_ON_DEMAND=1)
+ endif ()
+
+ if (USE_TRACY_LOCAL_ONLY)
+ target_compile_definitions(ll::tracy INTERFACE -DTRACY_NO_BROADCAST=1 -DTRACY_ONLY_LOCALHOST=1)
+ endif ()
+
+ # GHA runners don't always provide invariant TSC support, but always build with LL_TESTS enabled
+ if (DARWIN AND LL_TESTS)
+ target_compile_definitions(ll::tracy INTERFACE -DTRACY_TIMER_FALLBACK=1)
+ endif ()
# See: indra/llcommon/llprofiler.h
add_compile_definitions(LL_PROFILER_CONFIGURATION=3)
diff --git a/indra/cmake/UI.cmake b/indra/cmake/UI.cmake
index a3423bb895..85e74f03e4 100644
--- a/indra/cmake/UI.cmake
+++ b/indra/cmake/UI.cmake
@@ -5,10 +5,7 @@ include(GLIB)
add_library( ll::uilibraries INTERFACE IMPORTED )
-if (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
- if (NOT USESYSTEMLIBS)
- use_prebuilt_binary(fltk)
- endif ()
+if (LINUX OR CMAKE_SYSTEM_NAME MATCHES FreeBSD)
target_compile_definitions(ll::uilibraries INTERFACE LL_FLTK=1 LL_X11=1 )
if( USE_CONAN )
@@ -30,7 +27,7 @@ if (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
ll::gio
)
-endif (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
+endif ()
if( WINDOWS )
target_link_libraries( ll::uilibraries INTERFACE
opengl32
@@ -48,7 +45,7 @@ if( WINDOWS )
)
endif()
-if (NOT USESYSTEMLIBS)
+if (FALSE)
target_include_directories( ll::uilibraries SYSTEM INTERFACE
${LIBS_PREBUILT_DIR}/include
)
diff --git a/indra/cmake/URIPARSER.cmake b/indra/cmake/URIPARSER.cmake
deleted file mode 100644
index 6c33ff70e1..0000000000
--- a/indra/cmake/URIPARSER.cmake
+++ /dev/null
@@ -1,19 +0,0 @@
-# -*- cmake -*-
-
-include_guard()
-
-include(Prebuilt)
-
-add_library( ll::uriparser INTERFACE IMPORTED )
-
-use_system_binary( uriparser )
-
-use_prebuilt_binary(uriparser)
-if (WINDOWS)
- target_link_libraries( ll::uriparser INTERFACE uriparser)
-elseif (LINUX)
- target_link_libraries( ll::uriparser INTERFACE uriparser)
-elseif (DARWIN)
- target_link_libraries( ll::uriparser INTERFACE liburiparser.dylib)
-endif (WINDOWS)
-target_include_directories( ll::uriparser SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/uriparser)
diff --git a/indra/cmake/UnixInstall.cmake b/indra/cmake/UnixInstall.cmake
index 7aa05ff5a6..1fd17a0142 100644
--- a/indra/cmake/UnixInstall.cmake
+++ b/indra/cmake/UnixInstall.cmake
@@ -14,13 +14,13 @@ if (INSTALL)
"Top-level installation directory.")
endif (CMAKE_SYSTEM_NAME MATCHES FreeBSD)
- if (EXISTS ${CMAKE_SYSROOT}/usr/lib/${ARCH}-linux-gnu)
+ if (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES ubuntu))
set(_LIB lib/${ARCH}-linux-gnu)
- elseif (EXISTS /lib64)
- set(_LIB lib64)
- else (EXISTS ${CMAKE_SYSROOT}/usr/lib/${ARCH}-linux-gnu)
+ elseif (${LINUX_DISTRO} MATCHES fedora OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed) OR (${LINUX_DISTRO} MATCHES gentoo))
+ set(_LIB lib${ADDRESS_SIZE})
+ else ()
set(_LIB lib)
- endif (EXISTS ${CMAKE_SYSROOT}/usr/lib/${ARCH}-linux-gnu)
+ endif ()
set(INSTALL_LIBRARY_DIR ${INSTALL_PREFIX}/${_LIB} CACHE PATH
"Installation directory for read-only shared files.")
@@ -35,7 +35,13 @@ if (INSTALL)
set(APP_SHARE_DIR ${INSTALL_SHARE_DIR}/${VIEWER_BINARY_NAME}
CACHE PATH
"Installation directory for read-only data files.")
- set(APP_LIBEXEC_DIR ${INSTALL_PREFIX}/libexec/${VIEWER_BINARY_NAME}
- CACHE PATH
- "Installation directory for non-manual executables.")
+ if (${LINUX_DISTRO} MATCHES arch)
+ set(APP_LIBEXEC_DIR ${INSTALL_PREFIX}/lib/${VIEWER_BINARY_NAME}
+ CACHE PATH
+ "Installation directory for non-manual executables.")
+ else (${LINUX_DISTRO} MATCHES arch)
+ set(APP_LIBEXEC_DIR ${INSTALL_PREFIX}/libexec/${VIEWER_BINARY_NAME}
+ CACHE PATH
+ "Installation directory for non-manual executables.")
+ endif (${LINUX_DISTRO} MATCHES arch)
endif (INSTALL)
diff --git a/indra/cmake/ViewerMiscLibs.cmake b/indra/cmake/ViewerMiscLibs.cmake
index 0a5191ff08..4ab69e30aa 100644
--- a/indra/cmake/ViewerMiscLibs.cmake
+++ b/indra/cmake/ViewerMiscLibs.cmake
@@ -1,23 +1,23 @@
# -*- cmake -*-
include(Prebuilt)
-if (NOT DARWIN)
+if (NOT (DARWIN OR WINDOWS))
add_library( ll::fontconfig INTERFACE IMPORTED )
find_package(Fontconfig REQUIRED)
target_link_libraries( ll::fontconfig INTERFACE Fontconfig::Fontconfig )
-endif (NOT DARWIN)
+endif ()
-if( USE_AUTOBUILD_3P )
+if (FALSE)
+if( NOT USE_CONAN )
use_prebuilt_binary(libhunspell)
endif()
-if (NOT USESYSTEMLIBS)
use_prebuilt_binary(slvoice)
-endif (NOT USESYSTEMLIBS)
+endif (FALSE)
-if ((${LINUX_DISTRO} MATCHES debian OR DARWIN) OR NOT USESYSTEMLIBS)
+if (${LINUX_DISTRO} MATCHES debian OR DARWIN OR WINDOWS)
use_prebuilt_binary(nanosvg)
-endif ((${LINUX_DISTRO} MATCHES debian OR DARWIN) OR NOT USESYSTEMLIBS)
+endif ()
use_prebuilt_binary(viewer-fonts)
use_prebuilt_binary(emoji_shortcodes)
diff --git a/indra/cmake/VulkanGltf.cmake b/indra/cmake/VulkanGltf.cmake
index d7083a33c9..94541d5307 100644
--- a/indra/cmake/VulkanGltf.cmake
+++ b/indra/cmake/VulkanGltf.cmake
@@ -1,7 +1,5 @@
# -*- cmake -*-
include(Prebuilt)
-if (NOT USESYSTEMLIBS)
use_prebuilt_binary(vulkan_gltf)
-endif ()
diff --git a/indra/cmake/WebRTC.cmake b/indra/cmake/WebRTC.cmake
index be51957794..5a750fe7f3 100644
--- a/indra/cmake/WebRTC.cmake
+++ b/indra/cmake/WebRTC.cmake
@@ -6,21 +6,25 @@ include_guard()
add_library( ll::webrtc INTERFACE IMPORTED )
target_include_directories( ll::webrtc SYSTEM INTERFACE "${LIBS_PREBUILT_DIR}/include/webrtc" "${LIBS_PREBUILT_DIR}/include/webrtc/third_party/abseil-cpp")
-if (CMAKE_OSX_ARCHITECTURES MATCHES arm64 OR (${LINUX_DISTRO} MATCHES fedora) OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed))
+if (${LINUX_DISTRO} MATCHES debian OR CMAKE_OSX_ARCHITECTURES MATCHES x86_64 OR WINDOWS)
+use_prebuilt_binary(webrtc)
+elseif (NOT (CMAKE_SYSTEM_NAME MATCHES FreeBSD OR ($ENV{MSYSTEM_CARCH} MATCHES aarch64)))
target_compile_definitions(ll::webrtc INTERFACE CM_WEBRTC=1)
if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/webrtc_installed OR NOT ${webrtc_installed} EQUAL 0)
- if (LINUX)
- set(WEBRTC_PLATFORM linux-x64)
- else (LINUX)
- set(WEBRTC_PLATFORM macos-arm64)
- endif (LINUX)
+ if (DARWIN)
+ set(WEBRTC_PLATFORM macos-arm64)
+ elseif (CMAKE_SYSTEM_PROCESSOR MATCHES aarch64)
+ set(WEBRTC_PLATFORM linux-arm64)
+ else ()
+ set(WEBRTC_PLATFORM linux-x64)
+ endif ()
if (NOT EXISTS ${CMAKE_BINARY_DIR}/libwebrtc-${WEBRTC_PLATFORM}.tar.xz)
file(DOWNLOAD
https://github.com/crow-misia/libwebrtc-bin/releases/download/114.5735.6.1/libwebrtc-${WEBRTC_PLATFORM}.tar.xz
${CMAKE_BINARY_DIR}/libwebrtc-${WEBRTC_PLATFORM}.tar.xz
SHOW_PROGRESS
)
- endif (NOT EXISTS ${CMAKE_BINARY_DIR}/libwebrtc-${WEBRTC_PLATFORM}.tar.xz)
+ endif ()
file(ARCHIVE_EXTRACT
INPUT ${CMAKE_BINARY_DIR}/libwebrtc-${WEBRTC_PLATFORM}.tar.xz
DESTINATION ${LIBS_PREBUILT_DIR}
@@ -28,54 +32,52 @@ if (CMAKE_OSX_ARCHITECTURES MATCHES arm64 OR (${LINUX_DISTRO} MATCHES fedora) OR
file(REMOVE_RECURSE ${LIBS_PREBUILT_DIR}/include/webrtc)
file(MAKE_DIRECTORY ${LIBS_PREBUILT_DIR}/include/webrtc)
foreach(directory
- api
- audio
- base
- build
- buildtools
- call
- common_audio
- common_video
- examples
- logging
- media
- modules
- net
- p2p
- pc
- rtc_base
- rtc_tools
- sdk
- stats
- system_wrappers
- test
- testing
- third_party
- tools
- video
- )
- file(RENAME
- ${LIBS_PREBUILT_DIR}/include/${directory}
- ${LIBS_PREBUILT_DIR}/include/webrtc/${directory}
+ api
+ audio
+ base
+ build
+ buildtools
+ call
+ common_audio
+ common_video
+ examples
+ logging
+ media
+ modules
+ net
+ p2p
+ pc
+ rtc_base
+ rtc_tools
+ sdk
+ stats
+ system_wrappers
+ test
+ testing
+ third_party
+ tools
+ video
)
+ file(RENAME
+ ${LIBS_PREBUILT_DIR}/include/${directory}
+ ${LIBS_PREBUILT_DIR}/include/webrtc/${directory}
+ )
endforeach()
file(RENAME
- ${LIBS_PREBUILT_DIR}/lib/libwebrtc.a
- ${LIBS_PREBUILT_DIR}/lib/release/libwebrtc.a
- )
- if (CMAKE_OSX_ARCHITECTURES MATCHES arm64)
- file(REMOVE_RECURSE ${LIBS_PREBUILT_DIR}/lib/release/WebRTC.framework)
- file(RENAME
- ${LIBS_PREBUILT_DIR}/Frameworks/WebRTC.xcframework/${WEBRTC_PLATFORM}/WebRTC.framework
- ${LIBS_PREBUILT_DIR}/lib/release/WebRTC.framework
+ ${LIBS_PREBUILT_DIR}/lib/libwebrtc.a
+ ${ARCH_PREBUILT_DIRS_RELEASE}/libwebrtc.a
)
- file(REMOVE_RECURSE ${LIBS_PREBUILT_DIR}/Frameworks)
- endif (CMAKE_OSX_ARCHITECTURES MATCHES arm64)
+ if (CMAKE_OSX_ARCHITECTURES MATCHES arm64)
+ file(REMOVE_RECURSE ${ARCH_PREBUILT_DIRS_RELEASE}/WebRTC.framework)
+ file(RENAME
+ ${LIBS_PREBUILT_DIR}/Frameworks/WebRTC.xcframework/${WEBRTC_PLATFORM}/WebRTC.framework
+ ${ARCH_PREBUILT_DIRS_RELEASE}/WebRTC.framework
+ )
+ file(REMOVE_RECURSE ${LIBS_PREBUILT_DIR}/Frameworks)
+ endif ()
file(WRITE ${PREBUILD_TRACKING_DIR}/webrtc_installed "0")
- endif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/webrtc_installed OR NOT ${webrtc_installed} EQUAL 0)
-elseif (NOT CMAKE_SYSTEM_NAME MATCHES FreeBSD)
-use_prebuilt_binary(webrtc)
-endif (CMAKE_OSX_ARCHITECTURES MATCHES arm64 OR (${LINUX_DISTRO} MATCHES fedora) OR (${LINUX_DISTRO} MATCHES opensuse-tumbleweed))
+ endif ()
+endif ()
if (WINDOWS)
target_link_libraries( ll::webrtc INTERFACE webrtc.lib )
diff --git a/indra/cmake/XmlRpcEpi.cmake b/indra/cmake/XmlRpcEpi.cmake
deleted file mode 100644
index a008e06d62..0000000000
--- a/indra/cmake/XmlRpcEpi.cmake
+++ /dev/null
@@ -1,38 +0,0 @@
-# -*- cmake -*-
-include(Prebuilt)
-
-include_guard()
-add_library( ll::xmlrpc-epi INTERFACE IMPORTED )
-
-if (NOT USESYSTEMLIBS)
-use_system_binary( xmlrpc-epi )
-endif (NOT USESYSTEMLIBS)
-
-if (${LINUX_DISTRO} MATCHES opensuse-tumbleweed OR DARWIN OR NOT USESYSTEMLIBS)
-use_prebuilt_binary(xmlrpc-epi)
- if (DARWIN)
- execute_process(
- COMMAND lipo -archs libxmlrpc-epi.0.dylib
- WORKING_DIRECTORY ${LIBS_PREBUILT_DIR}/lib/release
- OUTPUT_VARIABLE xmlrpc-epi_archs
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
- if (NOT ${xmlrpc-epi_archs} STREQUAL ${CMAKE_OSX_ARCHITECTURES})
- execute_process(
- COMMAND lipo
- libxmlrpc-epi.0.dylib
- -thin ${CMAKE_OSX_ARCHITECTURES}
- -output libxmlrpc-epi.0.dylib
- WORKING_DIRECTORY ${LIBS_PREBUILT_DIR}/lib/release
- )
- endif (NOT ${xmlrpc-epi_archs} STREQUAL ${CMAKE_OSX_ARCHITECTURES})
- endif (DARWIN)
-endif (${LINUX_DISTRO} MATCHES opensuse-tumbleweed OR DARWIN OR NOT USESYSTEMLIBS)
-target_link_libraries(ll::xmlrpc-epi INTERFACE xmlrpc-epi )
-if (NOT USESYSTEMLIBS)
-target_include_directories( ll::xmlrpc-epi SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include)
-elseif (${LINUX_DISTRO} MATCHES opensuse-tumbleweed OR DARWIN)
- target_include_directories( ll::xmlrpc-epi SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/xmlrpc-epi)
-elseif (LINUX)
- target_include_directories( ll::xmlrpc-epi SYSTEM INTERFACE ${CMAKE_SYSROOT}/usr/include/xmlrpc-epi)
-endif ()
diff --git a/indra/cmake/ZLIBNG.cmake b/indra/cmake/ZLIBNG.cmake
index 60164116dd..7c2c59a68d 100644
--- a/indra/cmake/ZLIBNG.cmake
+++ b/indra/cmake/ZLIBNG.cmake
@@ -5,22 +5,22 @@ include(Prebuilt)
include_guard()
add_library( ll::zlib-ng INTERFACE IMPORTED )
+pkg_check_modules(Zlib REQUIRED zlib)
+target_include_directories( ll::zlib-ng SYSTEM INTERFACE ${Zlib_INCLUDE_DIRS})
+target_link_directories( ll::zlib-ng INTERFACE ${Zlib_LIBRARY_DIRS} )
+target_link_libraries( ll::zlib-ng INTERFACE ${Zlib_LIBRARIES})
+return()
+
if(USE_CONAN )
target_link_libraries( ll::zlib-ng INTERFACE CONAN_PKG::zlib )
return()
-elseif(NOT USE_AUTOBUILD_3P)
- pkg_check_modules(Zlib REQUIRED zlib)
- target_include_directories( ll::zlib-ng SYSTEM INTERFACE ${Zlib_INCLUDE_DIRS})
- target_link_directories( ll::zlib-ng INTERFACE ${Zlib_LIBRARY_DIRS} )
- target_link_libraries( ll::zlib-ng INTERFACE ${Zlib_LIBRARIES})
- return()
endif()
use_prebuilt_binary(zlib-ng)
if (WINDOWS)
- target_link_libraries( ll::zlib-ng INTERFACE zlib )
+ target_link_libraries( ll::zlib-ng INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/zlib.lib )
else()
- target_link_libraries( ll::zlib-ng INTERFACE z )
+ target_link_libraries( ll::zlib-ng INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libz.a )
endif (WINDOWS)
if( NOT LINUX )
diff --git a/indra/cmake/xxHash.cmake b/indra/cmake/xxHash.cmake
index 2dcab005ba..84f4f4e0f2 100644
--- a/indra/cmake/xxHash.cmake
+++ b/indra/cmake/xxHash.cmake
@@ -6,10 +6,8 @@ set (XXHASH_CMAKE_INCLUDED TRUE)
include(Prebuilt)
-if (NOT (USE_AUTOBUILD_3P OR USE_CONAN))
- include(FindPkgConfig)
- pkg_check_modules(Xxhash REQUIRED libxxhash)
- return ()
-endif ()
+include(FindPkgConfig)
+pkg_check_modules(Xxhash REQUIRED libxxhash)
+return ()
use_prebuilt_binary(xxhash)