diff --git a/autobuild.xml b/autobuild.xml
index 8c76472e06..902b42ebbc 100644
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -1551,16 +1551,6 @@
name
windows64
- linux64
-
version
1.0
diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
index 081b7e1033..343c0a37a1 100644
--- a/indra/cmake/00-Common.cmake
+++ b/indra/cmake/00-Common.cmake
@@ -206,16 +206,40 @@ set(SIGNING_IDENTITY "Developer ID Application: The Phoenix Firestorm Project, I
endif (DARWIN)
if (LINUX OR DARWIN)
- set(GCC_WARNINGS -Wall -Wno-sign-compare -Wno-trigraphs)
+ if (CMAKE_CXX_COMPILER MATCHES ".*clang")
+ set(CMAKE_COMPILER_IS_CLANGXX 1)
+ endif (CMAKE_CXX_COMPILER MATCHES ".*clang")
+
+ if (CMAKE_COMPILER_IS_GNUCXX)
+ set(GCC_WARNINGS "-Wall -Wno-sign-compare -Wno-trigraphs")
+ elseif (CMAKE_COMPILER_IS_CLANGXX)
+ set(GCC_WARNINGS "-Wall -Wno-sign-compare -Wno-trigraphs")
+ endif()
if (NOT GCC_DISABLE_FATAL_WARNINGS)
- list(APPEND GCC_WARNINGS -Werror)
+ set(GCC_WARNINGS "${GCC_WARNINGS} -Werror")
endif (NOT GCC_DISABLE_FATAL_WARNINGS)
- list(APPEND GCC_WARNINGS -Wno-reorder -Wno-non-virtual-dtor )
+ if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" AND DARWIN AND XCODE_VERSION GREATER 4.9)
+ set(GCC_CXX_WARNINGS "$[GCC_WARNINGS] -Wno-reorder -Wno-unused-const-variable -Wno-format-extra-args -Wno-unused-private-field -Wno-unused-function -Wno-tautological-compare -Wno-empty-body -Wno-unused-variable -Wno-unused-value")
+ else (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" AND DARWIN AND XCODE_VERSION GREATER 4.9)
+ #elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
+ set(GCC_CXX_WARNINGS "${GCC_WARNINGS} -Wno-reorder -Wno-non-virtual-dtor -Wno-unused-variable")
+ endif ()
- add_compile_options(${GCC_WARNINGS})
- add_compile_options(-m${ADDRESS_SIZE})
+ if(LINUX)
+ set(GCC_CXX_WARNINGS "${GCC_WARNINGS} -Wno-reorder -Wno-non-virtual-dtor -Wno-unused-variable -Wno-unused-but-set-variable -Wno-pragmas -Wno-deprecated")
+ endif()
+
+ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 13.0)
+ set(GCC_CXX_WARNINGS "${GCC_CXX_WARNINGS} -Wno-c++20-compat")
+ endif()
+
+ set(CMAKE_C_FLAGS "${GCC_WARNINGS} ${CMAKE_C_FLAGS}")
+ set(CMAKE_CXX_FLAGS "${GCC_CXX_WARNINGS} ${CMAKE_CXX_FLAGS}")
+
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m${ADDRESS_SIZE}")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m${ADDRESS_SIZE}")
endif (LINUX OR DARWIN)
diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake
index fd4c6271d2..66e272ded5 100644
--- a/indra/cmake/Copy3rdPartyLibs.cmake
+++ b/indra/cmake/Copy3rdPartyLibs.cmake
@@ -269,13 +269,13 @@ elseif(LINUX)
list( APPEND release_files
libapr-1.so.0
libaprutil-1.so.0
- libfreetype.so.6.6.2
- libfreetype.so.6
+
+
libhunspell-1.3.so.0.0.0
libuuid.so.16
libuuid.so.16.0.22
- libfontconfig.so.1.10.1
- libfontconfig.so.1
+
+
libgmodule-2.0.a
libgobject-2.0.a
)
diff --git a/indra/cmake/FreeType.cmake b/indra/cmake/FreeType.cmake
index 640eef89c7..816174c4ba 100644
--- a/indra/cmake/FreeType.cmake
+++ b/indra/cmake/FreeType.cmake
@@ -6,10 +6,10 @@ add_library( ll::freetype INTERFACE IMPORTED )
if (LINUX)
find_package(Freetype REQUIRED) # linux fontconfig and freetype should come from the user's system Linux links this via llwindow/CMakeLists
-endif (LINUX)
-
+ target_link_libraries( ll::freetype INTERFACE Freetype::Freetype )
+else ()
use_system_binary(freetype)
use_prebuilt_binary(freetype)
target_include_directories( ll::freetype SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/freetype2/)
target_link_libraries( ll::freetype INTERFACE freetype )
-
+endif()
diff --git a/indra/cmake/GStreamer10Plugin.cmake b/indra/cmake/GStreamer10Plugin.cmake
index ded45da610..cb83d09d8a 100644
--- a/indra/cmake/GStreamer10Plugin.cmake
+++ b/indra/cmake/GStreamer10Plugin.cmake
@@ -1,32 +1,13 @@
# -*- cmake -*-
include(Prebuilt)
-include(GLIB)
+if (NOT LINUX)
+ return()
+endif()
-if (USESYSTEMLIBS)
- include(FindPkgConfig)
-
- pkg_check_modules(GSTREAMER10 REQUIRED gstreamer-1.0)
- pkg_check_modules(GSTREAMER10_PLUGINS_BASE REQUIRED gstreamer-plugins-base-1.0)
-elseif (LINUX OR WINDOWS)
- use_prebuilt_binary(gstreamer10)
- use_prebuilt_binary(libxml2)
- set(GSTREAMER10_FOUND ON FORCE BOOL)
- set(GSTREAMER10_PLUGINS_BASE_FOUND ON FORCE BOOL)
- set(GSTREAMER10_INCLUDE_DIRS
- ${GLIB_INCLUDE_DIRS}
- ${LIBS_PREBUILT_DIR}/include/gstreamer-1.0
- ${LIBS_PREBUILT_DIR}/include/libxml2
- )
- # We don't need to explicitly link against gstreamer itself, because
- # LLMediaImplGStreamer probes for the system's copy at runtime.
- set(GSTREAMER10_LIBRARIES)
-endif (USESYSTEMLIBS)
-
-if (GSTREAMER10_FOUND AND GSTREAMER10_PLUGINS_BASE_FOUND)
- set(GSTREAMER10 ON CACHE BOOL "Build with GStreamer-1.0 streaming media support.")
-endif (GSTREAMER10_FOUND AND GSTREAMER10_PLUGINS_BASE_FOUND)
-
-if (GSTREAMER10)
- add_definitions(-DLL_GSTREAMER10_ENABLED=1)
-endif (GSTREAMER10)
+add_library( ll::gstreamer INTERFACE IMPORTED )
+target_compile_definitions( ll::gstreamer INTERFACE LL_GSTREAMER010_ENABLED=1)
+use_system_binary(gstreamer10)
+use_prebuilt_binary(gstreamer10)
+use_prebuilt_binary(libxml2)
+target_include_directories( ll::gstreamer SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/gstreamer-1.0)
diff --git a/indra/cmake/ViewerMiscLibs.cmake b/indra/cmake/ViewerMiscLibs.cmake
index 7b0421e2b4..44eff4e693 100644
--- a/indra/cmake/ViewerMiscLibs.cmake
+++ b/indra/cmake/ViewerMiscLibs.cmake
@@ -6,8 +6,8 @@ if (LINUX)
add_library( ll::fontconfig INTERFACE IMPORTED )
if( NOT USE_CONAN )
- find_package(Fontconfig REQUIRED) # fontconfig and freetype should be taken from the
- # use_prebuilt_binary(fontconfig) # user's system, and not be packaged with the viewer
+ find_package(Fontconfig REQUIRED) # Use system wide Fontconfig
+ target_link_libraries( ll::fontconfig INTERFACE Fontconfig::Fontconfig )
else()
target_link_libraries( ll::fontconfig INTERFACE CONAN_PKG::fontconfig )
endif()
@@ -18,4 +18,3 @@ if( NOT USE_CONAN )
endif()
use_prebuilt_binary(slvoice)
-
diff --git a/indra/llmath/llcalcparser.h b/indra/llmath/llcalcparser.h
index 6eaeb3fbc9..788836244d 100644
--- a/indra/llmath/llcalcparser.h
+++ b/indra/llmath/llcalcparser.h
@@ -141,14 +141,14 @@ struct LLCalcParser : grammar
power =
unary_expr[power.value = arg1] >>
- *('^' >> assert_syntax(unary_expr[power.value = phoenix::bind(&powf)(power.value, arg1)]))
+ *('^' >> assert_syntax(unary_expr[power.value = phoenix::bind(&LLCalcParser::_pow)(self, power.value, arg1)]))
;
term =
power[term.value = arg1] >>
*(('*' >> assert_syntax(power[term.value *= arg1])) |
('/' >> assert_syntax(power[term.value /= arg1])) |
- ('%' >> assert_syntax(power[term.value = phoenix::bind(&fmodf)(term.value, arg1)]))
+ ('%' >> assert_syntax(power[term.value = phoenix::bind(&LLCalcParser::_fmod)(self, term.value, arg1)]))
)
;
diff --git a/indra/llwindow/CMakeLists.txt b/indra/llwindow/CMakeLists.txt
index f33dd9c333..054b5afce7 100644
--- a/indra/llwindow/CMakeLists.txt
+++ b/indra/llwindow/CMakeLists.txt
@@ -59,6 +59,11 @@ set(llwindow_LINK_LIBRARIES
ll::uilibraries
ll::SDL
)
+
+if(LINUX)
+ set(llwindow_LINK_LIBRARIES ${llwindow_LINK_LIBRARIES} ll::fontconfig)
+endif()
+
# Libraries on which this library depends, needed for Linux builds
# Sort by high-level to low-level
if (LINUX)
diff --git a/indra/media_plugins/CMakeLists.txt b/indra/media_plugins/CMakeLists.txt
index 3d07e8ae29..9ad24d59a4 100644
--- a/indra/media_plugins/CMakeLists.txt
+++ b/indra/media_plugins/CMakeLists.txt
@@ -2,7 +2,7 @@
add_subdirectory(base)
if (LINUX)
- add_subdirectory(gstreamer010)
+ add_subdirectory(gstreamer10)
add_subdirectory(cef)
#add_subdirectory(example)
endif (LINUX)
diff --git a/indra/media_plugins/gstreamer10/CMakeLists.txt b/indra/media_plugins/gstreamer10/CMakeLists.txt
index 730a2c27fb..bb684c2626 100644
--- a/indra/media_plugins/gstreamer10/CMakeLists.txt
+++ b/indra/media_plugins/gstreamer10/CMakeLists.txt
@@ -5,32 +5,18 @@ project(media_plugin_gstreamer10)
include(00-Common)
include(LLCommon)
include(LLImage)
-include(LLPlugin)
+
include(LLMath)
-include(LLRender)
+
include(LLWindow)
include(Linking)
include(PluginAPI)
-include(MediaPluginBase)
+
include(OpenGL)
include(GLIB)
include(GStreamer10Plugin)
-include_directories(
- ${LLPLUGIN_INCLUDE_DIRS}
- ${MEDIA_PLUGIN_BASE_INCLUDE_DIRS}
- ${LLCOMMON_INCLUDE_DIRS}
- ${LLMATH_INCLUDE_DIRS}
- ${LLIMAGE_INCLUDE_DIRS}
- ${LLRENDER_INCLUDE_DIRS}
- ${LLWINDOW_INCLUDE_DIRS}
- ${GSTREAMER10_INCLUDE_DIRS}
- ${GSTREAMER10_PLUGINS_BASE_INCLUDE_DIRS}
-)
-include_directories(SYSTEM
- ${LLCOMMON_SYSTEM_INCLUDE_DIRS}
- )
### media_plugin_gstreamer10
@@ -56,23 +42,8 @@ add_library(media_plugin_gstreamer10
)
target_link_libraries(media_plugin_gstreamer10
- ${LLPLUGIN_LIBRARIES}
- ${MEDIA_PLUGIN_BASE_LIBRARIES}
- ${LLCOMMON_LIBRARIES}
- ${PLUGIN_API_WINDOWS_LIBRARIES}
- ${GSTREAMER10_LIBRARIES}
+ media_plugin_base
+ ll::gstreamer
)
-#add_dependencies(media_plugin_gstreamer10
-# ${LLPLUGIN_LIBRARIES}
-# ${MEDIA_PLUGIN_BASE_LIBRARIES}
-# ${LLCOMMON_LIBRARIES}
-#)
-if (WINDOWS)
- set_target_properties(
- media_plugin_gstreamer10
- PROPERTIES
- LINK_FLAGS "/MANIFEST:NO /SAFESEH:NO /NODEFAULTLIB:LIBCMT"
- )
-endif (WINDOWS)
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 09ccd2bf2b..c841616ada 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -2413,7 +2413,6 @@ if (LINUX)
target_link_libraries(${VIEWER_BINARY_NAME}
"dl"
# I wish I knew how to make this cleaner, this looks like a mess
- "fontconfig" # tried ll::fontconfig, didn't work
ll::vorbis
${GIO_LIBRARIES}
)
@@ -2430,12 +2429,12 @@ if (LINUX)
${VIEWER_BINARY_NAME}
SLPlugin
media_plugin_cef
- media_plugin_gstreamer010
+ media_plugin_gstreamer10
llcommon
linux-crash-logger
)
- add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_gstreamer010 media_plugin_cef linux-crash-logger)
+ add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_gstreamer10 media_plugin_cef linux-crash-logger)
add_custom_command(
OUTPUT ${product}.tar.bz2
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index a3d1f449b4..2fea985e8b 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -1929,7 +1929,7 @@ class LinuxManifest(ViewerManifest):
# plugins
with self.prefix(src=os.path.join(self.args['build'], os.pardir, 'media_plugins'), dst="bin/llplugin"):
- self.path("gstreamer010/libmedia_plugin_gstreamer010.so", "libmedia_plugin_gstreamer.so")
+ self.path("gstreamer10/libmedia_plugin_gstreamer10.so", "libmedia_plugin_gstreamer.so")
self.path("cef/libmedia_plugin_cef.so", "libmedia_plugin_cef.so" )
# CEF files