From 97b615c36a0b5081000c16337fb018712e828fb9 Mon Sep 17 00:00:00 2001 From: Alexey Nagaev Date: Wed, 1 Oct 2025 11:58:15 +0300 Subject: [PATCH] Fix build --- make.py | 1 - scripts/base.py | 19 +++++++++++++++++-- scripts/core_common/modules/boost_qt.py | 21 +++++++++++++++++---- scripts/core_common/modules/heif.py | 1 + scripts/core_common/modules/icu.py | 6 ++---- scripts/core_common/modules/openssl.py | 11 +++-------- scripts/core_common/modules/v8_89.py | 6 ++---- scripts/qmake.py | 4 +--- 8 files changed, 43 insertions(+), 26 deletions(-) diff --git a/make.py b/make.py index af953ab..581405b 100755 --- a/make.py +++ b/make.py @@ -28,7 +28,6 @@ if (args.build_only_branding): # parse configuration config.parse() -base.setup_path() base.check_python() base_dir = base.get_script_dir(__file__) diff --git a/scripts/base.py b/scripts/base.py index 02bf89c..22b768b 100644 --- a/scripts/base.py +++ b/scripts/base.py @@ -1886,9 +1886,24 @@ def check_module_version(actual_version, clear_func): clear_func() return -def setup_path(): + +def set_sysroot_env(): + global ENV_BEFORE_SYSROOT + ENV_BEFORE_SYSROOT = dict(os.environ) if "linux" == host_platform() and config.option("sysroot") != "": - set_env("PATH", config.option("sysroot") + "/usr/bin:" + get_env("PATH")) + os.environ['PATH'] = config.option("sysroot") + "/usr/bin:" + get_env("PATH") + os.environ['LD_LIBRARY_PATH'] = config.get_custom_sysroot_lib() + os.environ['QMAKE_CUSTOM_SYSROOT'] = config.option("sysroot") + os.environ['PKG_CONFIG_PATH'] = config.get_custom_sysroot_lib() + "/pkgconfig" + os.environ['CC'] = config.get_custom_sysroot_bin() + "/gcc" + os.environ['CXX'] = config.get_custom_sysroot_bin() + "/g++" + os.environ['CFLAGS'] = "--sysroot=" + config.option("sysroot") + os.environ['CXXFLAGS'] = "--sysroot=" + config.option("sysroot") + check_python() + +def restore_sysroot_env(): + os.environ.clear() + os.environ.update(ENV_BEFORE_SYSROOT) def check_python(): if ("linux" != host_platform()): diff --git a/scripts/core_common/modules/boost_qt.py b/scripts/core_common/modules/boost_qt.py index 2a1a44d..8e3a3cf 100644 --- a/scripts/core_common/modules/boost_qt.py +++ b/scripts/core_common/modules/boost_qt.py @@ -9,11 +9,22 @@ import qmake def make(src_dir, modules, build_platform="android", qmake_addon=""): old_cur = os.getcwd() + old_env = dict(os.environ) + b2_addon = "" print("boost-headers...") - base.cmd("./bootstrap.sh", ["--with-libraries=system"]) - base.cmd("./b2", ["--prefix=./../build/" + build_platform, "headers", "install"]) - + + # for b2 checks + if config.option("sysroot") != "": + base.set_sysroot_env() + b2_addon = "linkflags=\"--sysroot=" + config.option("sysroot") + "\"" + + base.cmd("./bootstrap.sh", ["--with-libraries=system"]) + base.cmd("./b2", ["--prefix=./../build/" + build_platform, "headers", "install", b2_addon]) + + if config.option("sysroot") != "": + base.restore_sysroot_env() + for module in modules: print("boost-module: " + module + " ...") module_dir = src_dir + "/libs/" + module @@ -40,6 +51,8 @@ def make(src_dir, modules, build_platform="android", qmake_addon=""): base.save_as_script(module_dir + "/" + module + ".pro", pro_file_content) os.chdir(module_dir) qmake.make_all_platforms(module_dir + "/" + module + ".pro", qmake_addon) - + + os.environ.clear() + os.environ.update(old_env) os.chdir(old_cur) return diff --git a/scripts/core_common/modules/heif.py b/scripts/core_common/modules/heif.py index aefef08..2f9fe4c 100644 --- a/scripts/core_common/modules/heif.py +++ b/scripts/core_common/modules/heif.py @@ -31,6 +31,7 @@ OLD_ENV = dict() def setup_custom_sysroot_env() -> str: env_vars = [] env_vars += ['LD_LIBRARY_PATH=\"' + config.get_custom_sysroot_lib() + "\""] + env_vars += ['PATH=\"' + config.option("sysroot") + "/usr/bin:" + base.get_env("PATH") + "\""] env_vars += ['CC=\"' + config.get_custom_sysroot_bin() + "/gcc\""] env_vars += ['CXX=\"' + config.get_custom_sysroot_bin() + "/g++\""] env_vars += ['AR=\"' + config.get_custom_sysroot_bin() + "/ar\""] diff --git a/scripts/core_common/modules/icu.py b/scripts/core_common/modules/icu.py index 841a928..3e4f0c9 100755 --- a/scripts/core_common/modules/icu.py +++ b/scripts/core_common/modules/icu.py @@ -136,8 +136,7 @@ def make(): base.cmd(command_configure, ["Linux", "--prefix=" + base_dir + "/icu/cross_build_install"]) base.replaceInFile("./../source/icudefs.mk.in", "LDFLAGS = @LDFLAGS@ $(RPATHLDFLAGS)", "LDFLAGS = @LDFLAGS@ $(RPATHLDFLAGS) " + command_compile_addon) else: - old_env = dict(os.environ) - os.environ['LD_LIBRARY_PATH'] = config.get_custom_sysroot_lib() + base.set_sysroot_env() base.cmd_exe("./../source/configure", ["--prefix=" + base_dir + "/icu/cross_build_install", "CC=" + config.get_custom_sysroot_bin() + "/gcc", "CXX=" + config.get_custom_sysroot_bin() + "/g++", "AR=" + config.get_custom_sysroot_bin() + "/ar", "RANLIB=" + config.get_custom_sysroot_bin() + "/ranlib", @@ -151,8 +150,7 @@ def make(): else: base.cmd_exe("make", ["-j4"]) base.cmd_exe("make", ["install"], True) - os.environ.clear() - os.environ.update(old_env) + base.restore_sysroot_env() base.create_dir(base_dir + "/linux_64") base.create_dir(base_dir + "/linux_64/build") diff --git a/scripts/core_common/modules/openssl.py b/scripts/core_common/modules/openssl.py index ed9557a..5a19712 100644 --- a/scripts/core_common/modules/openssl.py +++ b/scripts/core_common/modules/openssl.py @@ -87,9 +87,7 @@ def make(): # ------------------------------------------------------------------------------------------------------- return - if (-1 != config.option("platform").find("linux")) and not base.is_dir("../build/linux_64"): - ld_library_path_copy = '' - + if (-1 != config.option("platform").find("linux")) and not base.is_dir("../build/linux_64"): base.cmd("./config", ["enable-md2", "no-shared", "no-asm", "--prefix=" + old_cur_dir + "/build/linux_64", "--openssldir=" + old_cur_dir + "/build/linux_64"]) if "1" == config.option("use-clang"): base.replaceInFile("./Makefile", "CC=$(CROSS_COMPILE)gcc", "CC=$(CROSS_COMPILE)clang") @@ -101,9 +99,6 @@ def make(): base.replaceInFile("./Makefile", "CFLAGS=-Wall -O3", "CFLAGS=-Wall -O3 -fvisibility=hidden") base.replaceInFile("./Makefile", "CXXFLAGS=-Wall -O3", "CXXFLAGS=-Wall -O3 -fvisibility=hidden") else: - old_env = dict(os.environ) - os.environ['LD_LIBRARY_PATH'] = config.get_custom_sysroot_lib() - base.replaceInFile("./Makefile", "CROSS_COMPILE=", "CROSS_COMPILE=" + config.get_custom_sysroot_bin() + "/") base.replaceInFile("./Makefile", "CFLAGS=-Wall -O3", "CFLAGS=-Wall -O3 -fvisibility=hidden --sysroot=" + config.option("sysroot")) base.replaceInFile("./Makefile", "CXXFLAGS=-Wall -O3", "CXXFLAGS=-Wall -O3 -fvisibility=hidden --sysroot=" + config.option("sysroot")) @@ -113,11 +108,11 @@ def make(): base.cmd("make", ["install"]) base.cmd("make", ["clean"], True) else: + base.set_sysroot_env() base.cmd_exe("make", []) base.cmd_exe("make", ["install"]) base.cmd_exe("make", ["clean"], True) - os.environ.clear() - os.environ.update(old_env) + base.restore_sysroot_env() if (-1 != config.option("platform").find("linux_arm64")) and not base.is_dir("../build/linux_arm64"): if ("x86_64" != platform.machine()): diff --git a/scripts/core_common/modules/v8_89.py b/scripts/core_common/modules/v8_89.py index 087fec7..9d642aa 100644 --- a/scripts/core_common/modules/v8_89.py +++ b/scripts/core_common/modules/v8_89.py @@ -216,12 +216,10 @@ def make(): base.replaceInFile("build/toolchain/linux/BUILD.gn", src_replace, dst_replace) old_env = dict(os.environ) - os.environ['LD_LIBRARY_PATH'] = config.get_custom_sysroot_lib() - os.environ['PKG_CONFIG_PATH'] = config.get_custom_sysroot_lib() + "/pkgconfig" + base.set_sysroot_env() base.cmd2("gn", ["gen", "out.gn/linux_64", make_args(gn_args, "linux")], False) base.cmd2("ninja", ["-C", "out.gn/linux_64"], False) - os.environ.clear() - os.environ.update(old_env) + base.restore_sysroot_env() else: base.cmd2("gn", ["gen", "out.gn/linux_64", make_args(gn_args, "linux")], False) base.cmd2("ninja", ["-C", "out.gn/linux_64"], False) diff --git a/scripts/qmake.py b/scripts/qmake.py index 9bbe0df..9c0c7ac 100644 --- a/scripts/qmake.py +++ b/scripts/qmake.py @@ -101,9 +101,7 @@ def make(platform, project, qmake_config_addon="", is_no_errors=False): build_params.append("-spec") build_params.append("linux-clang-libc++") if "" != config.option("sysroot"): - os.environ['LD_LIBRARY_PATH'] = config.get_custom_sysroot_lib() - os.environ['QMAKE_CUSTOM_SYSROOT'] = config.option("sysroot") - os.environ['PKG_CONFIG_PATH'] = config.get_custom_sysroot_lib() + "/pkgconfig" + base.set_sysroot_env() base.cmd_exe(qmake_app, build_params) # calls cmd_exe to pass os.env else: base.cmd(qmake_app, build_params)