Merge pull request #73441 from akien-mga/linux-unbundling-fixes
Fix includes of thirdparty libs which can be unbundled on Linux
This commit is contained in:
commit
cefe1e0654
11 changed files with 41 additions and 30 deletions
|
@ -218,7 +218,7 @@ opts.Add(BoolVariable("builtin_msdfgen", "Use the built-in MSDFgen library", Tru
|
||||||
opts.Add(BoolVariable("builtin_glslang", "Use the built-in glslang library", True))
|
opts.Add(BoolVariable("builtin_glslang", "Use the built-in glslang library", True))
|
||||||
opts.Add(BoolVariable("builtin_graphite", "Use the built-in Graphite library", True))
|
opts.Add(BoolVariable("builtin_graphite", "Use the built-in Graphite library", True))
|
||||||
opts.Add(BoolVariable("builtin_harfbuzz", "Use the built-in HarfBuzz library", True))
|
opts.Add(BoolVariable("builtin_harfbuzz", "Use the built-in HarfBuzz library", True))
|
||||||
opts.Add(BoolVariable("builtin_icu", "Use the built-in ICU library", True))
|
opts.Add(BoolVariable("builtin_icu4c", "Use the built-in ICU library", True))
|
||||||
opts.Add(BoolVariable("builtin_libogg", "Use the built-in libogg library", True))
|
opts.Add(BoolVariable("builtin_libogg", "Use the built-in libogg library", True))
|
||||||
opts.Add(BoolVariable("builtin_libpng", "Use the built-in libpng library", True))
|
opts.Add(BoolVariable("builtin_libpng", "Use the built-in libpng library", True))
|
||||||
opts.Add(BoolVariable("builtin_libtheora", "Use the built-in libtheora library", True))
|
opts.Add(BoolVariable("builtin_libtheora", "Use the built-in libtheora library", True))
|
||||||
|
@ -229,7 +229,7 @@ opts.Add(BoolVariable("builtin_mbedtls", "Use the built-in mbedTLS library", Tru
|
||||||
opts.Add(BoolVariable("builtin_miniupnpc", "Use the built-in miniupnpc library", True))
|
opts.Add(BoolVariable("builtin_miniupnpc", "Use the built-in miniupnpc library", True))
|
||||||
opts.Add(BoolVariable("builtin_pcre2", "Use the built-in PCRE2 library", True))
|
opts.Add(BoolVariable("builtin_pcre2", "Use the built-in PCRE2 library", True))
|
||||||
opts.Add(BoolVariable("builtin_pcre2_with_jit", "Use JIT compiler for the built-in PCRE2 library", True))
|
opts.Add(BoolVariable("builtin_pcre2_with_jit", "Use JIT compiler for the built-in PCRE2 library", True))
|
||||||
opts.Add(BoolVariable("builtin_recast", "Use the built-in Recast library", True))
|
opts.Add(BoolVariable("builtin_recastnavigation", "Use the built-in Recast navigation library", True))
|
||||||
opts.Add(BoolVariable("builtin_rvo2", "Use the built-in RVO2 library", True))
|
opts.Add(BoolVariable("builtin_rvo2", "Use the built-in RVO2 library", True))
|
||||||
opts.Add(BoolVariable("builtin_squish", "Use the built-in squish library", True))
|
opts.Add(BoolVariable("builtin_squish", "Use the built-in squish library", True))
|
||||||
opts.Add(BoolVariable("builtin_xatlas", "Use the built-in xatlas library", True))
|
opts.Add(BoolVariable("builtin_xatlas", "Use the built-in xatlas library", True))
|
||||||
|
|
|
@ -40,6 +40,9 @@ if not env.msvc:
|
||||||
else:
|
else:
|
||||||
env_basisu.Prepend(CPPPATH=[thirdparty_dir])
|
env_basisu.Prepend(CPPPATH=[thirdparty_dir])
|
||||||
|
|
||||||
|
if env["builtin_zstd"]:
|
||||||
|
env_basisu.Prepend(CPPPATH=["#thirdparty/zstd"])
|
||||||
|
|
||||||
if env.dev_build:
|
if env.dev_build:
|
||||||
env_basisu.Append(CPPDEFINES=[("BASISU_DEVEL_MESSAGES", 1), ("BASISD_ENABLE_DEBUG_FLAGS", 1)])
|
env_basisu.Append(CPPDEFINES=[("BASISU_DEVEL_MESSAGES", 1), ("BASISD_ENABLE_DEBUG_FLAGS", 1)])
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ env_navigation = env_modules.Clone()
|
||||||
thirdparty_obj = []
|
thirdparty_obj = []
|
||||||
|
|
||||||
# Recast Thirdparty source files
|
# Recast Thirdparty source files
|
||||||
if env["builtin_recast"]:
|
if env["builtin_recastnavigation"]:
|
||||||
thirdparty_dir = "#thirdparty/recastnavigation/Recast/"
|
thirdparty_dir = "#thirdparty/recastnavigation/Recast/"
|
||||||
thirdparty_sources = [
|
thirdparty_sources = [
|
||||||
"Source/Recast.cpp",
|
"Source/Recast.cpp",
|
||||||
|
|
|
@ -32,11 +32,10 @@
|
||||||
#define OGG_PACKET_SEQUENCE_H
|
#define OGG_PACKET_SEQUENCE_H
|
||||||
|
|
||||||
#include "core/io/resource.h"
|
#include "core/io/resource.h"
|
||||||
#include "core/object/gdvirtual.gen.inc"
|
|
||||||
#include "core/variant/native_ptr.h"
|
|
||||||
#include "core/variant/typed_array.h"
|
#include "core/variant/typed_array.h"
|
||||||
#include "core/variant/variant.h"
|
#include "core/variant/variant.h"
|
||||||
#include "thirdparty/libogg/ogg/ogg.h"
|
|
||||||
|
#include <ogg/ogg.h>
|
||||||
|
|
||||||
class OggPacketSequencePlayback;
|
class OggPacketSequencePlayback;
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,6 @@ env_text_server_adv = env_modules.Clone()
|
||||||
|
|
||||||
|
|
||||||
def make_icu_data(target, source, env):
|
def make_icu_data(target, source, env):
|
||||||
|
|
||||||
dst = target[0].srcnode().abspath
|
dst = target[0].srcnode().abspath
|
||||||
|
|
||||||
g = open(dst, "w", encoding="utf-8")
|
g = open(dst, "w", encoding="utf-8")
|
||||||
|
@ -126,7 +125,7 @@ if env["builtin_harfbuzz"]:
|
||||||
env_harfbuzz.Prepend(CPPPATH=["#thirdparty/harfbuzz/src"])
|
env_harfbuzz.Prepend(CPPPATH=["#thirdparty/harfbuzz/src"])
|
||||||
|
|
||||||
env_harfbuzz.Append(CCFLAGS=["-DHAVE_ICU"])
|
env_harfbuzz.Append(CCFLAGS=["-DHAVE_ICU"])
|
||||||
if env["builtin_icu"]:
|
if env["builtin_icu4c"]:
|
||||||
env_harfbuzz.Prepend(CPPPATH=["#thirdparty/icu4c/common/", "#thirdparty/icu4c/i18n/"])
|
env_harfbuzz.Prepend(CPPPATH=["#thirdparty/icu4c/common/", "#thirdparty/icu4c/i18n/"])
|
||||||
env_harfbuzz.Append(CCFLAGS=["-DU_HAVE_LIB_SUFFIX=1", "-DU_LIB_SUFFIX_C_NAME=_godot", "-DHAVE_ICU_BUILTIN"])
|
env_harfbuzz.Append(CCFLAGS=["-DU_HAVE_LIB_SUFFIX=1", "-DU_LIB_SUFFIX_C_NAME=_godot", "-DHAVE_ICU_BUILTIN"])
|
||||||
|
|
||||||
|
@ -240,7 +239,7 @@ if env["builtin_graphite"] and freetype_enabled and env["graphite"]:
|
||||||
env.Append(LIBS=[lib])
|
env.Append(LIBS=[lib])
|
||||||
|
|
||||||
|
|
||||||
if env["builtin_icu"]:
|
if env["builtin_icu4c"]:
|
||||||
env_icu = env_modules.Clone()
|
env_icu = env_modules.Clone()
|
||||||
env_icu.disable_warnings()
|
env_icu.disable_warnings()
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,8 @@
|
||||||
|
|
||||||
#include "core/io/file_access.h"
|
#include "core/io/file_access.h"
|
||||||
#include "core/variant/typed_array.h"
|
#include "core/variant/typed_array.h"
|
||||||
#include "thirdparty/libogg/ogg/ogg.h"
|
|
||||||
|
#include <ogg/ogg.h>
|
||||||
|
|
||||||
int AudioStreamPlaybackOggVorbis::_mix_internal(AudioFrame *p_buffer, int p_frames) {
|
int AudioStreamPlaybackOggVorbis::_mix_internal(AudioFrame *p_buffer, int p_frames) {
|
||||||
ERR_FAIL_COND_V(!ready, 0);
|
ERR_FAIL_COND_V(!ready, 0);
|
||||||
|
|
|
@ -34,7 +34,8 @@
|
||||||
#include "core/variant/variant.h"
|
#include "core/variant/variant.h"
|
||||||
#include "modules/ogg/ogg_packet_sequence.h"
|
#include "modules/ogg/ogg_packet_sequence.h"
|
||||||
#include "servers/audio/audio_stream.h"
|
#include "servers/audio/audio_stream.h"
|
||||||
#include "thirdparty/libvorbis/vorbis/codec.h"
|
|
||||||
|
#include <vorbis/codec.h>
|
||||||
|
|
||||||
class AudioStreamOggVorbis;
|
class AudioStreamOggVorbis;
|
||||||
|
|
||||||
|
|
|
@ -33,8 +33,9 @@
|
||||||
#include "core/io/file_access.h"
|
#include "core/io/file_access.h"
|
||||||
#include "core/io/resource_saver.h"
|
#include "core/io/resource_saver.h"
|
||||||
#include "scene/resources/texture.h"
|
#include "scene/resources/texture.h"
|
||||||
#include "thirdparty/libogg/ogg/ogg.h"
|
|
||||||
#include "thirdparty/libvorbis/vorbis/codec.h"
|
#include <ogg/ogg.h>
|
||||||
|
#include <vorbis/codec.h>
|
||||||
|
|
||||||
#ifdef TOOLS_ENABLED
|
#ifdef TOOLS_ENABLED
|
||||||
#include "editor/import/audio_stream_import_settings.h"
|
#include "editor/import/audio_stream_import_settings.h"
|
||||||
|
|
|
@ -194,19 +194,21 @@ def configure(env: "Environment"):
|
||||||
# FIXME: Check for existence of the libs before parsing their flags with pkg-config
|
# FIXME: Check for existence of the libs before parsing their flags with pkg-config
|
||||||
|
|
||||||
# freetype depends on libpng and zlib, so bundling one of them while keeping others
|
# freetype depends on libpng and zlib, so bundling one of them while keeping others
|
||||||
# as shared libraries leads to weird issues
|
# as shared libraries leads to weird issues. And graphite and harfbuzz need freetype.
|
||||||
if (
|
ft_linked_deps = [
|
||||||
env["builtin_freetype"]
|
env["builtin_freetype"],
|
||||||
or env["builtin_libpng"]
|
env["builtin_libpng"],
|
||||||
or env["builtin_zlib"]
|
env["builtin_zlib"],
|
||||||
or env["builtin_graphite"]
|
env["builtin_graphite"],
|
||||||
or env["builtin_harfbuzz"]
|
env["builtin_harfbuzz"],
|
||||||
):
|
]
|
||||||
env["builtin_freetype"] = True
|
if (not all(ft_linked_deps)) and any(ft_linked_deps): # All or nothing.
|
||||||
env["builtin_libpng"] = True
|
print(
|
||||||
env["builtin_zlib"] = True
|
"These libraries should be either all builtin, or all system provided:\n"
|
||||||
env["builtin_graphite"] = True
|
"freetype, libpng, zlib, graphite, harfbuzz.\n"
|
||||||
env["builtin_harfbuzz"] = True
|
"Please specify `builtin_<name>=no` for all of them, or none."
|
||||||
|
)
|
||||||
|
sys.exit()
|
||||||
|
|
||||||
if not env["builtin_freetype"]:
|
if not env["builtin_freetype"]:
|
||||||
env.ParseConfig("pkg-config freetype2 --cflags --libs")
|
env.ParseConfig("pkg-config freetype2 --cflags --libs")
|
||||||
|
@ -214,8 +216,8 @@ def configure(env: "Environment"):
|
||||||
if not env["builtin_graphite"]:
|
if not env["builtin_graphite"]:
|
||||||
env.ParseConfig("pkg-config graphite2 --cflags --libs")
|
env.ParseConfig("pkg-config graphite2 --cflags --libs")
|
||||||
|
|
||||||
if not env["builtin_icu"]:
|
if not env["builtin_icu4c"]:
|
||||||
env.ParseConfig("pkg-config icu-uc --cflags --libs")
|
env.ParseConfig("pkg-config icu-i18n icu-uc --cflags --libs")
|
||||||
|
|
||||||
if not env["builtin_harfbuzz"]:
|
if not env["builtin_harfbuzz"]:
|
||||||
env.ParseConfig("pkg-config harfbuzz harfbuzz-icu --cflags --libs")
|
env.ParseConfig("pkg-config harfbuzz harfbuzz-icu --cflags --libs")
|
||||||
|
@ -270,6 +272,11 @@ def configure(env: "Environment"):
|
||||||
if not env["builtin_pcre2"]:
|
if not env["builtin_pcre2"]:
|
||||||
env.ParseConfig("pkg-config libpcre2-32 --cflags --libs")
|
env.ParseConfig("pkg-config libpcre2-32 --cflags --libs")
|
||||||
|
|
||||||
|
if not env["builtin_recastnavigation"]:
|
||||||
|
# No pkgconfig file so far, hardcode default paths.
|
||||||
|
env.Prepend(CPPPATH=["/usr/include/recastnavigation"])
|
||||||
|
env.Append(LIBS=["Recast"])
|
||||||
|
|
||||||
if not env["builtin_embree"]:
|
if not env["builtin_embree"]:
|
||||||
# No pkgconfig file so far, hardcode expected lib name.
|
# No pkgconfig file so far, hardcode expected lib name.
|
||||||
env.Append(LIBS=["embree3"])
|
env.Append(LIBS=["embree3"])
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if BASISD_SUPPORT_KTX2_ZSTD
|
#if BASISD_SUPPORT_KTX2_ZSTD
|
||||||
#include "../zstd/zstd.h"
|
#include <zstd.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Set to 1 to disable the mipPadding alignment workaround (which only seems to be needed when no key-values are written at all)
|
// Set to 1 to disable the mipPadding alignment workaround (which only seems to be needed when no key-values are written at all)
|
||||||
|
|
|
@ -155,7 +155,7 @@
|
||||||
// If BASISD_SUPPORT_KTX2_ZSTD is 0, UASTC files compressed with Zstd cannot be loaded.
|
// If BASISD_SUPPORT_KTX2_ZSTD is 0, UASTC files compressed with Zstd cannot be loaded.
|
||||||
#if BASISD_SUPPORT_KTX2_ZSTD
|
#if BASISD_SUPPORT_KTX2_ZSTD
|
||||||
// We only use two Zstd API's: ZSTD_decompress() and ZSTD_isError()
|
// We only use two Zstd API's: ZSTD_decompress() and ZSTD_isError()
|
||||||
#include "../zstd/zstd.h"
|
#include <zstd.h>
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue