diff --git a/autobuild.xml b/autobuild.xml
index 5edc42b07..3aaf811aa 100644
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -915,50 +915,6 @@
version
2.00.03.192211300
- fontconfig
-
fonts
copyright
@@ -1065,32 +1021,6 @@
name
darwin
- linux
-
- archive
-
- hash
- 52f87a65cc61ec4b05721c079d015b19
- url
- http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3pl_3p-freetype-update/rev/290557/arch/Linux/installer/freetype-2.4.4-linux-20140602.tar.bz2
-
- name
- linux
-
- linux64
-
- archive
-
- hash
- b10ba0775b9f1033daf580a2cb55789d
- hash_algorithm
- md5
- url
- http://depot.alchemyviewer.org/pub/linux64/lib-trusty/freetype-2.6.3-linux64-201603241755.tar.bz2
-
- name
- linux64
-
windows
archive
@@ -2945,10 +2875,10 @@
build
command
- make
+ ninja
options
- -j 7
+ -v
configure
@@ -2956,7 +2886,7 @@
options
-G
- Unix Makefiles
+ Ninja
default
@@ -2969,10 +2899,10 @@
build
command
- make
+ ninja
options
- -j 7
+ -v
configure
@@ -2980,7 +2910,7 @@
options
-G
- Unix Makefiles
+ Ninja
name
@@ -3001,10 +2931,10 @@
build
command
- make
+ ninja
options
- -j 7
+ -v
configure
@@ -3012,7 +2942,7 @@
options
-G
- Unix Makefiles
+ Ninja
-DWORD_SIZE:STRING=64
@@ -3026,10 +2956,10 @@
build
command
- make
+ ninja
options
- -j 7
+ --v
configure
@@ -3037,7 +2967,7 @@
options
-G
- Unix Makefiles
+ Ninja
-DWORD_SIZE:STRING=64
diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
index dede5fa20..6dddeed57 100644
--- a/indra/cmake/00-Common.cmake
+++ b/indra/cmake/00-Common.cmake
@@ -5,6 +5,7 @@
if(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED)
set(${CMAKE_CURRENT_LIST_FILE}_INCLUDED "YES")
+include(CheckCCompilerFlag)
include(Variables)
# Portable compilation flags.
@@ -194,10 +195,13 @@ if (LINUX)
# End of hacks.
- if (NOT STANDALONE)
- # this stops us requiring a really recent glibc at runtime
- add_definitions(-fno-stack-protector)
- endif (NOT STANDALONE)
+ CHECK_C_COMPILER_FLAG(-fstack-protector-strong HAS_STRONG_STACK_PROTECTOR)
+ if (${CMAKE_BUILD_TYPE} STREQUAL "Release")
+ if(HAS_STRONG_STACK_PROTECTOR)
+ add_compile_options(-fstack-protector-strong)
+ endif(HAS_STRONG_STACK_PROTECTOR)
+ endif (${CMAKE_BUILD_TYPE} STREQUAL "Release")
+
if (${ARCH} STREQUAL "x86_64")
add_definitions(-pipe)
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -ffast-math")
diff --git a/indra/cmake/BuildPackagesInfo.cmake b/indra/cmake/BuildPackagesInfo.cmake
index 64a353ba2..26088fcaf 100644
--- a/indra/cmake/BuildPackagesInfo.cmake
+++ b/indra/cmake/BuildPackagesInfo.cmake
@@ -9,7 +9,7 @@ include(Variables)
# 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
${CMAKE_SOURCE_DIR}/../autobuild.xml
diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake
index b9d12919b..abe2a6f2a 100644
--- a/indra/cmake/Copy3rdPartyLibs.cmake
+++ b/indra/cmake/Copy3rdPartyLibs.cmake
@@ -86,6 +86,11 @@ if(WINDOWS)
set(release_files ${release_files} libtcmalloc_minimal.dll)
endif(NOT DISABLE_TCMALLOC)
+ if(OPENAL)
+ set(debug_files ${debug_files} alut.dll OpenAL32.dll)
+ set(release_files ${release_files} alut.dll OpenAL32.dll)
+ endif(OPENAL)
+
if (FMODSTUDIO)
set(debug_files ${debug_files} fmodL.dll)
set(release_files ${release_files} fmod.dll)
@@ -179,16 +184,10 @@ elseif(LINUX)
libatk-1.0.so
libexpat.so
libexpat.so.1
- libfreetype.so.6.12.3
- libfreetype.so.6
- libfreetype.so
libGLOD.so
libgmodule-2.0.so
libgobject-2.0.so
libopenal.so
- libfontconfig.so.1.8.0
- libfontconfig.so.1
- libfontconfig.so
)
if (USE_TCMALLOC)
diff --git a/indra/cmake/FMODSTUDIO.cmake b/indra/cmake/FMODSTUDIO.cmake
index 84de5689e..2f8691c27 100644
--- a/indra/cmake/FMODSTUDIO.cmake
+++ b/indra/cmake/FMODSTUDIO.cmake
@@ -30,22 +30,21 @@ if (FMODSTUDIO)
optimized ${FMOD_LINK_LIBRARY_RELEASE}
)
- set(FMOD_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/fmodstudio)
+ set(FMODSTUDIO_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/fmodstudio)
endif(FMODSTUDIO)
-if(FMOD_LIBRARY_RELEASE AND FMOD_INCLUDE_DIR)
+if(FMOD_LIBRARY_RELEASE AND FMODSTUDIO_INCLUDE_DIR)
set(FMOD ON)
if (NOT FMOD_LIBRARY_DEBUG) #Use release library in debug configuration if debug library is absent.
set(FMOD_LIBRARY_DEBUG ${FMOD_LIBRARY_RELEASE})
endif (NOT FMOD_LIBRARY_DEBUG)
-else (FMOD_LIBRARY_RELEASE AND FMOD_INCLUDE_DIR)
+else (FMOD_LIBRARY_RELEASE AND FMODSTUDIO_INCLUDE_DIR)
message(STATUS "No support for FMOD Studio audio (need to set FMODSTUDIO_SDK_DIR?)")
set(FMOD OFF)
set(FMODSTUDIO OFF)
-endif (FMOD_LIBRARY_RELEASE AND FMOD_INCLUDE_DIR)
+endif (FMOD_LIBRARY_RELEASE AND FMODSTUDIO_INCLUDE_DIR)
if (FMOD)
message(STATUS "Building with FMOD Studio audio support")
- set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_FMODSTUDIO=1")
endif (FMOD)
diff --git a/indra/cmake/FreeType.cmake b/indra/cmake/FreeType.cmake
index 2d6025f3a..da122419d 100644
--- a/indra/cmake/FreeType.cmake
+++ b/indra/cmake/FreeType.cmake
@@ -1,14 +1,14 @@
# -*- cmake -*-
include(Prebuilt)
-if (STANDALONE)
+if (LINUX)
include(FindPkgConfig)
pkg_check_modules(FREETYPE REQUIRED freetype2)
-else (STANDALONE)
+else (LINUX)
use_prebuilt_binary(freetype)
set(FREETYPE_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/freetype2)
set(FREETYPE_LIBRARIES freetype)
-endif (STANDALONE)
+endif (LINUX)
link_directories(${FREETYPE_LIBRARY_DIRS})
diff --git a/indra/cmake/GeneratePrecompiledHeader.cmake b/indra/cmake/GeneratePrecompiledHeader.cmake
index 9ff2062ed..67929d3a3 100644
--- a/indra/cmake/GeneratePrecompiledHeader.cmake
+++ b/indra/cmake/GeneratePrecompiledHeader.cmake
@@ -94,7 +94,7 @@ macro(target_precompiled_header TARGET_NAME PRECOMPILED_HEADER PRECOMPILED_SOURC
# Add a custom target for building the precompiled header.
add_custom_command(
OUTPUT ${OUTPUT_NAME}
- COMMAND ${CMAKE_CXX_COMPILER} @${PCH_FLAGS_FILE} ${COMPILER_FLAGS} -x c++-header -std=${CXX_STD} -o ${OUTPUT_NAME} ${PRECOMPILED_HEADER}
+ COMMAND ${CMAKE_CXX_COMPILER} @${PCH_FLAGS_FILE} ${COMPILER_FLAGS} -x c++-header -o ${OUTPUT_NAME} ${PRECOMPILED_HEADER}
DEPENDS ${PRECOMPILED_HEADER})
add_custom_target(${TARGET_NAME}_gch DEPENDS ${OUTPUT_NAME})
add_dependencies(${TARGET_NAME} ${TARGET_NAME}_gch)
diff --git a/indra/cmake/OPENAL.cmake b/indra/cmake/OPENAL.cmake
index 7f98cbbc4..c25eb929e 100644
--- a/indra/cmake/OPENAL.cmake
+++ b/indra/cmake/OPENAL.cmake
@@ -2,7 +2,6 @@
include(Linking)
include(Prebuilt)
-if(NOT FMOD)
if (LINUX)
set(OPENAL ON CACHE BOOL "Enable OpenAL")
else (LINUX)
@@ -10,6 +9,7 @@ else (LINUX)
endif (LINUX)
if (OPENAL)
+ set(OPENAL_LIB_INCLUDE_DIRS "${LIBS_PREBUILT_DIR}/include/AL")
if (STANDALONE)
include(FindPkgConfig)
include(FindOpenAL)
@@ -18,15 +18,16 @@ if (OPENAL)
else (STANDALONE)
use_prebuilt_binary(openal)
endif (STANDALONE)
+ if(WINDOWS)
set(OPENAL_LIBRARIES
- openal
+ OpenAL32
alut
)
- set(OPENAL_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
-endif (OPENAL)
-
-if (OPENAL)
+ else()
+ set(OPENAL_LIBRARIES
+ openal
+ alut
+ )
+ endif()
message(STATUS "Building with OpenAL audio support")
- set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_OPENAL")
endif (OPENAL)
-endif(NOT FMOD)
diff --git a/indra/cmake/ViewerMiscLibs.cmake b/indra/cmake/ViewerMiscLibs.cmake
index 2984f5261..36ee514e9 100644
--- a/indra/cmake/ViewerMiscLibs.cmake
+++ b/indra/cmake/ViewerMiscLibs.cmake
@@ -3,9 +3,6 @@ include(Prebuilt)
if (NOT STANDALONE)
use_prebuilt_binary(slvoice)
- if(LINUX)
- use_prebuilt_binary(fontconfig)
- endif(LINUX)
else (NOT STANDALONE)
# Download there even when using standalone.
set(STANDALONE OFF)
@@ -16,4 +13,9 @@ else (NOT STANDALONE)
set(STANDALONE ON)
endif(NOT STANDALONE)
+if(LINUX)
+ include(FindPkgConfig)
+ pkg_check_modules(FONTCONFIG REQUIRED fontconfig)
+endif(LINUX)
+
use_prebuilt_binary(fonts)
diff --git a/indra/llappearance/llwearable.cpp b/indra/llappearance/llwearable.cpp
index 5761c3535..31edbc67d 100644
--- a/indra/llappearance/llwearable.cpp
+++ b/indra/llappearance/llwearable.cpp
@@ -184,7 +184,7 @@ void LLWearable::createLayers(S32 te, LLAvatarAppearance *avatarp)
{
LLTexLayerSet *layer_set = NULL;
const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = LLAvatarAppearanceDictionary::getInstance()->getTexture((ETextureIndex)te);
- if (texture_dict->mIsUsedByBakedTexture)
+ if (texture_dict && texture_dict->mIsUsedByBakedTexture)
{
const EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex;
@@ -197,7 +197,7 @@ void LLWearable::createLayers(S32 te, LLAvatarAppearance *avatarp)
}
else
{
- LL_ERRS() << "could not find layerset for LTO in wearable!" << LL_ENDL;
+ LL_WARNS() << "could not find layerset for LTO in wearable!" << LL_ENDL;
}
}
diff --git a/indra/llaudio/CMakeLists.txt b/indra/llaudio/CMakeLists.txt
index a200a456e..20456f5dc 100644
--- a/indra/llaudio/CMakeLists.txt
+++ b/indra/llaudio/CMakeLists.txt
@@ -3,8 +3,6 @@
project(llaudio)
include(00-Common)
-include(Audio)
-include(LLAudio)
include(FMODSTUDIO)
include(OPENAL)
include(LLCommon)
@@ -12,10 +10,6 @@ include(LLMath)
include(LLMessage)
include(LLVFS)
-if (FMOD)
- include_directories(${FMOD_INCLUDE_DIR})
-endif(FMOD)
-
include_directories(
${LLAUDIO_INCLUDE_DIRS}
${LLCOMMON_INCLUDE_DIRS}
@@ -26,7 +20,7 @@ include_directories(
${VORBISENC_INCLUDE_DIRS}
${VORBISFILE_INCLUDE_DIRS}
${VORBIS_INCLUDE_DIRS}
- ${OPENAL_INCLUDE_DIRS}
+ ${OPENAL_LIB_INCLUDE_DIRS}
${FREEAULT_LIB_INCLUDE_DIRS}
)
@@ -50,6 +44,9 @@ set(llaudio_HEADER_FILES
)
if (FMODSTUDIO)
+ include_directories(
+ ${FMODSTUDIO_INCLUDE_DIR}
+ )
list(APPEND llaudio_SOURCE_FILES
llaudioengine_fmodstudio.cpp
lllistener_fmodstudio.cpp
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 181d5cf46..57ad1b0b2 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -51,6 +51,10 @@ include(ZLIB)
include(URIPARSER)
+if(FMODSTUDIO)
+ include_directories(${FMODSTUDIO_INCLUDE_DIR})
+endif(FMODSTUDIO)
+
if(USE_CRASHPAD)
include_directories(${CRASHPAD_INCLUDE_DIRS})
endif(USE_CRASHPAD)
@@ -77,6 +81,7 @@ include_directories(
${LLWINDOW_INCLUDE_DIRS}
${LLXML_INCLUDE_DIRS}
${HUNSPELL_INCLUDE_DIR}
+ ${OPENAL_LIB_INCLUDE_DIRS}
${LLAPPEARANCE_INCLUDE_DIRS}
${CMAKE_CURRENT_SOURCE_DIR}
)
@@ -1425,7 +1430,15 @@ if (WINDOWS)
list(APPEND viewer_SOURCE_FILES ${viewer_INSTALLER_FILES})
endif (WINDOWS)
-set_source_files_properties(llstartup.cpp PROPERTIES COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS}")
+if (OPENAL)
+ list(APPEND LLSTARTUP_COMPILE_DEFINITIONS "LL_OPENAL=1")
+endif (OPENAL)
+
+if (FMODSTUDIO)
+ list(APPEND LLSTARTUP_COMPILE_DEFINITIONS "LL_FMODSTUDIO=1")
+endif (FMODSTUDIO)
+
+set_source_files_properties(llstartup.cpp PROPERTIES COMPILE_DEFINITIONS "${LLSTARTUP_COMPILE_DEFINITIONS}")
if (LIBVLCPLUGIN)
set_source_files_properties(llfloaterabout.cpp PROPERTIES COMPILE_DEFINITIONS "VLCPLUGIN=1")
diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp
index 7d9dcdb20..292524dd8 100644
--- a/indra/newview/llvoavatarself.cpp
+++ b/indra/newview/llvoavatarself.cpp
@@ -2892,6 +2892,8 @@ void LLVOAvatarSelf::requestLayerSetUpdate(ETextureIndex index )
if( mUpperBodyLayerSet )
mUpperBodyLayerSet->requestUpdate(); */
const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = LLAvatarAppearanceDictionary::getInstance()->getTexture(index);
+ if (!texture_dict)
+ return;
if (!texture_dict->mIsLocalTexture || !texture_dict->mIsUsedByBakedTexture)
return;
const EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex;
@@ -2908,7 +2910,7 @@ LLViewerTexLayerSet* LLVOAvatarSelf::getLayerSet(ETextureIndex index) const
case TEX_HEAD_BODYPAINT:
return mHeadLayerSet; */
const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = LLAvatarAppearanceDictionary::getInstance()->getTexture(index);
- if (texture_dict->mIsUsedByBakedTexture)
+ if (texture_dict && texture_dict->mIsUsedByBakedTexture)
{
const EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex;
return getLayerSet(baked_index);
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index b5e4a0a21..d3e476fe3 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -477,6 +477,10 @@ class WindowsManifest(ViewerManifest):
if self.path("fmod.dll") == 0:
print "Skipping fmodstudio audio library(assuming other audio engine)"
+ # Get OpenAL dlls, continue if missing
+ if self.path("alut.dll","OpenAL32.dll") == 0:
+ print "Skipping OpenAL audio library (assuming other audio engine)"
+
# Vivox runtimes
self.path("SLVoice.exe")
if (self.address_size == 64):