Linux: use system wide fontconfig instead of 3p library, if all goes well we can later remove it from autobuild.xml - patch by PorkChop, thank you!

meow-7.2.2
Zi Ree 2023-01-19 12:38:02 +01:00
parent 50e8414428
commit e60eb81d56
7 changed files with 19 additions and 15 deletions

View File

@ -256,8 +256,8 @@ elseif(LINUX)
#libopenjpeg.so
libuuid.so.16
libuuid.so.16.0.22
libfontconfig.so.1.10.1
libfontconfig.so.1
#libfontconfig.so.1.10.1 # <FS:PC> fontconfig and freetype should be taken from the
#libfontconfig.so.1 # user's system, and not be packaged with the viewer
libaprutil-1.so.0
libapr-1.so.0
)

View File

@ -6,14 +6,14 @@ if (USESYSTEMLIBS)
pkg_check_modules(FREETYPE REQUIRED freetype2)
else (USESYSTEMLIBS)
use_prebuilt_binary(freetype)
set(FREETYPE_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
set(FREETYPE_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/freetype2) #<FS:ND/> Also add freetype2 to search dir, or some includes will fail.
# <FS:ND> Linux links this via UI.cmake
if( NOT LINUX )
if (LINUX) # <FS:PC> linux fontconfig and freetype should come
find_package(Freetype REQUIRED) # from the user's system
else (LINUX) # Linux links this via llwindow/CMakeLists
use_prebuilt_binary(freetype)
set(FREETYPE_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
set(FREETYPE_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/freetype2) #<FS:ND/> Also add freetype2 to search dir, or some includes will fail.
set(FREETYPE_LIBRARIES freetype)
endif()
# </FS:ND>
endif (USESYSTEMLIBS)
link_directories(${FREETYPE_LIBRARY_DIRS})

View File

@ -47,7 +47,7 @@ else (USESYSTEMLIBS)
if (LINUX)
set(UI_LIB_NAMES
libfltk.a
libfreetype.a
# libfreetype.a # <FS:PC> fontconfig and freetype should be taken from the user's system, and not be packaged with the viewer
)
foreach(libname ${UI_LIB_NAMES})

View File

@ -4,7 +4,8 @@ include(Prebuilt)
if (NOT USESYSTEMLIBS)
if (LINUX)
use_prebuilt_binary(libuuid)
use_prebuilt_binary(fontconfig)
find_package(Fontconfig REQUIRED) # <FS:PC> fontconfig and freetype should be taken from the
# use_prebuilt_binary(fontconfig) # user's system, and not be packaged with the viewer
endif (LINUX)
use_prebuilt_binary(libhunspell)
use_prebuilt_binary(slvoice)

View File

@ -67,6 +67,7 @@ set(viewer_HEADER_FILES
# Libraries on which this library depends, needed for Linux builds
# Sort by high-level to low-level
if (LINUX)
find_package(Fontconfig REQUIRED) # <FS:PC> fontconfig and freetype should be taken from the user's system
set(llwindow_LINK_LIBRARIES
${LLCOMMON_LIBRARIES}
${LLIMAGE_LIBRARIES}
@ -77,8 +78,10 @@ if (LINUX)
${LLXML_LIBRARIES}
${UI_LIBRARIES} # for GTK
sdl
libfontconfig.a # For FCInit and other FC* functions.
libfreetype.a
# libfontconfig.a # <FS:PC> fontconfig and freetype should
# libfreetype.a # be taken from the user's system,
Freetype::Freetype # and not be packaged with
Fontconfig::Fontconfig # the viewer
)
if( USE_SDL1 )

View File

@ -57,7 +57,7 @@ exportMutliArchDRIPath() {
## Help fontconfig find its default configuration file, otherwise the viewer will stall
## with Fontconfig error: Cannot load default config file
export FONTCONFIG_PATH=/etc/fonts
# export FONTCONFIG_PATH=/etc/fonts
if [ "`uname -m`" = "x86_64" ]; then
echo '64-bit Linux detected.'

View File

@ -2203,10 +2203,10 @@ class Linux_i686_Manifest(LinuxManifest):
# particular wildcard specification gets us exactly what the
# previous call did, without having to explicitly state the
# version number.
self.path("libfontconfig.so.*.*")
# self.path("libfontconfig.so.*.*") # <FS:PC> fontconfig and freetype should be taken from the user's system
# Include libfreetype.so. but have it work as libfontconfig does.
self.path("libfreetype.so.*.*")
# self.path("libfreetype.so.*.*") # <FS:PC> fontconfig and freetype should be taken from the user's system
try:
self.path("libtcmalloc.so*") #formerly called google perf tools