diff options
Diffstat (limited to 'indra/cmake')
-rw-r--r-- | indra/cmake/00-Common.cmake | 5 | ||||
-rw-r--r-- | indra/cmake/Boost.cmake | 35 | ||||
-rw-r--r-- | indra/cmake/CMakeLists.txt | 1 | ||||
-rw-r--r-- | indra/cmake/Copy3rdPartyLibs.cmake | 41 | ||||
-rw-r--r-- | indra/cmake/GLM.cmake | 14 | ||||
-rw-r--r-- | indra/cmake/JsonCpp.cmake | 17 | ||||
-rw-r--r-- | indra/cmake/LLCommon.cmake | 1 | ||||
-rw-r--r-- | indra/cmake/OPENAL.cmake | 5 | ||||
-rw-r--r-- | indra/cmake/TinyEXR.cmake | 2 | ||||
-rw-r--r-- | indra/cmake/Variables.cmake | 2 | ||||
-rw-r--r-- | indra/cmake/ViewerMiscLibs.cmake | 2 | ||||
-rw-r--r-- | indra/cmake/WebRTC.cmake | 2 |
12 files changed, 73 insertions, 54 deletions
diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake index 7de12d0063..afe20a6dd3 100644 --- a/indra/cmake/00-Common.cmake +++ b/indra/cmake/00-Common.cmake @@ -88,7 +88,7 @@ if (WINDOWS) if( ADDRESS_SIZE EQUAL 32 ) add_compile_options( /arch:SSE2 ) endif() - + # Are we using the crummy Visual Studio KDU build workaround? if (NOT VS_DISABLE_FATAL_WARNINGS) add_compile_options(/WX) @@ -109,6 +109,9 @@ if (WINDOWS) # 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) if (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD") diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake index c499807d75..a4f81917ea 100644 --- a/indra/cmake/Boost.cmake +++ b/indra/cmake/Boost.cmake @@ -9,19 +9,30 @@ if( USE_CONAN ) target_compile_definitions( ll::boost INTERFACE BOOST_ALLOW_DEPRECATED_HEADERS BOOST_BIND_GLOBAL_PLACEHOLDERS ) return() elseif( NOT USE_AUTOBUILD_3P ) - find_package( Boost REQUIRED ) - target_compile_definitions( ll::boost INTERFACE BOOST_BIND_GLOBAL_PLACEHOLDERS ) if (DARWIN) - set(sfx "-mt") - endif() - target_link_libraries( ll::boost INTERFACE - boost_context${sfx} - boost_fiber${sfx} - boost_filesystem${sfx} - boost_program_options${sfx} - boost_regex${sfx} - boost_system${sfx} - boost_thread${sfx}) + 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() diff --git a/indra/cmake/CMakeLists.txt b/indra/cmake/CMakeLists.txt index be56ef102d..fa6cd8556b 100644 --- a/indra/cmake/CMakeLists.txt +++ b/indra/cmake/CMakeLists.txt @@ -28,7 +28,6 @@ set(cmake_SOURCE_FILES GLH.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 a1a67512c4..d78f2b90b8 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -7,7 +7,6 @@ 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 @@ -50,7 +49,7 @@ if(WINDOWS) endif (ADDRESS_SIZE EQUAL 64) #******************************* - # Misc shared libs + # Misc shared libs set(release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}") set(release_files @@ -85,12 +84,6 @@ if(WINDOWS) 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 () @@ -105,14 +98,27 @@ if(WINDOWS) set(MSVC_VER 120) elseif (MSVC_VERSION GREATER_EQUAL 1910 AND MSVC_VERSION LESS 1920) # Visual Studio 2017 set(MSVC_VER 140) + set(MSVC_TOOLSET_VER 141) elseif (MSVC_VERSION GREATER_EQUAL 1920 AND MSVC_VERSION LESS 1930) # Visual Studio 2019 set(MSVC_VER 140) + set(MSVC_TOOLSET_VER 142) elseif (MSVC_VERSION GREATER_EQUAL 1930 AND MSVC_VERSION LESS 1950) # Visual Studio 2022 set(MSVC_VER 140) + set(MSVC_TOOLSET_VER 143) else (MSVC80) MESSAGE(WARNING "New MSVC_VERSION ${MSVC_VERSION} of MSVC: adapt Copy3rdPartyLibs.cmake") endif (MSVC80) + if (MSVC_TOOLSET_VER AND DEFINED ENV{VCTOOLSREDISTDIR}) + if(ADDRESS_SIZE EQUAL 32) + set(redist_find_path "$ENV{VCTOOLSREDISTDIR}x86\\Microsoft.VC${MSVC_TOOLSET_VER}.CRT") + else(ADDRESS_SIZE EQUAL 32) + set(redist_find_path "$ENV{VCTOOLSREDISTDIR}x64\\Microsoft.VC${MSVC_TOOLSET_VER}.CRT") + endif(ADDRESS_SIZE EQUAL 32) + get_filename_component(redist_path "${redist_find_path}" ABSOLUTE) + MESSAGE(STATUS "VC Runtime redist path: ${redist_path}") + endif (MSVC_TOOLSET_VER AND DEFINED ENV{VCTOOLSREDISTDIR}) + 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") @@ -135,7 +141,14 @@ if(WINDOWS) vcruntime${MSVC_VER}.dll vcruntime${MSVC_VER}_1.dll ) - if(EXISTS "${registry_path}/${release_msvc_file}") + if(redist_path AND EXISTS "${redist_path}/${release_msvc_file}") + MESSAGE(STATUS "Copying redist file from ${redist_path}/${release_msvc_file}") + to_staging_dirs( + ${redist_path} + third_party_targets + ${release_msvc_file}) + elseif(EXISTS "${registry_path}/${release_msvc_file}") + MESSAGE(STATUS "Copying redist file from ${registry_path}/${release_msvc_file}") to_staging_dirs( ${registry_path} third_party_targets @@ -177,9 +190,8 @@ elseif(DARWIN) liburiparser.1.0.27.dylib ) - if (TARGET ll::fmodstudio) - set(debug_files ${debug_files} libfmodL.dylib) - set(release_files ${release_files} libfmod.dylib) + if (TARGET ll::openal) + list(APPEND release_files libalut.dylib libopenal.dylib) endif () elseif(LINUX) @@ -219,11 +231,6 @@ elseif(LINUX) ) 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") diff --git a/indra/cmake/GLM.cmake b/indra/cmake/GLM.cmake new file mode 100644 index 0000000000..451b7292cb --- /dev/null +++ b/indra/cmake/GLM.cmake @@ -0,0 +1,14 @@ +# -*- cmake -*- +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_prebuilt_binary(glm) +endif (LINUX OR USESYSTEMLIBS) diff --git a/indra/cmake/JsonCpp.cmake b/indra/cmake/JsonCpp.cmake deleted file mode 100644 index a9b992ab20..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-11_libmt.a ) -endif (WINDOWS) -target_include_directories( ll::jsoncpp SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include) 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 cc7deac2d9..6555027dc1 100644 --- a/indra/cmake/OPENAL.cmake +++ b/indra/cmake/OPENAL.cmake @@ -44,6 +44,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/TinyEXR.cmake b/indra/cmake/TinyEXR.cmake index e6d142d19d..e741c07f6e 100644 --- a/indra/cmake/TinyEXR.cmake +++ b/indra/cmake/TinyEXR.cmake @@ -3,5 +3,5 @@ include(Prebuilt) use_prebuilt_binary(tinyexr) -set(TINYEXR_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/tinyexr) +set(TINYEXR_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/tinyexr) diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake index 59368e1177..c287f135fe 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 diff --git a/indra/cmake/ViewerMiscLibs.cmake b/indra/cmake/ViewerMiscLibs.cmake index c3dcf1ddb2..4df54e2b59 100644 --- a/indra/cmake/ViewerMiscLibs.cmake +++ b/indra/cmake/ViewerMiscLibs.cmake @@ -16,7 +16,7 @@ if (NOT USESYSTEMLIBS) use_prebuilt_binary(slvoice) use_prebuilt_binary(nanosvg) -elseif (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES ubuntu) OR DARWIN) +elseif (${LINUX_DISTRO} MATCHES debian OR DARWIN) if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/nanosvg_installed OR NOT ${nanosvg_installed} EQUAL 0) if (DARWIN) if (NOT EXISTS ${CMAKE_BINARY_DIR}/nanosvg-2022.09.27-darwin64-580364.tar.bz2) diff --git a/indra/cmake/WebRTC.cmake b/indra/cmake/WebRTC.cmake index e9e679fa80..fa8fa64ac0 100644 --- a/indra/cmake/WebRTC.cmake +++ b/indra/cmake/WebRTC.cmake @@ -43,7 +43,7 @@ elseif (DARWIN) FIND_LIBRARY(AUDIOTOOLBOX_LIBRARY AudioToolbox) FIND_LIBRARY(COREFOUNDATION_LIBRARY CoreFoundation) FIND_LIBRARY(COCOA_LIBRARY Cocoa) - + target_link_libraries( ll::webrtc INTERFACE libwebrtc.a ${COREAUDIO_LIBRARY} |