summaryrefslogtreecommitdiff
path: root/indra/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'indra/cmake')
-rw-r--r--indra/cmake/CMakeLists.txt3
-rw-r--r--indra/cmake/Copy3rdPartyLibs.cmake587
-rw-r--r--indra/cmake/FMODSTUDIO.cmake48
-rw-r--r--indra/cmake/GoogleMock.cmake32
-rw-r--r--indra/cmake/JsonCpp.cmake17
-rw-r--r--indra/cmake/LLAddBuildTest.cmake7
-rw-r--r--indra/cmake/LLCommon.cmake1
-rw-r--r--indra/cmake/OPENAL.cmake5
-rw-r--r--indra/cmake/Variables.cmake4
9 files changed, 293 insertions, 411 deletions
diff --git a/indra/cmake/CMakeLists.txt b/indra/cmake/CMakeLists.txt
index cb3b77300a..f2f081ecb0 100644
--- a/indra/cmake/CMakeLists.txt
+++ b/indra/cmake/CMakeLists.txt
@@ -23,14 +23,11 @@ set(cmake_SOURCE_FILES
DragDrop.cmake
EXPAT.cmake
FindAutobuild.cmake
- FMODSTUDIO.cmake
FreeType.cmake
GLEXT.cmake
GLH.cmake
- GoogleMock.cmake
Havok.cmake
Hunspell.cmake
- JsonCpp.cmake
LLAddBuildTest.cmake
LLAppearance.cmake
LLAudio.cmake
diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake
index 7938d4f54b..0e6756fd18 100644
--- a/indra/cmake/Copy3rdPartyLibs.cmake
+++ b/indra/cmake/Copy3rdPartyLibs.cmake
@@ -1,300 +1,287 @@
-# -*- cmake -*-
-
-# The copy_win_libs folder contains file lists and a script used to
-# copy dlls, exes and such needed to run the SecondLife from within
-# VisualStudio.
-
-include(CMakeCopyIfDifferent)
-include(Linking)
-include(OPENAL)
-include(FMODSTUDIO)
-
-# When we copy our dependent libraries, we almost always want to copy them to
-# both the Release and the RelWithDebInfo staging directories. This has
-# resulted in duplicate (or worse, erroneous attempted duplicate)
-# copy_if_different commands. Encapsulate that usage.
-# Pass FROM_DIR, TARGETS and the files to copy. TO_DIR is implicit.
-# to_staging_dirs diverges from copy_if_different in that it appends to TARGETS.
-macro(to_staging_dirs from_dir targets)
- set( targetDir "${SHARED_LIB_STAGING_DIR}")
- copy_if_different("${from_dir}" "${targetDir}" out_targets ${ARGN})
-
- list(APPEND "${targets}" "${out_targets}")
-endmacro()
-
-###################################################################
-# set up platform specific lists of files that need to be copied
-###################################################################
-if(WINDOWS)
- #*******************************
- # VIVOX - *NOTE: no debug version
- set(vivox_lib_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
-
- # ND, it seems there is no such thing defined. At least when building a viewer
- # Does this maybe matter on some LL buildserver? Otherwise this and the snippet using slvoice_src_dir
- # can all go
- if( ARCH_PREBUILT_BIN_RELEASE )
- set(slvoice_src_dir "${ARCH_PREBUILT_BIN_RELEASE}")
- endif()
- set(slvoice_files SLVoice.exe )
- if (ADDRESS_SIZE EQUAL 64)
- list(APPEND vivox_libs
- vivoxsdk_x64.dll
- ortp_x64.dll
- )
- else (ADDRESS_SIZE EQUAL 64)
- list(APPEND vivox_libs
- vivoxsdk.dll
- ortp.dll
- )
- endif (ADDRESS_SIZE EQUAL 64)
-
- #*******************************
- # Misc shared libs
-
- 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)
-
- # Filenames are different for 32/64 bit BugSplat file and we don't
- # have any control over them so need to branch.
- if (USE_BUGSPLAT)
- if(ADDRESS_SIZE EQUAL 32)
- set(release_files ${release_files} BugSplat.dll)
- set(release_files ${release_files} BugSplatRc.dll)
- set(release_files ${release_files} BsSndRpt.exe)
- else(ADDRESS_SIZE EQUAL 32)
- set(release_files ${release_files} BugSplat64.dll)
- set(release_files ${release_files} BugSplatRc64.dll)
- set(release_files ${release_files} BsSndRpt64.exe)
- endif(ADDRESS_SIZE EQUAL 32)
- endif (USE_BUGSPLAT)
-
- if (TARGET ll::fmodstudio)
- # fmodL is included for logging, only one should be picked by manifest
- set(release_files ${release_files} fmodL.dll)
- set(release_files ${release_files} fmod.dll)
- endif ()
-
- if (TARGET ll::openal)
- list(APPEND release_files openal32.dll alut.dll)
- endif ()
-
- #*******************************
- # Copy MS C runtime dlls, required for packaging.
- if (MSVC80)
- set(MSVC_VER 80)
- elseif (MSVC_VERSION EQUAL 1600) # VisualStudio 2010
- MESSAGE(STATUS "MSVC_VERSION ${MSVC_VERSION}")
- elseif (MSVC_VERSION EQUAL 1800) # VisualStudio 2013, which is (sigh) VS 12
- set(MSVC_VER 120)
- elseif (MSVC_VERSION GREATER_EQUAL 1910 AND MSVC_VERSION LESS 1920) # Visual Studio 2017
- set(MSVC_VER 140)
- elseif (MSVC_VERSION GREATER_EQUAL 1920 AND MSVC_VERSION LESS 1930) # Visual Studio 2019
- set(MSVC_VER 140)
- elseif (MSVC_VERSION GREATER_EQUAL 1930 AND MSVC_VERSION LESS 1940) # Visual Studio 2022
- set(MSVC_VER 140)
- else (MSVC80)
- MESSAGE(WARNING "New MSVC_VERSION ${MSVC_VERSION} of MSVC: adapt Copy3rdPartyLibs.cmake")
- endif (MSVC80)
-
- if(ADDRESS_SIZE EQUAL 32)
- # this folder contains the 32bit DLLs.. (yes really!)
- set(registry_find_path "[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Windows;Directory]/SysWOW64")
- else(ADDRESS_SIZE EQUAL 32)
- # this folder contains the 64bit DLLs.. (yes really!)
- set(registry_find_path "[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Windows;Directory]/System32")
- endif(ADDRESS_SIZE EQUAL 32)
-
- # Having a string containing the system registry path is a start, but to
- # get CMake to actually read the registry, we must engage some other
- # operation.
- get_filename_component(registry_path "${registry_find_path}" ABSOLUTE)
-
- # These are candidate DLL names. Empirically, VS versions before 2015 have
- # msvcp*.dll and msvcr*.dll. VS 2017 has msvcp*.dll and vcruntime*.dll.
- # Check each of them.
- foreach(release_msvc_file
- msvcp${MSVC_VER}.dll
- msvcr${MSVC_VER}.dll
- vcruntime${MSVC_VER}.dll
- vcruntime${MSVC_VER}_1.dll
- )
- if(EXISTS "${registry_path}/${release_msvc_file}")
- to_staging_dirs(
- ${registry_path}
- third_party_targets
- ${release_msvc_file})
- else()
- # This isn't a WARNING because, as noted above, every VS version
- # we've observed has only a subset of the specified DLL names.
- 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}")
- set(slvoice_files SLVoice)
- set(vivox_libs
- libortp.dylib
- libvivoxsdk.dylib
- )
- set(debug_src_dir "${ARCH_PREBUILT_DIRS_DEBUG}")
- set(debug_files
- )
- 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 (TARGET ll::fmodstudio)
- set(debug_files ${debug_files} libfmodL.dylib)
- set(release_files ${release_files} libfmod.dylib)
- endif ()
-
-elseif(LINUX)
- # linux is weird, multiple side by side configurations aren't supported
- # and we don't seem to have any debug shared libs built yet anyways...
- set(SHARED_LIB_STAGING_DIR_DEBUG "${SHARED_LIB_STAGING_DIR}")
- set(SHARED_LIB_STAGING_DIR_RELWITHDEBINFO "${SHARED_LIB_STAGING_DIR}")
- set(SHARED_LIB_STAGING_DIR_RELEASE "${SHARED_LIB_STAGING_DIR}")
-
- set(vivox_lib_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
- set(vivox_libs
- libsndfile.so.1
- libortp.so
- libvivoxoal.so.1
- libvivoxsdk.so
- )
- set(slvoice_files SLVoice)
-
- # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
- # or ARCH_PREBUILT_DIRS
- set(debug_src_dir "${ARCH_PREBUILT_DIRS_DEBUG}")
- set(debug_files
- )
- # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
- # or ARCH_PREBUILT_DIRS
- 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
- libatk-1.0.so
- libfreetype.so.6.6.2
- libfreetype.so.6
- libhunspell-1.3.so.0.0.0
- 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
- )
- endif()
-
- if (TARGET ll::fmodstudio)
- set(debug_files ${debug_files} "libfmodL.so")
- set(release_files ${release_files} "libfmod.so")
- endif ()
-
-else(WINDOWS)
- message(STATUS "WARNING: unrecognized platform for staging 3rd party libs, skipping...")
- set(vivox_lib_dir "${CMAKE_SOURCE_DIR}/newview/vivox-runtime/i686-linux")
- set(vivox_libs "")
- # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
- # or ARCH_PREBUILT_DIRS
- set(debug_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-linux/lib/debug")
- set(debug_files "")
- # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
- # or ARCH_PREBUILT_DIRS
- set(release_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-linux/lib/release")
- set(release_files "")
-
- set(debug_llkdu_src "")
- set(debug_llkdu_dst "")
- set(release_llkdu_src "")
- set(release_llkdu_dst "")
- set(relwithdebinfo_llkdu_dst "")
-endif(WINDOWS)
-
-
-################################################################
-# Done building the file lists, now set up the copy commands.
-################################################################
-
-# Curiously, slvoice_files are only copied to SHARED_LIB_STAGING_DIR_RELEASE.
-# It's unclear whether this is oversight or intentional, but anyway leave the
-# single copy_if_different command rather than using to_staging_dirs.
-
-if( slvoice_src_dir )
- copy_if_different(
- ${slvoice_src_dir}
- "${SHARED_LIB_STAGING_DIR_RELEASE}"
- out_targets
- ${slvoice_files}
- )
- list(APPEND third_party_targets ${out_targets})
-endif()
-
-to_staging_dirs(
- ${vivox_lib_dir}
- third_party_targets
- ${vivox_libs}
- )
-
-to_staging_dirs(
- ${release_src_dir}
- third_party_targets
- ${release_files}
- )
-
-add_custom_target(
- stage_third_party_libs ALL
- DEPENDS ${third_party_targets}
-)
-
-if(DARWIN)
- # Support our "@executable_path/../Resources" load path for executables
- # that end up in any of the above SHARED_LIB_STAGING_DIR_MUMBLE
- # directories.
- add_custom_command( TARGET stage_third_party_libs POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E create_symlink ${SHARED_LIB_STAGING_DIR} ${CMAKE_BINARY_DIR}/sharedlibs/Resources
- )
-endif()
+# -*- cmake -*-
+
+# The copy_win_libs folder contains file lists and a script used to
+# copy dlls, exes and such needed to run the SecondLife from within
+# VisualStudio.
+
+include(CMakeCopyIfDifferent)
+include(Linking)
+include(OPENAL)
+
+# When we copy our dependent libraries, we almost always want to copy them to
+# both the Release and the RelWithDebInfo staging directories. This has
+# resulted in duplicate (or worse, erroneous attempted duplicate)
+# copy_if_different commands. Encapsulate that usage.
+# Pass FROM_DIR, TARGETS and the files to copy. TO_DIR is implicit.
+# to_staging_dirs diverges from copy_if_different in that it appends to TARGETS.
+macro(to_staging_dirs from_dir targets)
+ set( targetDir "${SHARED_LIB_STAGING_DIR}")
+ copy_if_different("${from_dir}" "${targetDir}" out_targets ${ARGN})
+
+ list(APPEND "${targets}" "${out_targets}")
+endmacro()
+
+###################################################################
+# set up platform specific lists of files that need to be copied
+###################################################################
+if(WINDOWS)
+ #*******************************
+ # VIVOX - *NOTE: no debug version
+ set(vivox_lib_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
+
+ # ND, it seems there is no such thing defined. At least when building a viewer
+ # Does this maybe matter on some LL buildserver? Otherwise this and the snippet using slvoice_src_dir
+ # can all go
+ if( ARCH_PREBUILT_BIN_RELEASE )
+ set(slvoice_src_dir "${ARCH_PREBUILT_BIN_RELEASE}")
+ endif()
+ set(slvoice_files SLVoice.exe )
+ if (ADDRESS_SIZE EQUAL 64)
+ list(APPEND vivox_libs
+ vivoxsdk_x64.dll
+ ortp_x64.dll
+ )
+ else (ADDRESS_SIZE EQUAL 64)
+ list(APPEND vivox_libs
+ vivoxsdk.dll
+ ortp.dll
+ )
+ endif (ADDRESS_SIZE EQUAL 64)
+
+ #*******************************
+ # Misc shared libs
+
+ 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)
+
+ # Filenames are different for 32/64 bit BugSplat file and we don't
+ # have any control over them so need to branch.
+ if (USE_BUGSPLAT)
+ if(ADDRESS_SIZE EQUAL 32)
+ set(release_files ${release_files} BugSplat.dll)
+ set(release_files ${release_files} BugSplatRc.dll)
+ set(release_files ${release_files} BsSndRpt.exe)
+ else(ADDRESS_SIZE EQUAL 32)
+ set(release_files ${release_files} BugSplat64.dll)
+ set(release_files ${release_files} BugSplatRc64.dll)
+ set(release_files ${release_files} BsSndRpt64.exe)
+ endif(ADDRESS_SIZE EQUAL 32)
+ endif (USE_BUGSPLAT)
+
+ if (TARGET ll::openal)
+ list(APPEND release_files openal32.dll alut.dll)
+ endif ()
+
+ #*******************************
+ # Copy MS C runtime dlls, required for packaging.
+ if (MSVC80)
+ set(MSVC_VER 80)
+ elseif (MSVC_VERSION EQUAL 1600) # VisualStudio 2010
+ MESSAGE(STATUS "MSVC_VERSION ${MSVC_VERSION}")
+ elseif (MSVC_VERSION EQUAL 1800) # VisualStudio 2013, which is (sigh) VS 12
+ set(MSVC_VER 120)
+ elseif (MSVC_VERSION GREATER_EQUAL 1910 AND MSVC_VERSION LESS 1920) # Visual Studio 2017
+ set(MSVC_VER 140)
+ elseif (MSVC_VERSION GREATER_EQUAL 1920 AND MSVC_VERSION LESS 1930) # Visual Studio 2019
+ set(MSVC_VER 140)
+ elseif (MSVC_VERSION GREATER_EQUAL 1930 AND MSVC_VERSION LESS 1940) # Visual Studio 2022
+ set(MSVC_VER 140)
+ else (MSVC80)
+ MESSAGE(WARNING "New MSVC_VERSION ${MSVC_VERSION} of MSVC: adapt Copy3rdPartyLibs.cmake")
+ endif (MSVC80)
+
+ if(ADDRESS_SIZE EQUAL 32)
+ # this folder contains the 32bit DLLs.. (yes really!)
+ set(registry_find_path "[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Windows;Directory]/SysWOW64")
+ else(ADDRESS_SIZE EQUAL 32)
+ # this folder contains the 64bit DLLs.. (yes really!)
+ set(registry_find_path "[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Windows;Directory]/System32")
+ endif(ADDRESS_SIZE EQUAL 32)
+
+ # Having a string containing the system registry path is a start, but to
+ # get CMake to actually read the registry, we must engage some other
+ # operation.
+ get_filename_component(registry_path "${registry_find_path}" ABSOLUTE)
+
+ # These are candidate DLL names. Empirically, VS versions before 2015 have
+ # msvcp*.dll and msvcr*.dll. VS 2017 has msvcp*.dll and vcruntime*.dll.
+ # Check each of them.
+ foreach(release_msvc_file
+ msvcp${MSVC_VER}.dll
+ msvcr${MSVC_VER}.dll
+ vcruntime${MSVC_VER}.dll
+ vcruntime${MSVC_VER}_1.dll
+ )
+ if(EXISTS "${registry_path}/${release_msvc_file}")
+ to_staging_dirs(
+ ${registry_path}
+ third_party_targets
+ ${release_msvc_file})
+ else()
+ # This isn't a WARNING because, as noted above, every VS version
+ # we've observed has only a subset of the specified DLL names.
+ 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}")
+ set(slvoice_files SLVoice)
+ set(vivox_libs
+ libortp.dylib
+ libvivoxsdk.dylib
+ )
+ set(debug_src_dir "${ARCH_PREBUILT_DIRS_DEBUG}")
+ set(debug_files
+ )
+ 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 (TARGET ll::openal)
+ list(APPEND release_files libalut.dylib libopenal.dylib)
+ endif ()
+
+elseif(LINUX)
+ # linux is weird, multiple side by side configurations aren't supported
+ # and we don't seem to have any debug shared libs built yet anyways...
+ set(SHARED_LIB_STAGING_DIR_DEBUG "${SHARED_LIB_STAGING_DIR}")
+ set(SHARED_LIB_STAGING_DIR_RELWITHDEBINFO "${SHARED_LIB_STAGING_DIR}")
+ set(SHARED_LIB_STAGING_DIR_RELEASE "${SHARED_LIB_STAGING_DIR}")
+
+ set(vivox_lib_dir "${ARCH_PREBUILT_DIRS_RELEASE}")
+ set(vivox_libs
+ libsndfile.so.1
+ libortp.so
+ libvivoxoal.so.1
+ libvivoxsdk.so
+ )
+ set(slvoice_files SLVoice)
+
+ # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
+ # or ARCH_PREBUILT_DIRS
+ set(debug_src_dir "${ARCH_PREBUILT_DIRS_DEBUG}")
+ set(debug_files
+ )
+ # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
+ # or ARCH_PREBUILT_DIRS
+ 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
+ libatk-1.0.so
+ libfreetype.so.6.6.2
+ libfreetype.so.6
+ libhunspell-1.3.so.0.0.0
+ 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
+ )
+ endif()
+
+else(WINDOWS)
+ message(STATUS "WARNING: unrecognized platform for staging 3rd party libs, skipping...")
+ set(vivox_lib_dir "${CMAKE_SOURCE_DIR}/newview/vivox-runtime/i686-linux")
+ set(vivox_libs "")
+ # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
+ # or ARCH_PREBUILT_DIRS
+ set(debug_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-linux/lib/debug")
+ set(debug_files "")
+ # *TODO - update this to use LIBS_PREBUILT_DIR and LL_ARCH_DIR variables
+ # or ARCH_PREBUILT_DIRS
+ set(release_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-linux/lib/release")
+ set(release_files "")
+
+ set(debug_llkdu_src "")
+ set(debug_llkdu_dst "")
+ set(release_llkdu_src "")
+ set(release_llkdu_dst "")
+ set(relwithdebinfo_llkdu_dst "")
+endif(WINDOWS)
+
+
+################################################################
+# Done building the file lists, now set up the copy commands.
+################################################################
+
+# Curiously, slvoice_files are only copied to SHARED_LIB_STAGING_DIR_RELEASE.
+# It's unclear whether this is oversight or intentional, but anyway leave the
+# single copy_if_different command rather than using to_staging_dirs.
+
+if( slvoice_src_dir )
+ copy_if_different(
+ ${slvoice_src_dir}
+ "${SHARED_LIB_STAGING_DIR_RELEASE}"
+ out_targets
+ ${slvoice_files}
+ )
+ list(APPEND third_party_targets ${out_targets})
+endif()
+
+to_staging_dirs(
+ ${vivox_lib_dir}
+ third_party_targets
+ ${vivox_libs}
+ )
+
+to_staging_dirs(
+ ${release_src_dir}
+ third_party_targets
+ ${release_files}
+ )
+
+add_custom_target(
+ stage_third_party_libs ALL
+ DEPENDS ${third_party_targets}
+)
+
+if(DARWIN)
+ # Support our "@executable_path/../Resources" load path for executables
+ # that end up in any of the above SHARED_LIB_STAGING_DIR_MUMBLE
+ # directories.
+ add_custom_command( TARGET stage_third_party_libs POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E create_symlink ${SHARED_LIB_STAGING_DIR} ${CMAKE_BINARY_DIR}/sharedlibs/Resources
+ )
+endif()
diff --git a/indra/cmake/FMODSTUDIO.cmake b/indra/cmake/FMODSTUDIO.cmake
deleted file mode 100644
index 9a1cdff6cb..0000000000
--- a/indra/cmake/FMODSTUDIO.cmake
+++ /dev/null
@@ -1,48 +0,0 @@
-# -*- cmake -*-
-
-include_guard()
-
-# FMODSTUDIO can be set when launching the make using the argument -DUSE_FMODSTUDIO:BOOL=ON
-# When building using proprietary binaries though (i.e. having access to LL private servers),
-# we always build with FMODSTUDIO.
-if (INSTALL_PROPRIETARY)
- set(USE_FMODSTUDIO ON CACHE BOOL "Using FMODSTUDIO sound library.")
-endif (INSTALL_PROPRIETARY)
-
-# ND: To streamline arguments passed, switch from FMODSTUDIO to USE_FMODSTUDIO
-# To not break all old build scripts convert old arguments but warn about it
-if(FMODSTUDIO)
- message( WARNING "Use of the FMODSTUDIO argument is deprecated, please switch to USE_FMODSTUDIO")
- set(USE_FMODSTUDIO ${FMODSTUDIO})
-endif()
-
-if (USE_FMODSTUDIO)
- add_library( ll::fmodstudio INTERFACE IMPORTED )
- target_compile_definitions( ll::fmodstudio INTERFACE LL_FMODSTUDIO=1)
-
- if (FMODSTUDIO_LIBRARY AND FMODSTUDIO_INCLUDE_DIR)
- # If the path have been specified in the arguments, use that
-
- target_link_libraries(ll::fmodstudio INTERFACE ${FMODSTUDIO_LIBRARY})
- target_include_directories( ll::fmodstudio SYSTEM INTERFACE ${FMODSTUDIO_INCLUDE_DIR})
- else (FMODSTUDIO_LIBRARY AND FMODSTUDIO_INCLUDE_DIR)
- # If not, we're going to try to get the package listed in autobuild.xml
- # 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)
- use_prebuilt_binary(fmodstudio)
- if (WINDOWS)
- target_link_libraries( ll::fmodstudio INTERFACE fmod_vc)
- elseif (DARWIN)
- #despite files being called libfmod.dylib, we are searching for fmod
- target_link_libraries( ll::fmodstudio INTERFACE fmod)
- elseif (LINUX)
- target_link_libraries( ll::fmodstudio INTERFACE fmod)
- endif (WINDOWS)
-
- target_include_directories( ll::fmodstudio SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/fmodstudio)
- endif (FMODSTUDIO_LIBRARY AND FMODSTUDIO_INCLUDE_DIR)
-else()
- set( USE_FMODSTUDIO "OFF")
-endif ()
-
diff --git a/indra/cmake/GoogleMock.cmake b/indra/cmake/GoogleMock.cmake
deleted file mode 100644
index c3d195c37b..0000000000
--- a/indra/cmake/GoogleMock.cmake
+++ /dev/null
@@ -1,32 +0,0 @@
-# -*- cmake -*-
-include(Prebuilt)
-include(Linking)
-
-include_guard()
-
-add_library( ll::googlemock INTERFACE IMPORTED )
-if(USE_CONAN)
- target_link_libraries( ll::googlemock INTERFACE CONAN_PKG::gtest )
-
- #Not very nice, but for the moment we need this for tut.hpp
- target_include_directories( ll::googlemock SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include )
- return()
-endif()
-
-use_prebuilt_binary(googlemock)
-
-target_include_directories( ll::googlemock SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include )
-
-if (LINUX)
- # VWR-24366: gmock is underlinked, it needs gtest.
- target_link_libraries( ll::googlemock INTERFACE gmock gtest)
-elseif(WINDOWS)
- target_link_libraries( ll::googlemock INTERFACE gmock)
- target_include_directories( ll::googlemock SYSTEM INTERFACE
- ${LIBS_PREBUILT_DIR}/include
- ${LIBS_PREBUILT_DIR}/include/gmock)
-elseif(DARWIN)
- target_link_libraries( ll::googlemock INTERFACE gmock gtest)
-endif(LINUX)
-
-
diff --git a/indra/cmake/JsonCpp.cmake b/indra/cmake/JsonCpp.cmake
deleted file mode 100644
index 17f8e47a97..0000000000
--- a/indra/cmake/JsonCpp.cmake
+++ /dev/null
@@ -1,17 +0,0 @@
-# -*- cmake -*-
-
-include(Prebuilt)
-include_guard()
-add_library( ll::jsoncpp INTERFACE IMPORTED )
-
-use_system_binary(jsoncpp)
-
-use_prebuilt_binary(jsoncpp)
-if (WINDOWS)
- target_link_libraries( ll::jsoncpp INTERFACE json_libmd.lib )
-elseif (DARWIN)
- target_link_libraries( ll::jsoncpp INTERFACE libjson_darwin_libmt.a )
-elseif (LINUX)
- target_link_libraries( ll::jsoncpp INTERFACE libjson_linux-gcc-4.1.3_libmt.a )
-endif (WINDOWS)
-target_include_directories( ll::jsoncpp SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include)
diff --git a/indra/cmake/LLAddBuildTest.cmake b/indra/cmake/LLAddBuildTest.cmake
index 2172b56da2..6408f1200c 100644
--- a/indra/cmake/LLAddBuildTest.cmake
+++ b/indra/cmake/LLAddBuildTest.cmake
@@ -1,7 +1,6 @@
# -*- cmake -*-
include(00-Common)
include(LLTestCommand)
-include(GoogleMock)
include(bugsplat)
include(Tut)
@@ -19,10 +18,6 @@ MACRO(LL_ADD_PROJECT_UNIT_TESTS project sources)
#
# More info and examples at: https://wiki.secondlife.com/wiki/How_to_add_unit_tests_to_indra_code
- # This here looks weird, but is needed. It will inject GoogleMock into projects that forgot to include `this` (LLAddBuildTest.cmake)
- # But through some other means have access to this macro
- include(GoogleMock)
-
if(LL_TEST_VERBOSE)
message("LL_ADD_PROJECT_UNIT_TESTS UNITTEST_PROJECT_${project} sources: ${sources}")
endif()
@@ -41,7 +36,6 @@ MACRO(LL_ADD_PROJECT_UNIT_TESTS project sources)
set(alltest_LIBRARIES
llcommon
- ll::googlemock
)
if(NOT "${project}" STREQUAL "llmath")
# add llmath as a dep unless the tested module *is* llmath!
@@ -204,7 +198,6 @@ FUNCTION(LL_ADD_INTEGRATION_TEST
set(libraries
${library_dependencies}
- ll::googlemock
)
# Add test executable build target
diff --git a/indra/cmake/LLCommon.cmake b/indra/cmake/LLCommon.cmake
index 869d5805f2..9e3707ff17 100644
--- a/indra/cmake/LLCommon.cmake
+++ b/indra/cmake/LLCommon.cmake
@@ -6,6 +6,5 @@ include(EXPAT)
include(Tracy)
include(xxHash)
include(ZLIBNG)
-include(JsonCpp)
include(XmlRpcEpi)
diff --git a/indra/cmake/OPENAL.cmake b/indra/cmake/OPENAL.cmake
index 0b6a7c2853..347dd02cd7 100644
--- a/indra/cmake/OPENAL.cmake
+++ b/indra/cmake/OPENAL.cmake
@@ -33,6 +33,9 @@ if (USE_OPENAL)
alut
)
else()
- message(FATAL_ERROR "OpenAL is not available for this platform")
+ target_link_libraries( ll::openal INTERFACE
+ openal
+ alut
+ )
endif()
endif ()
diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake
index 59725ecc65..9bc17df32a 100644
--- a/indra/cmake/Variables.cmake
+++ b/indra/cmake/Variables.cmake
@@ -5,7 +5,7 @@
#
# Platform variables:
#
-# DARWIN - Mac OS X
+# DARWIN - macOS
# LINUX - Linux
# WINDOWS - Windows
@@ -117,7 +117,7 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
set(FIND_LIBRARY_USE_LIB64_PATHS ON)
endif (ADDRESS_SIZE EQUAL 32)
- execute_process(COMMAND dpkg-architecture -a${DEB_ARCHITECTURE} -qDEB_HOST_MULTIARCH
+ execute_process(COMMAND dpkg-architecture -a${DEB_ARCHITECTURE} -qDEB_HOST_MULTIARCH
RESULT_VARIABLE DPKG_RESULT
OUTPUT_VARIABLE DPKG_ARCH
OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)