Parcourir la source

Script updates for libsamplerate-0.2.1 on Linux aarch64 (ARM64) (#144)

Signed-off-by: Steve Pham <[email protected]>
Steve Pham il y a 2 ans
Parent
commit
29329c0a41

+ 8 - 4
package-system/mcpp/get_and_build_mcpp.py

@@ -29,11 +29,15 @@ SOURCEFORGE_URL = "https://sourceforge.net/projects/mcpp/files/mcpp/V.2.7.2"
 SOURCEFORGE_DOWNLOAD_URL = f"{SOURCEFORGE_URL}/{SOURCE_TAR_FILE}/download"
 
 PLATFORM_LINUX = 'linux'
+PLATFORM_LINUX_ARM64 = 'linux-aarch64'
 PLATFORM_MAC = 'mac'
 PLATFORM_WINDOWS = 'windows'
 
 if platform.system() == 'Linux':
-    platform_name = PLATFORM_LINUX
+    if platform.processor() == 'aarch64':
+        platform_name = PLATFORM_LINUX_ARM64
+    else:
+        platform_name = PLATFORM_LINUX
     shared_lib_name = 'libmcpp.so'
     static_lib_name = 'libmcpp.a'
 elif platform.system() == 'Darwin':
@@ -65,7 +69,7 @@ elif platform.system() == 'Windows':
 else:
     assert False, "Invalid platform"
 
-assert platform_name in (PLATFORM_LINUX, PLATFORM_MAC, PLATFORM_WINDOWS), f"Invalid platform_name {platform_name}"
+assert platform_name in (PLATFORM_LINUX, PLATFORM_LINUX_ARM64, PLATFORM_MAC, PLATFORM_WINDOWS), f"Invalid platform_name {platform_name}"
 
 TARGET_3PP_PACKAGE_FOLDER = SCRIPT_PATH.parent / f'mcpp-{platform_name}'
 
@@ -286,7 +290,7 @@ def copy_build_artifacts(temp_folder):
         (source_path / 'src' / 'mcpp_lib.h', target_mcpp_root / 'include'),
         (source_path / 'src' / 'mcpp_out.h', target_mcpp_root / 'include')
         ]
-    if platform_name == 'linux':
+    if platform_name in ('linux', 'linux-aarch64'):
         file_copy_tuples.extend([
             (source_path / 'src' / '.libs' / 'libmcpp.a', target_mcpp_root / 'lib'),
             (source_path / 'src' / '.libs' / 'libmcpp.so.0.3.0', target_mcpp_root / 'lib'),
@@ -316,7 +320,7 @@ def copy_build_artifacts(temp_folder):
         shutil.copy2(str(src), str(dst))
 
     dst_lib_folder = target_mcpp_root / 'lib'
-    if platform_name == 'linux':
+    if platform_name in ('linux', 'linux-aarch64'):
         base_shared_lib_name = 'libmcpp.so.0.3.0'
         symlinks = ['libmcpp.so.0', 'libmcpp.so']
     elif platform_name == 'mac':

+ 18 - 4
package-system/mcpp/mcpp_2.7.2_az.patch

@@ -1,3 +1,17 @@
+diff --git a/config/config.guess b/config/config.guess
+index 396482d..4592806 100755
+--- a/config/config.guess
++++ b/config/config.guess
+@@ -831,6 +831,9 @@ EOF
+     arm*:Linux:*:*)
+ 	echo ${UNAME_MACHINE}-unknown-linux-gnu
+ 	exit ;;
++    aarch64:Linux:*:*)
++	echo ${UNAME_MACHINE}-unknown-linux-gnu
++	exit ;;
+     avr32*:Linux:*:*)
+ 	echo ${UNAME_MACHINE}-unknown-linux-gnu
+ 	exit ;;
 diff --git a/src/configed.H b/src/configed.H
 index b4d1ebf..436bd54 100644
 --- a/src/configed.H
@@ -201,7 +215,7 @@ index 6b634fe..6482967 100644
  /* Version message.                 */
  /* "MCPP V.2.* (200y/mm) compiled by " precedes VERSION_MSG */
 diff --git a/src/support.c b/src/support.c
-index c57eaef..ba7c422 100644
+index c57eaef..c910d86 100644
 --- a/src/support.c
 +++ b/src/support.c
 @@ -364,6 +364,19 @@ void    mcpp_set_out_func(
@@ -251,13 +265,13 @@ index c57eaef..ba7c422 100644
 +    // Match the number of lines between the source AZSL files, before preprocessing,
 +    // and the AZSL files after preprocessing. Line number matching is important because it helps
 +    // providing accurate line numbers when reporting errors either by AZSLc or DXC.
-+    // 
++    //
 +    // ---- The Problem:
 +    // MCPP adds a new line after each comment line that starts with '//'
-+    // 
++    //
 +    // ---- Solution:
 +    // Do not add the extra line ending character '\n'.
-+    // 
++    //
 +    // ---- How:
 +    // We count here the amount of leading spaces before the first
 +    // non space character is detected.

+ 2 - 0
package_build_list_host_linux-aarch64.json

@@ -14,6 +14,7 @@
         "libsamplerate-0.2.1-rev2-linux-aarch64": "Scripts/extras/pull_and_build_from_git.py ../../package-system/libsamplerate --platform-name Linux-aarch64 --clean",
         "Lua-5.4.4-rev1-linux-aarch64": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Lua --platform-name Linux-aarch64 --clean",
         "lz4-1.9.3-vcpkg-rev4-linux-aarch64": "package-system/lz4/build_package_image.py --platform-name linux-aarch64",
+        "mcpp-2.7.2_az.1-rev1-linux-aarch64": "package-system/mcpp/get_and_build_mcpp.py mcpp-2.7.2_az.1-rev1",
         "mikkelsen-1.0.0.4-linux-aarch64": "package-system/mikkelsen/build_package_image.py --platform linux-aarch64",
         "OpenEXR-3.1.3-rev4-linux-aarch64": "Scripts/extras/pull_and_build_from_git.py ../../package-system/OpenEXR --platform-name Linux-aarch64 --clean",
         "OpenXR-1.0.22-rev2-linux-aarch64": "Scripts/extras/pull_and_build_from_git.py ../../package-system/OpenXR --platform-name Linux-aarch64 --clean",
@@ -34,6 +35,7 @@
         "Lua-5.4.4-rev1-linux-aarch64": "package-system/Lua/temp/Lua-linux-aarch64",
         "lz4-1.9.3-vcpkg-rev4-linux-aarch64": "package-system/lz4-linux-aarch64",
         "mikkelsen-1.0.0.4-linux-aarch64": "package-system/mikkelsen-linux-aarch64",
+        "mcpp-2.7.2_az.1-rev1-linux-aarch64": "package-system/mcpp-linux-aarch64",
         "OpenEXR-3.1.3-rev4-linux-aarch64": "package-system/OpenEXR/temp/OpenEXR-linux-aarch64",
         "OpenXR-1.0.22-rev2-linux-aarch64": "package-system/OpenXR/temp/OpenXR-linux-aarch64",
         "png-1.6.37-rev2-linux-aarch64":  "package-system/libpng/temp/png-linux-aarch64",