summaryrefslogtreecommitdiff
path: root/indra/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'indra/cmake')
-rw-r--r--indra/cmake/00-Common.cmake2
-rw-r--r--indra/cmake/APR.cmake2
-rw-r--r--indra/cmake/Boost.cmake12
-rw-r--r--indra/cmake/CEFPlugin.cmake10
-rw-r--r--indra/cmake/CMakeLists.txt2
-rw-r--r--indra/cmake/CURL.cmake7
-rw-r--r--indra/cmake/Discord.cmake45
-rw-r--r--indra/cmake/FMODSTUDIO.cmake32
-rw-r--r--indra/cmake/GLEXT.cmake4
-rw-r--r--indra/cmake/LLPrimitive.cmake73
-rw-r--r--indra/cmake/LLWindow.cmake2
-rw-r--r--indra/cmake/LibVLCPlugin.cmake7
-rw-r--r--indra/cmake/NDOF.cmake38
-rw-r--r--indra/cmake/NVAPI.cmake4
-rw-r--r--indra/cmake/OpenJPEG.cmake4
-rw-r--r--indra/cmake/OpenSSL.cmake5
-rw-r--r--indra/cmake/Variables.cmake1
-rw-r--r--indra/cmake/ViewerMiscLibs.cmake2
-rw-r--r--indra/cmake/WebRTC.cmake4
19 files changed, 189 insertions, 67 deletions
diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
index 0e3b89e98e..5cb0c23d6d 100644
--- a/indra/cmake/00-Common.cmake
+++ b/indra/cmake/00-Common.cmake
@@ -35,6 +35,8 @@ 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
diff --git a/indra/cmake/APR.cmake b/indra/cmake/APR.cmake
index fa3b8a4ffb..58a00c74da 100644
--- a/indra/cmake/APR.cmake
+++ b/indra/cmake/APR.cmake
@@ -8,7 +8,7 @@ add_library( ll::apr INTERFACE IMPORTED )
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 apr-1 apr-util-1)
+ target_link_libraries(ll::apr INTERFACE libapr-1 libaprutil-1)
else ()
include(FindPkgConfig)
pkg_check_modules(Apr REQUIRED apr-1 apr-util-1)
diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake
index 9ea1f6c9a6..8459214f59 100644
--- a/indra/cmake/Boost.cmake
+++ b/indra/cmake/Boost.cmake
@@ -12,7 +12,11 @@ if (DARWIN)
elseif (WINDOWS)
target_include_directories( ll::boost SYSTEM INTERFACE ${prefix_result}/../include)
target_link_directories( ll::boost INTERFACE ${prefix_result})
- set(sfx -vc143-mt-x64-1_88)
+ 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 ()
@@ -21,11 +25,15 @@ target_link_libraries( ll::boost INTERFACE
boost_fiber${sfx}
boost_filesystem${sfx}
boost_program_options${sfx}
- boost_regex${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()
diff --git a/indra/cmake/CEFPlugin.cmake b/indra/cmake/CEFPlugin.cmake
index 70e6c366a4..b70be7926f 100644
--- a/indra/cmake/CEFPlugin.cmake
+++ b/indra/cmake/CEFPlugin.cmake
@@ -88,12 +88,10 @@ else (CMAKE_OSX_ARCHITECTURES MATCHES arm64)
use_prebuilt_binary(dullahan)
endif (CMAKE_OSX_ARCHITECTURES MATCHES arm64)
-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)
+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)
diff --git a/indra/cmake/CMakeLists.txt b/indra/cmake/CMakeLists.txt
index 746d242560..a77e0fca06 100644
--- a/indra/cmake/CMakeLists.txt
+++ b/indra/cmake/CMakeLists.txt
@@ -19,11 +19,13 @@ set(cmake_SOURCE_FILES
Copy3rdPartyLibs.cmake
DBusGlib.cmake
DeploySharedLibs.cmake
+ Discord.cmake
DragDrop.cmake
EXPAT.cmake
FindAutobuild.cmake
FMODSTUDIO.cmake
FreeType.cmake
+ GLEXT.cmake
GLH.cmake
GLM.cmake
Havok.cmake
diff --git a/indra/cmake/CURL.cmake b/indra/cmake/CURL.cmake
index 06d5927174..f8048ab324 100644
--- a/indra/cmake/CURL.cmake
+++ b/indra/cmake/CURL.cmake
@@ -5,8 +5,9 @@ include(Linking)
include_guard()
add_library( ll::libcurl INTERFACE IMPORTED )
-#use_system_binary(libcurl)
-if (LINUX AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 OR DARWIN OR WINDOWS)
+if ($ENV{MSYSTEM_CARCH} MATCHES aarch64)
+use_system_binary(libcurl)
+elseif (LINUX AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 OR DARWIN OR WINDOWS)
use_prebuilt_binary(curl)
if (DARWIN)
execute_process(
@@ -36,7 +37,7 @@ elseif (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRA
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))
+ if (CMAKE_SYSTEM_PROCESSOR MATCHES aarch64)
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
diff --git a/indra/cmake/Discord.cmake b/indra/cmake/Discord.cmake
new file mode 100644
index 0000000000..52c0765ae7
--- /dev/null
+++ b/indra/cmake/Discord.cmake
@@ -0,0 +1,45 @@
+include(Prebuilt)
+
+add_library(ll::discord INTERFACE IMPORTED)
+target_compile_definitions(ll::discord INTERFACE LL_DISCORD=1)
+
+if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/discord_installed OR NOT ${discord_installed} EQUAL 0)
+ file(ARCHIVE_EXTRACT
+ INPUT $ENV{HOME}/Downloads/DiscordSocialSdk-1.4.9649.zip
+ DESTINATION ${CMAKE_BINARY_DIR}
+ )
+ file(
+ COPY
+ ${CMAKE_BINARY_DIR}/discord_social_sdk/include/cdiscord.h
+ ${CMAKE_BINARY_DIR}/discord_social_sdk/include/discordpp.h
+ DESTINATION ${LIBS_PREBUILT_DIR}/include
+ )
+ if (WINDOWS)
+ file(
+ COPY ${CMAKE_BINARY_DIR}/discord_social_sdk/bin/release/discord_partner_sdk.dll
+ DESTINATION ${LIBS_PREBUILT_DIR}/bin/release
+ )
+ set(LIBRARY_EXTENSION lib)
+ else ()
+ set(LIBRARY_PREFIX lib)
+ set(LIBRARY_EXTENSION so)
+ endif ()
+ if (DARWIN)
+ execute_process(
+ COMMAND lipo
+ libdiscord_partner_sdk.dylib
+ -thin ${CMAKE_OSX_ARCHITECTURES}
+ -output ${ARCH_PREBUILT_DIRS_RELEASE}/libdiscord_partner_sdk.dylib
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/discord_social_sdk/lib/release
+ )
+ else ()
+ file(
+ COPY ${CMAKE_BINARY_DIR}/discord_social_sdk/lib/release/${LIBRARY_PREFIX}discord_partner_sdk.${LIBRARY_EXTENSION}
+ DESTINATION ${ARCH_PREBUILT_DIRS_RELEASE}
+ )
+ endif ()
+ file(WRITE ${PREBUILD_TRACKING_DIR}/discord_installed "0")
+endif ()
+
+target_include_directories(ll::discord SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include)
+target_link_libraries(ll::discord INTERFACE discord_partner_sdk)
diff --git a/indra/cmake/FMODSTUDIO.cmake b/indra/cmake/FMODSTUDIO.cmake
index fb4734fe7b..8cac756ead 100644
--- a/indra/cmake/FMODSTUDIO.cmake
+++ b/indra/cmake/FMODSTUDIO.cmake
@@ -34,7 +34,7 @@ if (USE_FMODSTUDIO)
file(MAKE_DIRECTORY ${ARCH_PREBUILT_DIRS_RELEASE})
if (DARWIN)
execute_process(
- COMMAND hdiutil attach -noverify fmodstudioapi20228mac-installer.dmg
+ COMMAND hdiutil attach -noverify fmodstudioapi20229mac-installer.dmg
WORKING_DIRECTORY $ENV{HOME}/Downloads
)
file(
@@ -64,36 +64,36 @@ if (USE_FMODSTUDIO)
file(WRITE ${PREBUILD_TRACKING_DIR}/fmodstudio_installed "${fmodstudio_installed}")
else ()
file(ARCHIVE_EXTRACT
- INPUT $ENV{HOME}/Downloads/fmodstudioapi20228linux.tar.gz
+ INPUT $ENV{HOME}/Downloads/fmodstudioapi20229linux.tar.gz
DESTINATION ${CMAKE_BINARY_DIR}
)
file(
COPY
- ${CMAKE_BINARY_DIR}/fmodstudioapi20228linux/api/core/inc/fmod.h
- ${CMAKE_BINARY_DIR}/fmodstudioapi20228linux/api/core/inc/fmod.hpp
- ${CMAKE_BINARY_DIR}/fmodstudioapi20228linux/api/core/inc/fmod_codec.h
- ${CMAKE_BINARY_DIR}/fmodstudioapi20228linux/api/core/inc/fmod_common.h
- ${CMAKE_BINARY_DIR}/fmodstudioapi20228linux/api/core/inc/fmod_dsp.h
- ${CMAKE_BINARY_DIR}/fmodstudioapi20228linux/api/core/inc/fmod_dsp_effects.h
- ${CMAKE_BINARY_DIR}/fmodstudioapi20228linux/api/core/inc/fmod_errors.h
- ${CMAKE_BINARY_DIR}/fmodstudioapi20228linux/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
)
if (CMAKE_SYSTEM_PROCESSOR MATCHES aarch64)
file(
COPY
- ${CMAKE_BINARY_DIR}/fmodstudioapi20228linux/api/core/lib/arm64/libfmod.so
- ${CMAKE_BINARY_DIR}/fmodstudioapi20228linux/api/core/lib/arm64/libfmod.so.13
- ${CMAKE_BINARY_DIR}/fmodstudioapi20228linux/api/core/lib/arm64/libfmod.so.13.28
+ ${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}/fmodstudioapi20228linux/api/core/lib/${CMAKE_SYSTEM_PROCESSOR}/libfmod.so
- ${CMAKE_BINARY_DIR}/fmodstudioapi20228linux/api/core/lib/${CMAKE_SYSTEM_PROCESSOR}/libfmod.so.13
- ${CMAKE_BINARY_DIR}/fmodstudioapi20228linux/api/core/lib/${CMAKE_SYSTEM_PROCESSOR}/libfmod.so.13.28
+ ${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
)
diff --git a/indra/cmake/GLEXT.cmake b/indra/cmake/GLEXT.cmake
index a780966f0c..f45b27e7b8 100644
--- a/indra/cmake/GLEXT.cmake
+++ b/indra/cmake/GLEXT.cmake
@@ -3,7 +3,9 @@ include(Prebuilt)
include(GLH)
add_library( ll::glext INTERFACE IMPORTED )
-use_system_binary(glext)
+#use_system_binary(glext)
+if (WINDOWS)
use_prebuilt_binary(glext)
+endif ()
diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake
index 3429a744f5..b092f064c2 100644
--- a/indra/cmake/LLPrimitive.cmake
+++ b/indra/cmake/LLPrimitive.cmake
@@ -18,44 +18,53 @@ if( USE_CONAN )
"${CONAN_INCLUDE_DIRS_COLLADADOM}/collada-dom/1.4/" )
endif()
-if( LINUX OR CMAKE_SYSTEM_NAME MATCHES FreeBSD )
+if (LINUX AND NOT (${LINUX_DISTRO} MATCHES debian AND CMAKE_SYSTEM_PROCESSOR MATCHES aarch64) OR CMAKE_SYSTEM_NAME MATCHES FreeBSD)
# Build of the collada-dom for Linux and FreeBSD is done in
# indra/llprimitive/CMakeLists.txt
return()
-elseif ( NOT WINDOWS )
+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 )
+ 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-r8.tar.gz
${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8.tar.gz
)
- endif()
+ endif ()
file(ARCHIVE_EXTRACT
INPUT ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8.tar.gz
DESTINATION ${CMAKE_BINARY_DIR}
)
- if ( WINDOWS )
+ if (WINDOWS)
execute_process(
- COMMAND sed -i "s/SHARED/STATIC/g" CMakeLists.txt
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8/src/1.4
+ 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
)
- set(BOOST_LIBRARY_SUFFIX -vc143-mt-x64-1_88)
else ()
execute_process(
- COMMAND sed -i "" -e "s/SHARED/STATIC/g" CMakeLists.txt
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8/src/1.4
+ COMMAND sed -i "" -e "s/SHARED/STATIC/" src/1.4/CMakeLists.txt
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/3p-colladadom-2.3-r8
)
endif ()
- if( DARWIN )
+ 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)
- endif()
+ 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
@@ -78,7 +87,27 @@ elseif ( NOT WINDOWS )
-DOPT_COLLADA14:BOOL=ON
-DCOLLADA_DOM_INCLUDE_INSTALL_DIR:PATH=${LIBS_PREBUILT_DIR}/include/collada
)
- if( ${COLLADADOM_RESULT} )
+ 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
+ )
+ file(REMOVE_RECURSE ${LIBS_PREBUILT_DIR}/include/collada)
+ file(
+ 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
@@ -88,17 +117,15 @@ elseif ( NOT WINDOWS )
${ARCH_PREBUILT_DIRS}/libcollada14dom.a
${ARCH_PREBUILT_DIRS_RELEASE}/libcollada14dom.a
)
- file(WRITE ${PREBUILD_TRACKING_DIR}/colladadom_installed "${colladadom_installed}")
- endif()
- endif()
-endif()
+ endif ()
+ file(WRITE ${PREBUILD_TRACKING_DIR}/colladadom_installed "${colladadom_installed}")
+ endif ()
+endif ()
-#use_system_binary( colladadom )
+if (FALSE)
+use_system_binary( colladadom )
-if (WINDOWS)
use_prebuilt_binary(colladadom)
-endif ()
-if( FALSE )
use_prebuilt_binary(minizip-ng) # needed for colladadom
use_prebuilt_binary(libxml2)
@@ -113,7 +140,7 @@ if (WINDOWS)
else()
target_link_libraries( ll::libxml INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libxml2.a)
endif()
-endif( FALSE )
+endif (FALSE)
target_include_directories( ll::colladadom SYSTEM INTERFACE
${LIBS_PREBUILT_DIR}/include/collada
diff --git a/indra/cmake/LLWindow.cmake b/indra/cmake/LLWindow.cmake
index 34df3ad33b..007b8dfba6 100644
--- a/indra/cmake/LLWindow.cmake
+++ b/indra/cmake/LLWindow.cmake
@@ -1,7 +1,7 @@
# -*- cmake -*-
include(Variables)
-include(GLH)
+include(GLEXT)
include(Prebuilt)
include_guard()
diff --git a/indra/cmake/LibVLCPlugin.cmake b/indra/cmake/LibVLCPlugin.cmake
index 5ed77af0c2..45ef25a63c 100644
--- a/indra/cmake/LibVLCPlugin.cmake
+++ b/indra/cmake/LibVLCPlugin.cmake
@@ -27,6 +27,12 @@ if (DARWIN)
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)
@@ -35,7 +41,6 @@ else ()
target_link_libraries( ll::libvlc INTERFACE ${Libvlc_LIBRARIES} )
endif ()
-#use_prebuilt_binary(vlc-bin)
set(LIBVLCPLUGIN ON CACHE BOOL
"LIBVLCPLUGIN support for the llplugin/llmedia test apps.")
diff --git a/indra/cmake/NDOF.cmake b/indra/cmake/NDOF.cmake
index d6e5e53ac9..9f33c6e220 100644
--- a/indra/cmake/NDOF.cmake
+++ b/indra/cmake/NDOF.cmake
@@ -7,9 +7,10 @@ include_guard()
add_library( ll::ndof INTERFACE IMPORTED )
if (NDOF)
- if (WINDOWS OR DARWIN)
- #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))
+ if (WINDOWS)
+ use_prebuilt_binary(libndofdev)
+ elseif (DARWIN)
+ if (${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
@@ -43,8 +44,37 @@ if (NDOF)
endif ()
endif ()
elseif (LINUX)
+ if (CMAKE_SYSTEM_PROCESSOR MATCHES x86_64)
use_prebuilt_binary(open-libndofdev)
- endif (WINDOWS OR DARWIN)
+ else ()
+ if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/libndofdev_installed OR NOT ${libndofdev_installed} EQUAL 0)
+ file(DOWNLOAD
+ https://github.com/janoc/libndofdev/archive/refs/tags/v0.14.tar.gz
+ ${CMAKE_BINARY_DIR}/libndofdev-0.14.tar.gz
+ )
+ file(ARCHIVE_EXTRACT
+ INPUT ${CMAKE_BINARY_DIR}/libndofdev-0.14.tar.gz
+ DESTINATION ${CMAKE_BINARY_DIR}
+ )
+ set(ENV{USE_SDL2} 1)
+ execute_process(
+ COMMAND make -j${MAKE_JOBS}
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/libndofdev-0.14
+ RESULT_VARIABLE libndofdev_installed
+ )
+ unset(ENV{USE_SDL2})
+ file(
+ COPY ${CMAKE_BINARY_DIR}/libndofdev-0.14/ndofdev_external.h
+ DESTINATION ${LIBS_PREBUILT_DIR}/include
+ )
+ file(
+ COPY ${CMAKE_BINARY_DIR}/libndofdev-0.14/libndofdev.a
+ DESTINATION ${ARCH_PREBUILT_DIRS_RELEASE}
+ )
+ file(WRITE ${PREBUILD_TRACKING_DIR}/libndofdev_installed "${libndofdev_installed}")
+ endif ()
+ endif ()
+ endif ()
if (WINDOWS)
target_link_libraries( ll::ndof INTERFACE libndofdev)
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/OpenJPEG.cmake b/indra/cmake/OpenJPEG.cmake
index 5729f6a10e..94dcde0d5c 100644
--- a/indra/cmake/OpenJPEG.cmake
+++ b/indra/cmake/OpenJPEG.cmake
@@ -19,7 +19,7 @@ if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKIN
DESTINATION ${CMAKE_BINARY_DIR}
)
- if (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES ubuntu))
+ if (${LINUX_DISTRO} MATCHES debian AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 OR (${LINUX_DISTRO} MATCHES ubuntu))
try_compile(OPENJPEG_RESULT
PROJECT OPENJPEG
SOURCE_DIR ${CMAKE_BINARY_DIR}/openjpeg-2.5.3
@@ -61,7 +61,7 @@ if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKIN
file(WRITE ${PREBUILD_TRACKING_DIR}/openjpeg_installed "${openjpeg_installed}")
endif ()
-if (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES ubuntu))
+if (${LINUX_DISTRO} MATCHES debian AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 OR (${LINUX_DISTRO} MATCHES ubuntu))
target_link_libraries(ll::openjpeg INTERFACE openjp2 )
else ()
include(FindPkgConfig)
diff --git a/indra/cmake/OpenSSL.cmake b/indra/cmake/OpenSSL.cmake
index ef90068993..afa2ba377d 100644
--- a/indra/cmake/OpenSSL.cmake
+++ b/indra/cmake/OpenSSL.cmake
@@ -5,8 +5,9 @@ include(Linking)
include_guard()
add_library( ll::openssl INTERFACE IMPORTED )
-#use_system_binary(openssl)
-if (LINUX AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 OR DARWIN OR WINDOWS)
+if ($ENV{MSYSTEM_CARCH} MATCHES aarch64)
+use_system_binary(openssl)
+elseif (LINUX AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 OR DARWIN OR WINDOWS)
use_prebuilt_binary(openssl)
if (DARWIN)
execute_process(
diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake
index c287f135fe..0720bbf53b 100644
--- a/indra/cmake/Variables.cmake
+++ b/indra/cmake/Variables.cmake
@@ -118,6 +118,7 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
else (ADDRESS_SIZE EQUAL 32)
set(DEB_ARCHITECTURE amd64)
set(FIND_LIBRARY_USE_LIB64_PATHS ON)
+ set(ARCH ${CMAKE_SYSTEM_PROCESSOR})
endif (ADDRESS_SIZE EQUAL 32)
execute_process(COMMAND dpkg-architecture -a${DEB_ARCHITECTURE} -qDEB_HOST_MULTIARCH
diff --git a/indra/cmake/ViewerMiscLibs.cmake b/indra/cmake/ViewerMiscLibs.cmake
index 4ab69e30aa..af13746c91 100644
--- a/indra/cmake/ViewerMiscLibs.cmake
+++ b/indra/cmake/ViewerMiscLibs.cmake
@@ -16,7 +16,7 @@ endif()
use_prebuilt_binary(slvoice)
endif (FALSE)
-if (${LINUX_DISTRO} MATCHES debian OR DARWIN OR WINDOWS)
+if (${LINUX_DISTRO} MATCHES debian AND CMAKE_SYSTEM_PROCESSOR MATCHES x86_64 OR DARWIN)
use_prebuilt_binary(nanosvg)
endif ()
use_prebuilt_binary(viewer-fonts)
diff --git a/indra/cmake/WebRTC.cmake b/indra/cmake/WebRTC.cmake
index 454ed8c0a1..a7f43be13e 100644
--- a/indra/cmake/WebRTC.cmake
+++ b/indra/cmake/WebRTC.cmake
@@ -6,9 +6,9 @@ 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 (${LINUX_DISTRO} MATCHES debian OR CMAKE_OSX_ARCHITECTURES MATCHES x86_64 OR WINDOWS)
+if (${LINUX_DISTRO} MATCHES debian AND CMAKE_SYSTEM_PROCESSOR MATCHES x86-64 OR CMAKE_OSX_ARCHITECTURES MATCHES x86_64 OR WINDOWS)
use_prebuilt_binary(webrtc)
-elseif (NOT CMAKE_SYSTEM_NAME MATCHES FreeBSD)
+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 (DARWIN)