|
@@ -542,6 +542,9 @@ class AndroidApiVersion:
|
|
|
def __repr__(self) -> str:
|
|
|
return f"<{self.name} ({'.'.join(str(v) for v in self.ints)})>"
|
|
|
|
|
|
+ANDROID_ABI_EXTRA_LINK_OPTIONS = {
|
|
|
+ "arm64-v8a": "-Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384",
|
|
|
+}
|
|
|
|
|
|
class Releaser:
|
|
|
def __init__(self, release_info: dict, commit: str, revision: str, root: Path, dist_path: Path, section_printer: SectionPrinter, executer: Executer, cmake_generator: str, deps_path: Path, overwrite: bool, github: bool, fast: bool):
|
|
@@ -1013,6 +1016,7 @@ class Releaser:
|
|
|
android_devel_file_tree = ArchiveFileTree()
|
|
|
|
|
|
for android_abi in android_abis:
|
|
|
+ extra_link_options = ANDROID_ABI_EXTRA_LINK_OPTIONS.get(android_abi, "")
|
|
|
with self.section_printer.group(f"Building for Android {android_api} {android_abi}"):
|
|
|
build_dir = self.root / "build-android" / f"{android_abi}-build"
|
|
|
install_dir = self.root / "install-android" / f"{android_abi}-install"
|
|
@@ -1026,6 +1030,8 @@ class Releaser:
|
|
|
# NDK 21e does not support -ffile-prefix-map
|
|
|
# f'''-DCMAKE_C_FLAGS="-ffile-prefix-map={self.root}=/src/{self.project}"''',
|
|
|
# f'''-DCMAKE_CXX_FLAGS="-ffile-prefix-map={self.root}=/src/{self.project}"''',
|
|
|
+ f"-DCMAKE_EXE_LINKER_FLAGS={extra_link_options}",
|
|
|
+ f"-DCMAKE_SHARED_LINKER_FLAGS={extra_link_options}",
|
|
|
f"-DCMAKE_TOOLCHAIN_FILE={cmake_toolchain_file}",
|
|
|
f"-DCMAKE_PREFIX_PATH={str(android_deps_path)}",
|
|
|
f"-DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=BOTH",
|