summaryrefslogtreecommitdiff
path: root/indra/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'indra/cmake')
-rw-r--r--indra/cmake/00-Common.cmake11
-rw-r--r--indra/cmake/Atmosphere.cmake5
-rw-r--r--indra/cmake/Boost.cmake110
-rw-r--r--indra/cmake/BuildPackagesInfo.cmake3
-rw-r--r--indra/cmake/CMakeLists.txt4
-rw-r--r--indra/cmake/Copy3rdPartyLibs.cmake207
-rw-r--r--indra/cmake/DirectX.cmake48
-rw-r--r--indra/cmake/FMODEX.cmake46
-rw-r--r--indra/cmake/FMODSTUDIO.cmake38
-rw-r--r--indra/cmake/FindFMODEX.cmake65
-rw-r--r--indra/cmake/LLAddBuildTest.cmake5
-rw-r--r--indra/cmake/LLAppearance.cmake2
-rw-r--r--indra/cmake/LLCommon.cmake4
-rw-r--r--indra/cmake/LLCoreHttp.cmake2
-rw-r--r--indra/cmake/URIPARSER.cmake2
-rwxr-xr-xindra/cmake/run_build_test.py19
16 files changed, 215 insertions, 356 deletions
diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
index 03da30649a..8aea50e02b 100644
--- a/indra/cmake/00-Common.cmake
+++ b/indra/cmake/00-Common.cmake
@@ -60,7 +60,16 @@ if (WINDOWS)
# http://www.cmake.org/pipermail/cmake/2009-September/032143.html
string(REPLACE "/Zm1000" " " CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
+ # Without PreferredToolArchitecture=x64, as of 2020-06-26 the 32-bit
+ # compiler on our TeamCity build hosts has started running out of virtual
+ # memory for the precompiled header file.
+ # CP changed to only append the flag for 32bit builds - on 64bit builds,
+ # locally at least, the build output is spammed with 1000s of 'D9002'
+ # warnings about this switch being ignored.
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
+ if( ADDRESS_SIZE EQUAL 32 )
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /p:PreferredToolArchitecture=x64")
+ endif()
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO
"${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /Zo"
diff --git a/indra/cmake/Atmosphere.cmake b/indra/cmake/Atmosphere.cmake
new file mode 100644
index 0000000000..9c14df2a11
--- /dev/null
+++ b/indra/cmake/Atmosphere.cmake
@@ -0,0 +1,5 @@
+# -*- cmake -*-
+include(Prebuilt)
+use_prebuilt_binary(libatmosphere)
+set(LIBATMOSPHERE_LIBRARIES atmosphere)
+set(LIBATMOSPHERE_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/atmosphere)
diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake
index 180a84dbcf..06a7ab6d75 100644
--- a/indra/cmake/Boost.cmake
+++ b/indra/cmake/Boost.cmake
@@ -8,7 +8,7 @@ if (USESYSTEMLIBS)
include(FindBoost)
set(BOOST_CONTEXT_LIBRARY boost_context-mt)
- set(BOOST_COROUTINE_LIBRARY boost_coroutine-mt)
+ set(BOOST_FIBER_LIBRARY boost_fiber-mt)
set(BOOST_FILESYSTEM_LIBRARY boost_filesystem-mt)
set(BOOST_PROGRAM_OPTIONS_LIBRARY boost_program_options-mt)
set(BOOST_REGEX_LIBRARY boost_regex-mt)
@@ -18,11 +18,15 @@ if (USESYSTEMLIBS)
else (USESYSTEMLIBS)
use_prebuilt_binary(boost)
set(Boost_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
- set(BOOST_VERSION "1.55")
+
+ # As of sometime between Boost 1.67 and 1.72, Boost libraries are suffixed
+ # with the address size.
+ set(addrsfx "-x${ADDRESS_SIZE}")
if (WINDOWS)
if(MSVC80)
# This should be obsolete at this point
+ set(BOOST_VERSION "1.55")
set(BOOST_CONTEXT_LIBRARY
optimized libboost_context-vc80-mt-${BOOST_VERSION}
debug libboost_context-vc80-mt-gd-${BOOST_VERSION})
@@ -47,80 +51,80 @@ else (USESYSTEMLIBS)
else(MSVC80)
# MSVC 10.0 config
set(BOOST_CONTEXT_LIBRARY
- optimized libboost_context-mt
- debug libboost_context-mt-gd)
- set(BOOST_COROUTINE_LIBRARY
- optimized libboost_coroutine-mt
- debug libboost_coroutine-mt-gd)
+ optimized libboost_context-mt${addrsfx}
+ debug libboost_context-mt${addrsfx}-gd)
+ set(BOOST_FIBER_LIBRARY
+ optimized libboost_fiber-mt${addrsfx}
+ debug libboost_fiber-mt${addrsfx}-gd)
set(BOOST_FILESYSTEM_LIBRARY
- optimized libboost_filesystem-mt
- debug libboost_filesystem-mt-gd)
+ optimized libboost_filesystem-mt${addrsfx}
+ debug libboost_filesystem-mt${addrsfx}-gd)
set(BOOST_PROGRAM_OPTIONS_LIBRARY
- optimized libboost_program_options-mt
- debug libboost_program_options-mt-gd)
+ optimized libboost_program_options-mt${addrsfx}
+ debug libboost_program_options-mt${addrsfx}-gd)
set(BOOST_REGEX_LIBRARY
- optimized libboost_regex-mt
- debug libboost_regex-mt-gd)
+ optimized libboost_regex-mt${addrsfx}
+ debug libboost_regex-mt${addrsfx}-gd)
set(BOOST_SIGNALS_LIBRARY
- optimized libboost_signals-mt
- debug libboost_signals-mt-gd)
+ optimized libboost_signals-mt${addrsfx}
+ debug libboost_signals-mt${addrsfx}-gd)
set(BOOST_SYSTEM_LIBRARY
- optimized libboost_system-mt
- debug libboost_system-mt-gd)
+ optimized libboost_system-mt${addrsfx}
+ debug libboost_system-mt${addrsfx}-gd)
set(BOOST_THREAD_LIBRARY
- optimized libboost_thread-mt
- debug libboost_thread-mt-gd)
+ optimized libboost_thread-mt${addrsfx}
+ debug libboost_thread-mt${addrsfx}-gd)
endif (MSVC80)
elseif (LINUX)
set(BOOST_CONTEXT_LIBRARY
- optimized boost_context-mt
- debug boost_context-mt-d)
- set(BOOST_COROUTINE_LIBRARY
- optimized boost_coroutine-mt
- debug boost_coroutine-mt-d)
+ optimized boost_context-mt${addrsfx}
+ debug boost_context-mt${addrsfx}-d)
+ set(BOOST_FIBER_LIBRARY
+ optimized boost_fiber-mt${addrsfx}
+ debug boost_fiber-mt${addrsfx}-d)
set(BOOST_FILESYSTEM_LIBRARY
- optimized boost_filesystem-mt
- debug boost_filesystem-mt-d)
+ optimized boost_filesystem-mt${addrsfx}
+ debug boost_filesystem-mt${addrsfx}-d)
set(BOOST_PROGRAM_OPTIONS_LIBRARY
- optimized boost_program_options-mt
- debug boost_program_options-mt-d)
+ optimized boost_program_options-mt${addrsfx}
+ debug boost_program_options-mt${addrsfx}-d)
set(BOOST_REGEX_LIBRARY
- optimized boost_regex-mt
- debug boost_regex-mt-d)
+ optimized boost_regex-mt${addrsfx}
+ debug boost_regex-mt${addrsfx}-d)
set(BOOST_SIGNALS_LIBRARY
- optimized boost_signals-mt
- debug boost_signals-mt-d)
+ optimized boost_signals-mt${addrsfx}
+ debug boost_signals-mt${addrsfx}-d)
set(BOOST_SYSTEM_LIBRARY
- optimized boost_system-mt
- debug boost_system-mt-d)
+ optimized boost_system-mt${addrsfx}
+ debug boost_system-mt${addrsfx}-d)
set(BOOST_THREAD_LIBRARY
- optimized boost_thread-mt
- debug boost_thread-mt-d)
+ optimized boost_thread-mt${addrsfx}
+ debug boost_thread-mt${addrsfx}-d)
elseif (DARWIN)
set(BOOST_CONTEXT_LIBRARY
- optimized boost_context-mt
- debug boost_context-mt-d)
- set(BOOST_COROUTINE_LIBRARY
- optimized boost_coroutine-mt
- debug boost_coroutine-mt-d)
+ optimized boost_context-mt${addrsfx}
+ debug boost_context-mt${addrsfx}-d)
+ set(BOOST_FIBER_LIBRARY
+ optimized boost_fiber-mt${addrsfx}
+ debug boost_fiber-mt${addrsfx}-d)
set(BOOST_FILESYSTEM_LIBRARY
- optimized boost_filesystem-mt
- debug boost_filesystem-mt-d)
+ optimized boost_filesystem-mt${addrsfx}
+ debug boost_filesystem-mt${addrsfx}-d)
set(BOOST_PROGRAM_OPTIONS_LIBRARY
- optimized boost_program_options-mt
- debug boost_program_options-mt-d)
+ optimized boost_program_options-mt${addrsfx}
+ debug boost_program_options-mt${addrsfx}-d)
set(BOOST_REGEX_LIBRARY
- optimized boost_regex-mt
- debug boost_regex-mt-d)
+ optimized boost_regex-mt${addrsfx}
+ debug boost_regex-mt${addrsfx}-d)
set(BOOST_SIGNALS_LIBRARY
- optimized boost_signals-mt
- debug boost_signals-mt-d)
+ optimized boost_signals-mt${addrsfx}
+ debug boost_signals-mt${addrsfx}-d)
set(BOOST_SYSTEM_LIBRARY
- optimized boost_system-mt
- debug boost_system-mt-d)
+ optimized boost_system-mt${addrsfx}
+ debug boost_system-mt${addrsfx}-d)
set(BOOST_THREAD_LIBRARY
- optimized boost_thread-mt
- debug boost_thread-mt-d)
+ optimized boost_thread-mt${addrsfx}
+ debug boost_thread-mt${addrsfx}-d)
endif (WINDOWS)
endif (USESYSTEMLIBS)
diff --git a/indra/cmake/BuildPackagesInfo.cmake b/indra/cmake/BuildPackagesInfo.cmake
index 4314cca33d..8f8b6b2330 100644
--- a/indra/cmake/BuildPackagesInfo.cmake
+++ b/indra/cmake/BuildPackagesInfo.cmake
@@ -1,6 +1,7 @@
# -*- cmake -*-
# Construct the version and copyright information based on package data.
include(Python)
+include(FindAutobuild)
# packages-formatter.py runs autobuild install --versions, which needs to know
# the build_directory, which (on Windows) depends on AUTOBUILD_ADDRSIZE.
@@ -13,7 +14,7 @@ add_custom_command(OUTPUT packages-info.txt
DEPENDS ${CMAKE_SOURCE_DIR}/../scripts/packages-formatter.py
${CMAKE_SOURCE_DIR}/../autobuild.xml
COMMAND ${PYTHON_EXECUTABLE}
- ${CMAKE_SOURCE_DIR}/cmake/run_build_test.py -DAUTOBUILD_ADDRSIZE=${ADDRESS_SIZE}
+ ${CMAKE_SOURCE_DIR}/cmake/run_build_test.py -DAUTOBUILD_ADDRSIZE=${ADDRESS_SIZE} -DAUTOBUILD=${AUTOBUILD_EXECUTABLE}
${PYTHON_EXECUTABLE}
${CMAKE_SOURCE_DIR}/../scripts/packages-formatter.py "${VIEWER_CHANNEL}" "${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION}" > packages-info.txt
)
diff --git a/indra/cmake/CMakeLists.txt b/indra/cmake/CMakeLists.txt
index 84e1c5d6fd..a17e37cd32 100644
--- a/indra/cmake/CMakeLists.txt
+++ b/indra/cmake/CMakeLists.txt
@@ -22,13 +22,11 @@ set(cmake_SOURCE_FILES
Copy3rdPartyLibs.cmake
DBusGlib.cmake
DeploySharedLibs.cmake
- DirectX.cmake
DragDrop.cmake
EXPAT.cmake
FindAPR.cmake
FindAutobuild.cmake
FindBerkeleyDB.cmake
- FindFMODEX.cmake
FindGLH.cmake
FindGoogleBreakpad.cmake
FindHUNSPELL.cmake
@@ -39,7 +37,7 @@ set(cmake_SOURCE_FILES
FindURIPARSER.cmake
FindXmlRpcEpi.cmake
FindZLIB.cmake
- FMODEX.cmake
+ FMODSTUDIO.cmake
FreeType.cmake
GLEXT.cmake
GLH.cmake
diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake
index c73a1fdb47..de81512eef 100644
--- a/indra/cmake/Copy3rdPartyLibs.cmake
+++ b/indra/cmake/Copy3rdPartyLibs.cmake
@@ -7,6 +7,21 @@
include(CMakeCopyIfDifferent)
include(Linking)
+# 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)
+ foreach(staging_dir
+ "${SHARED_LIB_STAGING_DIR_RELEASE}"
+ "${SHARED_LIB_STAGING_DIR_RELWITHDEBINFO}")
+ copy_if_different("${from_dir}" "${staging_dir}" out_targets ${ARGN})
+ list(APPEND "${targets}" "${out_targets}")
+ endforeach()
+ENDMACRO(to_staging_dirs from_dir to_dir targets)
+
###################################################################
# set up platform specific lists of files that need to be copied
###################################################################
@@ -46,6 +61,7 @@ if(WINDOWS)
nghttp2.dll
glod.dll
libhunspell.dll
+ uriparser.dll
)
# Filenames are different for 32/64 bit BugSplat file and we don't
@@ -62,106 +78,65 @@ if(WINDOWS)
endif(ADDRESS_SIZE EQUAL 32)
endif (BUGSPLAT_DB)
- if (FMODEX)
+ if (FMODSTUDIO)
+ set(debug_files ${debug_files} fmodL.dll)
+ set(release_files ${release_files} fmod.dll)
+ endif (FMODSTUDIO)
- if(ADDRESS_SIZE EQUAL 32)
- set(release_files ${release_files} fmodex.dll)
- else(ADDRESS_SIZE EQUAL 32)
- set(release_files ${release_files} fmodex64.dll)
- endif(ADDRESS_SIZE EQUAL 32)
- endif (FMODEX)
+ if (OPENAL)
+ list(APPEND release_files openal32.dll alut.dll)
+ endif (OPENAL)
#*******************************
# Copy MS C runtime dlls, required for packaging.
- # *TODO - Adapt this to support VC9
if (MSVC80)
- list(APPEND LMSVC_VER 80)
- list(APPEND LMSVC_VERDOT 8.0)
+ 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
- list(APPEND LMSVC_VER 120)
- list(APPEND LMSVC_VERDOT 12.0)
+ set(MSVC_VER 120)
+ elseif (MSVC_VERSION GREATER_EQUAL 1910 AND MSVC_VERSION LESS 1920) # Visual Studio 2017
+ set(MSVC_VER 140)
else (MSVC80)
MESSAGE(WARNING "New MSVC_VERSION ${MSVC_VERSION} of MSVC: adapt Copy3rdPartyLibs.cmake")
endif (MSVC80)
- # try to copy VS2010 redist independently of system version
- # maint-7360 CP
- # list(APPEND LMSVC_VER 100)
- # list(APPEND LMSVC_VERDOT 10.0)
-
- list(LENGTH LMSVC_VER count)
- math(EXPR count "${count}-1")
- foreach(i RANGE ${count})
- list(GET LMSVC_VER ${i} MSVC_VER)
- list(GET LMSVC_VERDOT ${i} MSVC_VERDOT)
- MESSAGE(STATUS "Copying redist libs for VC ${MSVC_VERDOT}")
- FIND_PATH(debug_msvc_redist_path NAME msvcr${MSVC_VER}d.dll
- PATHS
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\${MSVC_VERDOT}\\Setup\\VC;ProductDir]/redist/Debug_NonRedist/x86/Microsoft.VC${MSVC_VER}.DebugCRT
- [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Windows;Directory]/SysWOW64
- [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Windows;Directory]/System32
- ${MSVC_DEBUG_REDIST_PATH}
- NO_DEFAULT_PATH
+ 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
)
-
- if(EXISTS ${debug_msvc_redist_path})
- set(debug_msvc_files
- msvcr${MSVC_VER}d.dll
- msvcp${MSVC_VER}d.dll
- )
-
- copy_if_different(
- ${debug_msvc_redist_path}
- "${SHARED_LIB_STAGING_DIR_DEBUG}"
- out_targets
- ${debug_msvc_files}
- )
- set(third_party_targets ${third_party_targets} ${out_targets})
-
- unset(debug_msvc_redist_path CACHE)
- endif()
-
- 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)
-
- FIND_PATH(release_msvc_redist_path NAME msvcr${MSVC_VER}.dll
- PATHS
- ${registry_find_path}
- NO_DEFAULT_PATH
- )
-
- if(EXISTS ${release_msvc_redist_path})
- set(release_msvc_files
- msvcr${MSVC_VER}.dll
- msvcp${MSVC_VER}.dll
- )
-
- copy_if_different(
- ${release_msvc_redist_path}
- "${SHARED_LIB_STAGING_DIR_RELEASE}"
- out_targets
- ${release_msvc_files}
- )
- set(third_party_targets ${third_party_targets} ${out_targets})
-
- copy_if_different(
- ${release_msvc_redist_path}
- "${SHARED_LIB_STAGING_DIR_RELWITHDEBINFO}"
- out_targets
- ${release_msvc_files}
- )
- set(third_party_targets ${third_party_targets} ${out_targets})
-
- unset(release_msvc_redist_path CACHE)
+ 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(SHARED_LIB_STAGING_DIR_DEBUG "${SHARED_LIB_STAGING_DIR}/Debug/Resources")
@@ -186,16 +161,20 @@ elseif(DARWIN)
libexception_handler.dylib
${EXPAT_COPY}
libGLOD.dylib
+ libhunspell-1.3.0.dylib
libndofdev.dylib
libnghttp2.dylib
libnghttp2.14.dylib
- libnghttp2.14.14.0.dylib
+ libnghttp2.14.19.0.dylib
+ liburiparser.dylib
+ liburiparser.1.dylib
+ liburiparser.1.0.27.dylib
)
- if (FMODEX)
- set(debug_files ${debug_files} libfmodexL.dylib)
- set(release_files ${release_files} libfmodex.dylib)
- endif (FMODEX)
+ if (FMODSTUDIO)
+ set(debug_files ${debug_files} libfmodL.dylib)
+ set(release_files ${release_files} libfmod.dylib)
+ endif (FMODSTUDIO)
elseif(LINUX)
# linux is weird, multiple side by side configurations aren't supported
@@ -242,10 +221,10 @@ elseif(LINUX)
libfontconfig.so.1
)
- if (FMODEX)
- set(debug_files ${debug_files} "libfmodexL.so")
- set(release_files ${release_files} "libfmodex.so")
- endif (FMODEX)
+ if (FMODSTUDIO)
+ set(debug_files ${debug_files} "libfmodL.so")
+ set(release_files ${release_files} "libfmod.so")
+ endif (FMODSTUDIO)
else(WINDOWS)
message(STATUS "WARNING: unrecognized platform for staging 3rd party libs, skipping...")
@@ -272,52 +251,28 @@ endif(WINDOWS)
# Done building the file lists, now set up the copy commands.
################################################################
-copy_if_different(
- ${vivox_lib_dir}
- "${SHARED_LIB_STAGING_DIR_DEBUG}"
- out_targets
- ${vivox_libs}
- )
-set(third_party_targets ${third_party_targets} ${out_targets})
-
+# 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.
copy_if_different(
${slvoice_src_dir}
"${SHARED_LIB_STAGING_DIR_RELEASE}"
out_targets
${slvoice_files}
)
-copy_if_different(
- ${vivox_lib_dir}
- "${SHARED_LIB_STAGING_DIR_RELEASE}"
- out_targets
- ${vivox_libs}
- )
-
-set(third_party_targets ${third_party_targets} ${out_targets})
+list(APPEND third_party_targets ${out_targets})
-copy_if_different(
+to_staging_dirs(
${vivox_lib_dir}
- "${SHARED_LIB_STAGING_DIR_RELWITHDEBINFO}"
- out_targets
+ third_party_targets
${vivox_libs}
)
-set(third_party_targets ${third_party_targets} ${out_targets})
-copy_if_different(
+to_staging_dirs(
${release_src_dir}
- "${SHARED_LIB_STAGING_DIR_RELEASE}"
- out_targets
- ${release_files}
- )
-set(third_party_targets ${third_party_targets} ${out_targets})
-
-copy_if_different(
- ${release_src_dir}
- "${SHARED_LIB_STAGING_DIR_RELWITHDEBINFO}"
- out_targets
+ third_party_targets
${release_files}
)
-set(third_party_targets ${third_party_targets} ${out_targets})
if(NOT USESYSTEMLIBS)
add_custom_target(
diff --git a/indra/cmake/DirectX.cmake b/indra/cmake/DirectX.cmake
deleted file mode 100644
index 25163d0322..0000000000
--- a/indra/cmake/DirectX.cmake
+++ /dev/null
@@ -1,48 +0,0 @@
-# -*- cmake -*-
-
-if (WINDOWS)
- find_path(DIRECTX_INCLUDE_DIR dxdiag.h
- "$ENV{DXSDK_DIR}/Include"
- "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2010)/Include"
- "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2009)/Include"
- "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2009)/Include"
- "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2008)/Include"
- "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2008)/Include"
- "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2008)/Include"
- "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (November 2007)/Include"
- "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2007)/Include"
- "C:/DX90SDK/Include"
- "$ENV{PROGRAMFILES}/DX90SDK/Include"
- )
- if (DIRECTX_INCLUDE_DIR)
- include_directories(${DIRECTX_INCLUDE_DIR})
- if (DIRECTX_FIND_QUIETLY)
- message(STATUS "Found DirectX include: ${DIRECTX_INCLUDE_DIR}")
- endif (DIRECTX_FIND_QUIETLY)
- else (DIRECTX_INCLUDE_DIR)
- message(FATAL_ERROR "Could not find DirectX SDK Include")
- endif (DIRECTX_INCLUDE_DIR)
-
-
- find_path(DIRECTX_LIBRARY_DIR dxguid.lib
- "$ENV{DXSDK_DIR}/Lib/x86"
- "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2010)/Lib/x86"
- "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2009)/Lib/x86"
- "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2009)/Lib/x86"
- "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2008)/Lib/x86"
- "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2008)/Lib/x86"
- "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2008)/Lib/x86"
- "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (November 2007)/Lib/x86"
- "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2007)/Lib/x86"
- "C:/DX90SDK/Lib"
- "$ENV{PROGRAMFILES}/DX90SDK/Lib"
- )
- if (DIRECTX_LIBRARY_DIR)
- if (DIRECTX_FIND_QUIETLY)
- message(STATUS "Found DirectX include: ${DIRECTX_LIBRARY_DIR}")
- endif (DIRECTX_FIND_QUIETLY)
- else (DIRECTX_LIBRARY_DIR)
- message(FATAL_ERROR "Could not find DirectX SDK Libraries")
- endif (DIRECTX_LIBRARY_DIR)
-
-endif (WINDOWS)
diff --git a/indra/cmake/FMODEX.cmake b/indra/cmake/FMODEX.cmake
deleted file mode 100644
index 720933d1b7..0000000000
--- a/indra/cmake/FMODEX.cmake
+++ /dev/null
@@ -1,46 +0,0 @@
-# -*- cmake -*-
-
-# FMOD can be set when launching the make using the argument -DFMOD:BOOL=ON
-# When building using proprietary binaries though (i.e. having access to LL private servers),
-# we always build with FMODEX.
-# Open source devs should use the -DFMODEX:BOOL=ON then if they want to build with FMOD, whether
-# they are using USESYSTEMLIBS or not.
-if (INSTALL_PROPRIETARY)
- set(FMODEX ON CACHE BOOL "Using FMOD Ex sound library.")
-endif (INSTALL_PROPRIETARY)
-
-if (FMODEX)
- if (USESYSTEMLIBS)
- # In that case, we use the version of the library installed on the system
- set(FMODEX_FIND_REQUIRED ON)
- include(FindFMODEX)
- else (USESYSTEMLIBS)
- if (FMODEX_LIBRARY AND FMODEX_INCLUDE_DIR)
- # If the path have been specified in the arguments, use that
- set(FMODEX_LIBRARIES ${FMODEX_LIBRARY})
- MESSAGE(STATUS "Using FMODEX path: ${FMODEX_LIBRARIES}, ${FMODEX_INCLUDE_DIR}")
- else (FMODEX_LIBRARY AND FMODEX_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(fmodex)
- if (WINDOWS)
- set(FMODEX_LIBRARY
- debug fmodexL_vc
- optimized fmodex_vc)
- elseif (DARWIN)
- set(FMODEX_LIBRARY
- debug fmodexL
- optimized fmodex)
- elseif (LINUX)
- set(FMODEX_LIBRARY
- debug fmodexL
- optimized fmodex)
- endif (WINDOWS)
- set(FMODEX_LIBRARIES ${FMODEX_LIBRARY})
- set(FMODEX_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/fmodex)
- endif (FMODEX_LIBRARY AND FMODEX_INCLUDE_DIR)
- endif (USESYSTEMLIBS)
-endif (FMODEX)
-
diff --git a/indra/cmake/FMODSTUDIO.cmake b/indra/cmake/FMODSTUDIO.cmake
new file mode 100644
index 0000000000..8840354ac6
--- /dev/null
+++ b/indra/cmake/FMODSTUDIO.cmake
@@ -0,0 +1,38 @@
+# -*- cmake -*-
+
+# FMODSTUDIO can be set when launching the make using the argument -DFMODSTUDIO: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(FMODSTUDIO ON CACHE BOOL "Using FMODSTUDIO sound library.")
+endif (INSTALL_PROPRIETARY)
+
+if (FMODSTUDIO)
+ if (FMODSTUDIO_LIBRARY AND FMODSTUDIO_INCLUDE_DIR)
+ # If the path have been specified in the arguments, use that
+ set(FMODSTUDIO_LIBRARIES ${FMODSTUDIO_LIBRARY})
+ 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)
+ set(FMODSTUDIO_LIBRARY
+ debug fmodL_vc
+ optimized fmod_vc)
+ elseif (DARWIN)
+ #despite files being called libfmod.dylib, we are searching for fmod
+ set(FMODSTUDIO_LIBRARY
+ debug fmodL
+ optimized fmod)
+ elseif (LINUX)
+ set(FMODSTUDIO_LIBRARY
+ debug fmodL
+ optimized fmod)
+ endif (WINDOWS)
+ set(FMODSTUDIO_LIBRARIES ${FMODSTUDIO_LIBRARY})
+ set(FMODSTUDIO_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/fmodstudio)
+ endif (FMODSTUDIO_LIBRARY AND FMODSTUDIO_INCLUDE_DIR)
+endif (FMODSTUDIO)
+
diff --git a/indra/cmake/FindFMODEX.cmake b/indra/cmake/FindFMODEX.cmake
deleted file mode 100644
index b621727c0e..0000000000
--- a/indra/cmake/FindFMODEX.cmake
+++ /dev/null
@@ -1,65 +0,0 @@
-# -*- cmake -*-
-
-# - Find FMODEX
-# Find the FMODEX includes and library
-# This module defines
-# FMODEX_INCLUDE_DIR, where to find fmod.h and fmod_errors.h
-# FMODEX_LIBRARIES, the libraries needed to use FMODEX.
-# FMODEX, If false, do not try to use FMODEX.
-# also defined, but not for general use are
-# FMODEX_LIBRARY, where to find the FMODEX library.
-
-FIND_PATH(FMODEX_INCLUDE_DIR fmod.h PATH_SUFFIXES fmod)
-
-SET(FMODEX_NAMES ${FMODEX_NAMES} fmodex fmodvc fmodexL_vc)
-FIND_LIBRARY(FMODEX_LIBRARY
- NAMES ${FMODEX_NAMES}
- PATH_SUFFIXES fmodex
- )
-
-IF (FMODEX_SDK_DIR OR WINDOWS)
- if(WINDOWS)
- set(FMODEX_SDK_DIR "$ENV{PROGRAMFILES}/FMOD SoundSystem/FMOD Programmers API Windows" CACHE PATH "Path to FMODEX")
- STRING(REGEX REPLACE "\\\\" "/" FMODEX_SDK_DIR ${FMODEX_SDK_DIR})
- endif(WINDOWS)
- find_library(FMODEX_LIBRARY
- fmodex_vc fmodexL_vc
- PATHS
- ${FMODEX_SDK_DIR}/api/lib
- ${FMODEX_SDK_DIR}/api
- ${FMODEX_SDK_DIR}
- )
- find_path(FMODEX_INCLUDE_DIR fmod.h
- ${FMODEX_SDK_DIR}/api/inc
- ${FMODEX_SDK_DIR}/api
- ${FMODEX_SDK_DIR}
- )
- find_path(FMODEX_INCLUDE_DIR fmod.h
- ${FMODEX_SDK_DIR}/api/inc
- ${FMODEX_SDK_DIR}/api
- ${FMODEX_SDK_DIR}
- )
- IF (FMODEX_LIBRARY AND FMODEX_INCLUDE_DIR)
- SET(FMODEX_LIBRARIES ${FMODEX_LIBRARY})
- SET(FMODEX_FOUND "YES")
- endif (FMODEX_LIBRARY AND FMODEX_INCLUDE_DIR)
-ENDIF (FMODEX_SDK_DIR OR WINDOWS)
-
-IF (FMODEX_FOUND)
- IF (NOT FMODEX_FIND_QUIETLY)
- MESSAGE(STATUS "Found FMODEX: ${FMODEX_LIBRARIES}")
- ENDIF (NOT FMODEX_FIND_QUIETLY)
-ELSE (FMODEX_FOUND)
- IF (FMODEX_FIND_REQUIRED)
- MESSAGE(FATAL_ERROR "Could not find FMODEX library")
- ENDIF (FMODEX_FIND_REQUIRED)
-ENDIF (FMODEX_FOUND)
-
-# Deprecated declarations.
-SET (NATIVE_FMODEX_INCLUDE_PATH ${FMODEX_INCLUDE_DIR} )
-GET_FILENAME_COMPONENT (NATIVE_FMODEX_LIB_PATH ${FMODEX_LIBRARY} PATH)
-
-MARK_AS_ADVANCED(
- FMODEX_LIBRARY
- FMODEX_INCLUDE_DIR
- )
diff --git a/indra/cmake/LLAddBuildTest.cmake b/indra/cmake/LLAddBuildTest.cmake
index b3f42c1a5e..4932e9044f 100644
--- a/indra/cmake/LLAddBuildTest.cmake
+++ b/indra/cmake/LLAddBuildTest.cmake
@@ -53,7 +53,7 @@ INCLUDE(GoogleMock)
${GOOGLEMOCK_INCLUDE_DIRS}
)
SET(alltest_LIBRARIES
- ${BOOST_COROUTINE_LIBRARY}
+ ${BOOST_FIBER_LIBRARY}
${BOOST_CONTEXT_LIBRARY}
${BOOST_SYSTEM_LIBRARY}
${GOOGLEMOCK_LIBRARIES}
@@ -200,8 +200,9 @@ FUNCTION(LL_ADD_INTEGRATION_TEST
)
SET(libraries
+ ${LEGACY_STDIO_LIBS}
${library_dependencies}
- ${BOOST_COROUTINE_LIBRARY}
+ ${BOOST_FIBER_LIBRARY}
${BOOST_CONTEXT_LIBRARY}
${BOOST_SYSTEM_LIBRARY}
${GOOGLEMOCK_LIBRARIES}
diff --git a/indra/cmake/LLAppearance.cmake b/indra/cmake/LLAppearance.cmake
index ae265d07e3..675330ec72 100644
--- a/indra/cmake/LLAppearance.cmake
+++ b/indra/cmake/LLAppearance.cmake
@@ -18,7 +18,7 @@ endif (BUILD_HEADLESS)
set(LLAPPEARANCE_LIBRARIES llappearance
llmessage
llcorehttp
- ${BOOST_COROUTINE_LIBRARY}
+ ${BOOST_FIBER_LIBRARY}
${BOOST_CONTEXT_LIBRARY}
${BOOST_SYSTEM_LIBRARY}
)
diff --git a/indra/cmake/LLCommon.cmake b/indra/cmake/LLCommon.cmake
index 3e29297c58..8900419f9b 100644
--- a/indra/cmake/LLCommon.cmake
+++ b/indra/cmake/LLCommon.cmake
@@ -19,7 +19,7 @@ if (LINUX)
# specify all libraries that llcommon uses.
# llcommon uses `clock_gettime' which is provided by librt on linux.
set(LLCOMMON_LIBRARIES llcommon
- ${BOOST_COROUTINE_LIBRARY}
+ ${BOOST_FIBER_LIBRARY}
${BOOST_CONTEXT_LIBRARY}
${BOOST_THREAD_LIBRARY}
${BOOST_SYSTEM_LIBRARY}
@@ -27,7 +27,7 @@ if (LINUX)
)
else (LINUX)
set(LLCOMMON_LIBRARIES llcommon
- ${BOOST_COROUTINE_LIBRARY}
+ ${BOOST_FIBER_LIBRARY}
${BOOST_CONTEXT_LIBRARY}
${BOOST_THREAD_LIBRARY}
${BOOST_SYSTEM_LIBRARY} )
diff --git a/indra/cmake/LLCoreHttp.cmake b/indra/cmake/LLCoreHttp.cmake
index 379ae207de..613453ab5d 100644
--- a/indra/cmake/LLCoreHttp.cmake
+++ b/indra/cmake/LLCoreHttp.cmake
@@ -12,6 +12,6 @@ set(LLCOREHTTP_INCLUDE_DIRS
)
set(LLCOREHTTP_LIBRARIES llcorehttp
- ${BOOST_COROUTINE_LIBRARY}
+ ${BOOST_FIBER_LIBRARY}
${BOOST_CONTEXT_LIBRARY}
${BOOST_SYSTEM_LIBRARY})
diff --git a/indra/cmake/URIPARSER.cmake b/indra/cmake/URIPARSER.cmake
index de146885a0..ecc5b74ef1 100644
--- a/indra/cmake/URIPARSER.cmake
+++ b/indra/cmake/URIPARSER.cmake
@@ -29,7 +29,7 @@ else (USESYSTEMLIBS)
set(URIPARSER_PRELOAD_ARCHIVES -Wl,--whole-archive uriparser -Wl,--no-whole-archive)
set(URIPARSER_LIBRARIES uriparser)
elseif (DARWIN)
- set(URIPARSER_LIBRARIES uriparser)
+ set(URIPARSER_LIBRARIES liburiparser.dylib)
endif (WINDOWS)
set(URIPARSER_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/uriparser)
endif (USESYSTEMLIBS)
diff --git a/indra/cmake/run_build_test.py b/indra/cmake/run_build_test.py
index 210e43b232..ec5d33f902 100755
--- a/indra/cmake/run_build_test.py
+++ b/indra/cmake/run_build_test.py
@@ -87,7 +87,6 @@ def main(command, arguments=[], libpath=[], vars={}):
# might not exist; instead of KeyError, just use an empty string.
dirs = os.environ.get(var, "").split(os.pathsep)
# Append the sequence in libpath
- log.info("%s += %r" % (var, libpath))
for dir in libpath:
# append system paths at the end
if dir in ('/lib', '/usr/lib'):
@@ -105,16 +104,21 @@ def main(command, arguments=[], libpath=[], vars={}):
# Now rebuild the path string. This way we use a minimum of separators
# -- and we avoid adding a pointless separator when libpath is empty.
os.environ[var] = os.pathsep.join(clean_dirs)
- log.info("%s = %r" % (var, os.environ[var]))
+ # This output format is intended to make it straightforward to copy
+ # the variable settings and the command itself from the build output
+ # and paste the whole thing at a command prompt to rerun it manually.
+ log.info("%s='%s' \\" % (var, os.environ[var]))
# Now handle arbitrary environment variables. The tricky part is ensuring
# that all the keys and values we try to pass are actually strings.
if vars:
- log.info("Setting: %s" % ("\n".join(["%s=%s" % (key, value) for key, value in vars.iteritems()])))
+ for key, value in vars.items():
+ # As noted a few lines above, facilitate copy-paste rerunning.
+ log.info("%s='%s' \\" % (key, value))
os.environ.update(dict([(str(key), str(value)) for key, value in vars.iteritems()]))
# Run the child process.
command_list = [command]
command_list.extend(arguments)
- log.info("Running: %s" % " ".join(command_list))
+ log.info(" ".join((("'%s'" % w) if ' ' in w else w) for w in command_list))
# Make sure we see all relevant output *before* child-process output.
sys.stdout.flush()
try:
@@ -305,8 +309,11 @@ def get_windows_table():
return _windows_table
-log=logging.getLogger(__name__)
-logging.basicConfig()
+# Use this instead of logging.basicConfig() because the latter prefixes
+# every line of output with INFO:__main__:...
+log=logging.getLogger()
+log.setLevel(logging.INFO)
+log.addHandler(logging.StreamHandler())
if __name__ == "__main__":
import argparse