Correctly include lib64 library on manylinux archives

Manylinux build are based on Redhat and libs are put in `/lib64`
directory and not in `/lib/<arch>/` as on Debian based build.

Fix #746
This commit is contained in:
Matthieu Gautier 2024-09-01 10:06:21 +02:00
parent 3905de7110
commit e5b7bccdf2
1 changed files with 21 additions and 5 deletions

View File

@ -69,6 +69,14 @@ def major_version(version: str) -> str:
return version.split(".")[0] return version.split(".")[0]
# Depending of base distribution, libraries are in "lib64" (redhat base) or "lib/<arch>" (debian base).
# On top of that, when cross-compiling, libraries are always put in `lib/<arch>`.
# As we use this as glob regex to select which files to add to archive, this is not a problem to have both.
def lib_prefix(file):
yield "lib64/" + file
yield "lib/*/" + file
# We have build everything. Now create archives for public deployement. # We have build everything. Now create archives for public deployement.
EXPORT_FILES = { EXPORT_FILES = {
"kiwix-tools": ( "kiwix-tools": (
@ -97,18 +105,25 @@ EXPORT_FILES = {
"libzim": ( "libzim": (
INSTALL_DIR, INSTALL_DIR,
( (
## Linux
# We need to package all dependencies (`*.a`) on wasm # We need to package all dependencies (`*.a`) on wasm
"lib/*/libzim.a" if COMPILE_CONFIG != "wasm" else "lib/*.a", *lib_prefix("libzim.a" if COMPILE_CONFIG != "wasm" else "*.a"),
"lib/*/libzim.so", *lib_prefix("libzim.so"),
"lib/*/libzim.so.{version}".format(version=main_project_versions["libzim"]), *lib_prefix(
"lib/*/libzim.so.{version}".format( "libzim.so.{version}".format(version=main_project_versions["libzim"])
version=major_version(main_project_versions["libzim"])
), ),
*lib_prefix(
"libzim.so.{version}".format(
version=major_version(main_project_versions["libzim"])
)
),
## MacOS
"lib/libzim.{}.dylib".format( "lib/libzim.{}.dylib".format(
major_version(main_project_versions["libzim"]) major_version(main_project_versions["libzim"])
), ),
"lib/libzim.dylib", "lib/libzim.dylib",
"lib/*/libzim.pc", "lib/*/libzim.pc",
## Windows
"bin/zim-{version}.dll".format( "bin/zim-{version}.dll".format(
version=major_version(main_project_versions["libzim"]) version=major_version(main_project_versions["libzim"])
), ),
@ -117,6 +132,7 @@ EXPORT_FILES = {
version=major_version(main_project_versions["libzim"]) version=major_version(main_project_versions["libzim"])
), ),
"lib/zim.lib", "lib/zim.lib",
## Includes and others
"include/zim/**/*.h", "include/zim/**/*.h",
"share/icu/{}/icudt{}l.dat".format( "share/icu/{}/icudt{}l.dat".format(
base_deps_versions["icu4c"], major_version(base_deps_versions["icu4c"]) base_deps_versions["icu4c"], major_version(base_deps_versions["icu4c"])