From b28313559dc983fba7c308ebdd6ed6d79325a0ab Mon Sep 17 00:00:00 2001 From: Lirusaito Date: Thu, 18 Apr 2019 23:49:47 -0400 Subject: [PATCH] Update to VS2019, you now need autobuild-1.1 on windows --- autobuild.xml | 219 ++++++++++++---------------- indra/cmake/BuildPackagesInfo.cmake | 11 +- indra/cmake/Variables.cmake | 165 ++++++++++----------- indra/newview/viewer_manifest.py | 38 ++++- scripts/packages-formatter.py | 23 ++- 5 files changed, 225 insertions(+), 231 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index f178e298d..fa8a1c307 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -585,6 +585,40 @@ version 1 + discord-rpc + + canonical_repo + https://bitbucket.org/alchemyviewer/3p-discord-rpc + copyright + Copyright 2017 Discord, Inc. + description + Discord Remote Procedure Call library + license + MIT + license_file + LICENSES/discord-rpc.txt + name + discord-rpc + platforms + + windows64 + + archive + + hash + 76bd78e14034e9c518c1a201074d568a + hash_algorithm + md5 + url + http://depot.alchemyviewer.org/pub/packages/windows64/msvc-1916/discord_rpc-3.4.0.190570542-windows64-190570542.tar.bz2 + + name + windows64 + + + version + 3.4.0.190570542 + dullahan copyright @@ -768,7 +802,7 @@ fmodstudio copyright - FMOD Studio, copyright © Firelight Technologies Pty, Ltd., 1994-2015. + FMOD Studio, copyright (c) Firelight Technologies Pty, Ltd., 2012-2017. description FMOD Studio audio system library license @@ -784,11 +818,11 @@ archive hash - a2badcf46277f7547bab0963fe262696 + a3ccf7916d1e0b6f01370978b661c139 hash_algorithm md5 url - https://bitbucket.org/alchemyviewer/publiclibs-darwin/downloads/fmodstudio-1.08.01-darwin-201604080928.tar.bz2 + https://depot.alchemyviewer.org/pub/darwin/lib/fmodstudio-1.10.02-darwin-201712262058.tar.bz2 name darwin @@ -812,11 +846,11 @@ archive hash - be09dc1f144c936790236b94190815b4 + 54dbd41322a08a1fc333ca6d96af5502 hash_algorithm md5 url - https://depot.alchemyviewer.org/pub/linux64/lib/fmodstudio-1.08.04-linux64-201605301500.tar.bz2 + https://depot.alchemyviewer.org/pub/linux64/lib/fmodstudio-1.10.00-linux64-201709282320.tar.bz2 name linux64 @@ -840,18 +874,18 @@ archive hash - c2c45c2ebd9fd930098aa2a3b85bbe5f + 779ae33c6b84656295bd6cf50a69c830 hash_algorithm md5 url - https://depot.alchemyviewer.org/pub/windows64/lib/fmodstudio-1.10.02-windows64-201712251435.tar.bz2 + http://depot.alchemyviewer.org/pub/packages/windows64/msvc/fmodstudio-1.10.10.190360453-windows64-190360453.tar.bz2 name windows64 version - 1.10.02 + 1.10.10.190360453 fontconfig @@ -1128,13 +1162,13 @@ glod copyright - Copyright (C) 2003-04 Jonathan Cohen, Nat Duca, Chris Niski, Johns Hopkins University and David Luebke, Brenden Schubert, University of Virginia. All rights reserved. + Copyright 2003 Jonathan Cohen, Nat Duca, David Luebke, Brenden Schubert - Johns Hopkins University and University of Virginia description Geometric Level of Detail library license - GLOD Open-Source License 1.0 + GLOD Open-Source License Version 1.0 license_file - LICENSES/glod.txt + LICENSES/GLOD.txt name glod platforms @@ -1144,23 +1178,37 @@ archive hash - 6c6b3b06a4305c2da0aad1de132e6a07 + 71e678d70e276fc42a56926fc28a7abd hash_algorithm md5 url - https://bitbucket.org/alchemyviewer/publiclibs-darwin/downloads/glod-1.0pre4-darwin-201511222034.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/glod_3p-update-glod/rev/296895/arch/Darwin/installer/glod-1.0pre4.296895-darwin-296895.tar.bz2 name darwin + darwin64 + + archive + + hash + 017ef34ddf14293099a90c6eaa3615ca + url + http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/1626/3627/glod-1.0pre3.501614-darwin64-501614.tar.bz2 + + name + darwin64 + linux archive hash - 176736c52b3cde6ca8e7d9e173d91731 + 58113bcbbacbaeb2d278f745867ae6f0 + hash_algorithm + md5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-glod/rev/268002/arch/Linux/installer/glod-1.0pre4-linux-20121212.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/p64_3p-glod/rev/314201/arch/Linux/installer/glod-1.0pre4.314201-linux-314201.tar.bz2 name linux @@ -1170,11 +1218,9 @@ archive hash - f7172928ba2201d4b9aeb2c70d7a55b9 - hash_algorithm - md5 + 9aef5cd576ace19568da01d9bc3db29c url - http://depot.alchemyviewer.org/pub/linux64/lib-trusty/glod-1.0pre4-linux64-201603240031.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/1625/3628/glod-1.0pre3.501614-linux64-501614.tar.bz2 name linux64 @@ -1184,11 +1230,11 @@ archive hash - 37035aad7d066dfe6f26dc009aa9dcea + 573e68f46f825a1c040daa4994ee2a61 hash_algorithm md5 url - https://depot.alchemyviewer.org/pub/windows/lib-vc141/glod-1.0pre4-windows-201703090622.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/1627/3633/glod-1.0pre3.501614-windows-501614.tar.bz2 name windows @@ -1198,18 +1244,18 @@ archive hash - c5c04c164ff057a43928de2f2b83470e + c122ba644e8ec146b4742428b799d749 hash_algorithm md5 url - https://depot.alchemyviewer.org/pub/windows64/lib-vc142/glod-1.0pre4-windows64-201712251340.tar.bz2 + http://depot.alchemyviewer.org/pub/packages/windows64/msvc-1916/glod-1.0pre3.190390340-windows64-190390340.tar.bz2 name windows64 version - 1.0pre4 + 1.0pre3.190390340 google_breakpad @@ -1218,7 +1264,7 @@ description Breakpad is a crossplatform library for capturing crash callstacks and runtime data. license - BSD + bsd license_file LICENSES/google_breakpad.txt name @@ -1239,6 +1285,18 @@ name darwin + darwin64 + + archive + + hash + 2d43c6a149cd9c89ba19e884579b1e25 + url + http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/1836/4096/google_breakpad-1413.501824-darwin64-501824.tar.bz2 + + name + darwin64 + linux archive @@ -2821,7 +2879,7 @@ options -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo - -DWORD_SIZE:STRING=32 + -DWORD_SIZE:STRING=$AUTOBUILD_ADDRSIZE -DROOT_PROJECT_NAME:STRING=Singularity -DINSTALL_PROPRIETARY=FALSE @@ -2842,7 +2900,7 @@ options -DCMAKE_BUILD_TYPE:STRING=Release - -DWORD_SIZE:STRING=32 + -DWORD_SIZE:STRING=$AUTOBUILD_ADDRSIZE -DROOT_PROJECT_NAME:STRING=Singularity -DINSTALL_PROPRIETARY=FALSE @@ -3031,7 +3089,7 @@ windows build_directory - build-vc141 + build-vc$AUTOBUILD_WIN_VSVER-$AUTOBUILD_ADDRSIZE configurations RelWithDebInfo @@ -3063,9 +3121,11 @@ options -G - "Visual Studio 15" - -DCMAKE_SYSTEM_VERSION="10.0.16299.0" - -DINSTALL_PROPRIETARY=FALSE + ${AUTOBUILD_WIN_CMAKE_GEN|NOTWIN} + -A + ${AUTOBUILD_WIN_VSPLATFORM|NOTWIN} + -T + host=${AUTOBUILD_WIN_VSHOST|NOTWIN} default @@ -3086,7 +3146,7 @@ options /p:Configuration=Release - /p:Platform=Win32 + /p:Platform=${AUTOBUILD_WIN_VSPLATFORM|NOTWIN} /t:Build /p:useenv=true /verbosity:normal @@ -3102,96 +3162,11 @@ options -G - "Visual Studio 15" - -DCMAKE_SYSTEM_VERSION="10.0.16299.0" - -DINSTALL_PROPRIETARY=FALSE - - - name - Release - - - name - windows - - windows64 - - build_directory - build-vc141-x86_64 - configurations - - RelWithDebInfo - - build - - arguments - - Singularity.sln - - command - msbuild.exe - options - - /p:Configuration=RelWithDebInfo - /p:Platform=x64 - /t:Build - /p:useenv=true - /verbosity:normal - /m - - - configure - - arguments - - ..\indra - - options - - -G - "Visual Studio 15 Win64" - -DCMAKE_SYSTEM_VERSION="10.0.16299.0" - -DWORD_SIZE:STRING=64 - -DINSTALL_PROPRIETARY=FALSE - - - default - True - name - RelWithDebInfo - - Release - - build - - arguments - - Singularity.sln - - command - msbuild.exe - options - - /p:Configuration=Release - /p:Platform=x64 - /t:Build - /p:useenv=true - /verbosity:normal - /m - - - configure - - arguments - - ..\indra - - options - - -G - "Visual Studio 15 Win64" - -DCMAKE_SYSTEM_VERSION="10.0.16299.0" - -DWORD_SIZE:STRING=64 + ${AUTOBUILD_WIN_CMAKE_GEN|NOTWIN} + -A + ${AUTOBUILD_WIN_VSPLATFORM|NOTWIN} + -T + host=${AUTOBUILD_WIN_VSHOST|NOTWIN} -DINSTALL_PROPRIETARY=FALSE diff --git a/indra/cmake/BuildPackagesInfo.cmake b/indra/cmake/BuildPackagesInfo.cmake index a764e9b42..6b2410ea5 100644 --- a/indra/cmake/BuildPackagesInfo.cmake +++ b/indra/cmake/BuildPackagesInfo.cmake @@ -3,9 +3,16 @@ include(Python) include(Variables) +# packages-formatter.py runs autobuild install --versions, which needs to know +# the build_directory, which (on Windows) depends on AUTOBUILD_ADDRSIZE. +# Within an autobuild build, AUTOBUILD_ADDRSIZE is already set. But when +# building in an IDE, it probably isn't. Set it explicitly using +# run_build_test.py. add_custom_command(OUTPUT packages-info.txt - COMMENT "Generating packages-info.txt for the about box" + COMMENT Generating packages-info.txt for the about box MAIN_DEPENDENCY ${CMAKE_SOURCE_DIR}/../autobuild.xml DEPENDS ${CMAKE_SOURCE_DIR}/../scripts/packages-formatter.py - COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/../scripts/packages-formatter.py -p=${AUTOBUILD_PLATFORM_NAME} > packages-info.txt + ${CMAKE_SOURCE_DIR}/../autobuild.xml + COMMAND ${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/Variables.cmake b/indra/cmake/Variables.cmake index cbaf571b5..f522e66cf 100644 --- a/indra/cmake/Variables.cmake +++ b/indra/cmake/Variables.cmake @@ -24,14 +24,6 @@ set(VIEWER_PREFIX) set(INTEGRATION_TESTS_PREFIX) option(LL_TESTS "Build and run unit and integration tests (disable for build timing runs to reduce variation" OFF) -# Compiler and toolchain options -option(USESYSTEMLIBS "Use libraries from your system rather than Linden-supplied prebuilt libraries." OFF) -option(STANDALONE "Use libraries from your system rather than Linden-supplied prebuilt libraries." OFF) -if (USESYSTEMLIBS) - set(STANDALONE ON) -elseif (STANDALONE) - set(USESYSTEMLIBS ON) -endif (USESYSTEMLIBS) option(INCREMENTAL_LINK "Use incremental linking on win32 builds (enable for faster links on some machines)" OFF) option(USE_PRECOMPILED_HEADERS "Enable use of precompiled header directives where supported." ON) option(USE_LTO "Enable Whole Program Optimization and related folding and binary reduction routines" OFF) @@ -48,7 +40,7 @@ endif (${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR ${CMAKE_SYSTEM_NAME} MATCHES "Dar set(DISABLE_TCMALLOC OFF CACHE BOOL "Disable linkage of TCMalloc. (64bit builds automatically disable TCMalloc)") set(DISABLE_FATAL_WARNINGS TRUE CACHE BOOL "Set this to FALSE to enable fatal warnings.") # Audio Engines -option(FMODSTUDIO "Build with support for the FMOD Studio audio engine" OFF) +option(FMODSTUDIO "Build with support for the FMOD Studio audio engine" ON) # Window implementation option(LLWINDOW_SDL2 "Use SDL2 for window and input handling" OFF) @@ -88,61 +80,56 @@ if (NOT CMAKE_BUILD_TYPE) "Build type. One of: Debug Release RelWithDebInfo" FORCE) endif (NOT CMAKE_BUILD_TYPE) +# If someone has specified an address size, use that to determine the +# architecture. Otherwise, let the architecture specify the address size. +set(ADDRESS_SIZE ${WORD_SIZE}) +if (ADDRESS_SIZE EQUAL 32) + #message(STATUS "ADDRESS_SIZE is 32") + set(ARCH i686) +elseif (ADDRESS_SIZE EQUAL 64) + #message(STATUS "ADDRESS_SIZE is 64") + set(ARCH x86_64) +else (ADDRESS_SIZE EQUAL 32) + #message(STATUS "ADDRESS_SIZE is UNRECOGNIZED: '${ADDRESS_SIZE}'") + # Use Python's platform.machine() since uname -m isn't available everywhere. + # Even if you can assume cygwin uname -m, the answer depends on whether + # you're running 32-bit cygwin or 64-bit cygwin! But even 32-bit Python will + # report a 64-bit processor. + execute_process(COMMAND + "${Python2_EXECUTABLE}" "-c" + "import platform; print platform.machine()" + OUTPUT_VARIABLE ARCH OUTPUT_STRIP_TRAILING_WHITESPACE) + # We expect values of the form i386, i686, x86_64, AMD64. + # In CMake, expressing ARCH.endswith('64') is awkward: + string(LENGTH "${ARCH}" ARCH_LENGTH) + math(EXPR ARCH_LEN_2 "${ARCH_LENGTH} - 2") + string(SUBSTRING "${ARCH}" ${ARCH_LEN_2} 2 ARCH_LAST_2) + if (ARCH_LAST_2 STREQUAL 64) + #message(STATUS "ARCH is detected as 64; ARCH is ${ARCH}") + set(ADDRESS_SIZE 64) + else() + #message(STATUS "ARCH is detected as 32; ARCH is ${ARCH}") + set(ADDRESS_SIZE 32) + endif () +endif (ADDRESS_SIZE EQUAL 32) if (${CMAKE_SYSTEM_NAME} MATCHES "Windows") set(WINDOWS ON BOOL FORCE) - if (WORD_SIZE EQUAL 64) - set(ARCH x86_64 CACHE STRING "Viewer Architecture") - set(LL_ARCH ${ARCH}_win64) - set(LL_ARCH_DIR ${ARCH}-win64) - set(WORD_SIZE 64) - set(AUTOBUILD_PLATFORM_NAME "windows64") - else (WORD_SIZE EQUAL 64) - set(ARCH i686 CACHE STRING "Viewer Architecture") set(LL_ARCH ${ARCH}_win32) set(LL_ARCH_DIR ${ARCH}-win32) - set(WORD_SIZE 32) - set(AUTOBUILD_PLATFORM_NAME "windows") - endif (WORD_SIZE EQUAL 64) endif (${CMAKE_SYSTEM_NAME} MATCHES "Windows") if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") set(LINUX ON BOOL FORCE) - # If someone has specified a word size, use that to determine the - # architecture. Otherwise, let the architecture specify the word size. - if (WORD_SIZE EQUAL 32) - #message(STATUS "WORD_SIZE is 32") - set(ARCH i686) - set(AUTOBUILD_PLATFORM_NAME "linux") - elseif (WORD_SIZE EQUAL 64) - #message(STATUS "WORD_SIZE is 64") - set(ARCH x86_64) - set(AUTOBUILD_PLATFORM_NAME "linux64") - else (WORD_SIZE EQUAL 32) - #message(STATUS "WORD_SIZE is UNDEFINED") - if (CMAKE_SIZEOF_VOID_P EQUAL 8) - message(STATUS "Size of void pointer is detected as 8; ARCH is 64-bit") - set(WORD_SIZE 64) - set(AUTOBUILD_PLATFORM_NAME "linux64") - elseif (CMAKE_SIZEOF_VOID_P EQUAL 4) - message(STATUS "Size of void pointer is detected as 4; ARCH is 32-bit") - set(WORD_SIZE 32) - set(AUTOBUILD_PLATFORM_NAME "linux") - else() - message(FATAL_ERROR "Unknown Architecture!") - endif (CMAKE_SIZEOF_VOID_P EQUAL 8) - endif (WORD_SIZE EQUAL 32) - - if (NOT STANDALONE AND MULTIARCH_HACK) - if (WORD_SIZE EQUAL 32) + if (ADDRESS_SIZE EQUAL 32) set(DEB_ARCHITECTURE i386) set(FIND_LIBRARY_USE_LIB64_PATHS OFF) set(CMAKE_SYSTEM_LIBRARY_PATH /usr/lib32 ${CMAKE_SYSTEM_LIBRARY_PATH}) - else (WORD_SIZE EQUAL 32) + else (ADDRESS_SIZE EQUAL 32) set(DEB_ARCHITECTURE amd64) set(FIND_LIBRARY_USE_LIB64_PATHS ON) - endif (WORD_SIZE EQUAL 32) + endif (ADDRESS_SIZE EQUAL 32) execute_process(COMMAND dpkg-architecture -a${DEB_ARCHITECTURE} -qDEB_HOST_MULTIARCH RESULT_VARIABLE DPKG_RESULT @@ -155,7 +142,6 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") endif (DPKG_RESULT EQUAL 0) include(ConfigurePkgConfig) - endif (NOT STANDALONE AND MULTIARCH_HACK) set(LL_ARCH ${ARCH}_linux) set(LL_ARCH_DIR ${ARCH}-linux) @@ -164,49 +150,42 @@ endif (${CMAKE_SYSTEM_NAME} MATCHES "Linux") if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") set(DARWIN 1) - if (XCODE_VERSION LESS 8.0.0) - message( FATAL_ERROR "Xcode 8.0.0 or greater is required." ) - endif (XCODE_VERSION LESS 8.0.0) - message( "Building with " ${CMAKE_OSX_SYSROOT} ) - set(CMAKE_OSX_DEPLOYMENT_TARGET 10.12) + # Architecture + set(CMAKE_OSX_SYSROOT macosx10.14) + set(CMAKE_OSX_ARCHITECTURES "x86_64") + set(CMAKE_XCODE_ATTRIBUTE_VALID_ARCHS "x86_64") + # Build Options set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvm.clang.1_0") - set(CMAKE_XCODE_ATTRIBUTE_GCC_OPTIMIZATION_LEVEL 3) - set(CMAKE_XCODE_ATTRIBUTE_GCC_STRICT_ALIASING NO) - set(CMAKE_XCODE_ATTRIBUTE_GCC_FAST_MATH NO) - set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++") - set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++14") - if (USE_AVX2) - set(CMAKE_XCODE_ATTRIBUTE_CLANG_X86_VECTOR_INSTRUCTIONS avx2) - elseif (USE_AVX) - set(CMAKE_XCODE_ATTRIBUTE_CLANG_X86_VECTOR_INSTRUCTIONS avx) - else () + set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT[variant=Debug] "dwarf") + set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT[variant=Release] "dwarf-with-dsym") + + # Deployment + set(CMAKE_OSX_DEPLOYMENT_TARGET 10.13) + + # Linking + set(CMAKE_XCODE_ATTRIBUTE_DEAD_CODE_STRIPPING YES) + + # Apple Clang - Code Gen + set(CMAKE_XCODE_ATTRIBUTE_GCC_GENERATE_DEBUGGING_SYMBOLS[variant=Release] YES) set(CMAKE_XCODE_ATTRIBUTE_CLANG_X86_VECTOR_INSTRUCTIONS sse4.1) - endif () + set(CMAKE_XCODE_ATTRIBUTE_GCC_STRICT_ALIASING NO) + set(CMAKE_XCODE_ATTRIBUTE_GCC_OPTIMIZATION_LEVEL[variant=Debug] 0) + set(CMAKE_XCODE_ATTRIBUTE_GCC_OPTIMIZATION_LEVEL[variant=Release] 3) + set(CMAKE_XCODE_ATTRIBUTE_GCC_FAST_MATH NO) - if (${CMAKE_BUILD_TYPE} STREQUAL "Release") - set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT dwarf-with-dsym) - else (${CMAKE_BUILD_TYPE} STREQUAL "Release") - set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT dwarf) - endif (${CMAKE_BUILD_TYPE} STREQUAL "Release") + # Apple Clang - Custom Compiler Flags + set(CMAKE_XCODE_ATTRIBUTE_WARNING_CFLAGS "-Wall -Wextra -Wno-reorder -Wno-sign-compare -Wno-ignored-qualifiers -Wno-unused-local-typedef -Wno-unused-parameter") - set(ADDRESS_SIZE 64) - if (NOT CMAKE_OSX_ARCHITECTURES) - if (ADDRESS_SIZE EQUAL 64) - set(CMAKE_OSX_ARCHITECTURES x86_64) - else (ADDRESS_SIZE EQUAL 64) - set(CMAKE_OSX_ARCHITECTURES i386) - endif (ADDRESS_SIZE EQUAL 64) - endif (NOT CMAKE_OSX_ARCHITECTURES) + # Apple Clang - Language - C++ + set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD c++14) + set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++") + + # Apple Clang - Warning Policies + set(CMAKE_XCODE_ATTRIBUTE_GCC_TREAT_WARNINGS_AS_ERRORS YES) - if (ADDRESS_SIZE EQUAL 64) - set(ARCH x86_64) - else (ADDRESS_SIZE EQUAL 64) - set(ARCH i386) - endif (ADDRESS_SIZE EQUAL 64) set(LL_ARCH ${ARCH}_darwin) set(LL_ARCH_DIR universal-darwin) - set(AUTOBUILD_PLATFORM_NAME "darwin" CACHE STRING "Autobuild Platform Name") endif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") # Default deploy grid @@ -245,13 +224,21 @@ set(VIEWER_CHANNEL_NOSPACE ${VIEWER_CHANNEL_ONEWORD} CACHE STRING "Prefix used f set(VIEWER_BRANDING_ID "singularity" CACHE STRING "Viewer branding id") -set(VERSION_BUILD "0" CACHE STRING "Revision number passed in from the outside") - option(ENABLE_SIGNING "Enable signing the viewer" OFF) set(SIGNING_IDENTITY "" CACHE STRING "Specifies the signing identity to use, if necessary.") +set(VERSION_BUILD "0" CACHE STRING "Revision number passed in from the outside") +# Compiler and toolchain options +option(USESYSTEMLIBS "Use libraries from your system rather than Linden-supplied prebuilt libraries." OFF) +option(STANDALONE "Use libraries from your system rather than Linden-supplied prebuilt libraries." OFF) +if (USESYSTEMLIBS) + set(STANDALONE ON) +elseif (STANDALONE) + set(USESYSTEMLIBS ON) +endif (USESYSTEMLIBS) + + + source_group("CMake Rules" FILES CMakeLists.txt) -mark_as_advanced(AUTOBUILD_PLATFORM_NAME) - endif(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED) diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 5e47b1a45..0b66e7691 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -258,6 +258,8 @@ class WindowsManifest(ViewerManifest): # This is used to test a dll manifest. # It is used as a temporary override during the construct method from test_win32_manifest import test_assembly_binding + # TODO: This is redundant with LLManifest.copy_action(). Why aren't we + # calling copy_action() in conjunction with test_assembly_binding()? if src and (os.path.exists(src) or os.path.islink(src)): # ensure that destination path exists self.cmakedirs(os.path.dirname(dst)) @@ -278,6 +280,8 @@ class WindowsManifest(ViewerManifest): # It is used as a temporary override during the construct method from test_win32_manifest import test_assembly_binding from test_win32_manifest import NoManifestException, NoMatchingAssemblyException + # TODO: This is redundant with LLManifest.copy_action(). Why aren't we + # calling copy_action() in conjunction with test_assembly_binding()? if src and (os.path.exists(src) or os.path.islink(src)): # ensure that destination path exists self.cmakedirs(os.path.dirname(dst)) @@ -289,9 +293,9 @@ class WindowsManifest(ViewerManifest): else: test_assembly_binding(src, "Microsoft.VC80.CRT", "") raise Exception("Unknown condition") - except NoManifestException, err: + except NoManifestException as err: pass - except NoMatchingAssemblyException, err: + except NoMatchingAssemblyException as err: pass self.ccopy(src,dst) @@ -327,17 +331,26 @@ class WindowsManifest(ViewerManifest): self.path('libaprutil-1.dll') self.path('libapriconv-1.dll') - except RuntimeError, err: + except RuntimeError as err: print err.message print "Skipping llcommon.dll (assuming llcommon was linked statically)" # Mesh 3rd party libs needed for auto LOD and collada reading try: self.path("glod.dll") - except RuntimeError, err: + except RuntimeError as err: print err.message print "Skipping GLOD library (assumming linked statically)" + # Get fmodstudio dll, continue if missing + try: + if(self.is_win64()): + self.path("fmod64.dll") + else: + self.path("fmod.dll") + except: + print "Skipping fmodstudio audio library(assuming other audio engine)" + # Vivox runtimes self.path("SLVoice.exe") self.path("vivoxsdk.dll") @@ -345,6 +358,23 @@ class WindowsManifest(ViewerManifest): self.path("libsndfile-1.dll") self.path("vivoxoal.dll") self.path("ca-bundle.crt") + + # Security + if(self.is_win64()): + self.path("libcrypto-1_1-x64.dll") + self.path("libssl-1_1-x64.dll") + if not self.is_packaging_viewer(): + self.path("libcrypto-1_1-x64.pdb") + self.path("libssl-1_1-x64.pdb") + else: + self.path("libcrypto-1_1.dll") + self.path("libssl-1_1.dll") + if not self.is_packaging_viewer(): + self.path("libcrypto-1_1.pdb") + self.path("libssl-1_1.pdb") + + # HTTP/2 + self.path("nghttp2.dll") # Hunspell self.path("libhunspell.dll") diff --git a/scripts/packages-formatter.py b/scripts/packages-formatter.py index 1c7c000bd..ac65f545b 100644 --- a/scripts/packages-formatter.py +++ b/scripts/packages-formatter.py @@ -31,13 +31,10 @@ import re import subprocess import argparse -parser = argparse.ArgumentParser() -parser.add_argument( - '-p', '--platform', - default=None, - dest='platform', - help='Override the automatically determined platform.') -parsedargs = parser.parse_args() +parser = argparse.ArgumentParser(description='Format dependency version and copyright information for the viewer About box content') +parser.add_argument('channel', help='viewer channel name') +parser.add_argument('version', help='viewer version number') +args = parser.parse_args() _autobuild=os.getenv('AUTOBUILD', 'autobuild') @@ -49,10 +46,7 @@ def autobuild(*args): Return its stdout pipe from which the caller can read. """ # subprocess wants a list, not a tuple - temp = list(args) - if parsedargs.platform is not None : - temp.append("-p=" + str(parsedargs.platform)) - command = [_autobuild] + temp + command = [_autobuild] + list(args) try: child = subprocess.Popen(command, stdin=None, stdout=subprocess.PIPE, @@ -62,14 +56,15 @@ def autobuild(*args): # Don't attempt to interpret anything but ENOENT raise # Here it's ENOENT: subprocess can't find the autobuild executable. - print >>sys.stderr, "packages-formatter on %s: can't run autobuild:\n%s\n%s" % \ - (sys.platform, ' '.join(command), err) - sys.exit(1) + sys.exit("packages-formatter on %s: can't run autobuild:\n%s\n%s" % \ + (sys.platform, ' '.join(command), err)) # no exceptions yet, let caller read stdout return child.stdout version={} + + versions=autobuild('install', '--versions') for line in versions: pkg_info = pkg_line.match(line)