Skip to content

Commit cc042da

Browse files
add arm support
1 parent a834070 commit cc042da

File tree

2 files changed

+40
-17
lines changed

2 files changed

+40
-17
lines changed

build_differ.py

+29-13
Original file line numberDiff line numberDiff line change
@@ -56,29 +56,45 @@ def main():
5656

5757
dist_dir = "./src/python_redlines/dist/"
5858

59-
# Build for Linux
60-
print("Building for Linux...")
59+
# Build for Linux x64
60+
print("Building for Linux x64...")
6161
run_command('dotnet publish ./csproj -c Release -r linux-x64 --self-contained')
6262

63-
# Build for Windows
64-
print("Building for Windows...")
63+
# Build for Linux ARM64
64+
print("Building for Linux ARM64...")
65+
run_command('dotnet publish ./csproj -c Release -r linux-arm64 --self-contained')
66+
67+
# Build for Windows x64
68+
print("Building for Windows x64...")
6569
run_command('dotnet publish ./csproj -c Release -r win-x64 --self-contained')
6670

67-
# Build for macOS
68-
print("Building for macOS...")
71+
# Build for macOS x64
72+
print("Building for macOS x64...")
6973
run_command('dotnet publish ./csproj -c Release -r osx-x64 --self-contained')
7074

71-
# Compress the Linux build
72-
linux_build_dir = './csproj/bin/Release/net8.0/linux-x64'
73-
compress_files(linux_build_dir, f"{dist_dir}/linux-x64-{version}.tar.gz")
75+
# Build for macOS ARM64
76+
print("Building for macOS ARM64...")
77+
run_command('dotnet publish ./csproj -c Release -r osx-arm64 --self-contained')
78+
79+
# Compress the Linux x64 build
80+
linux_x64_build_dir = './csproj/bin/Release/net8.0/linux-x64'
81+
compress_files(linux_x64_build_dir, f"{dist_dir}/linux-x64-{version}.tar.gz")
7482

75-
# Compress the Windows build
83+
# Compress the Linux ARM64 build
84+
linux_arm64_build_dir = './csproj/bin/Release/net8.0/linux-arm64'
85+
compress_files(linux_arm64_build_dir, f"{dist_dir}/linux-arm64-{version}.tar.gz")
86+
87+
# Compress the Windows x64 build
7688
windows_build_dir = './csproj/bin/Release/net8.0/win-x64'
7789
compress_files(windows_build_dir, f"{dist_dir}/win-x64-{version}.zip")
7890

79-
# Compress the macOS build
80-
macos_build_dir = './csproj/bin/Release/net8.0/osx-x64'
81-
compress_files(macos_build_dir, f"{dist_dir}/osx-x64-{version}.tar.gz")
91+
# Compress the macOS x64 build
92+
macos_x64_build_dir = './csproj/bin/Release/net8.0/osx-x64'
93+
compress_files(macos_x64_build_dir, f"{dist_dir}/osx-x64-{version}.tar.gz")
94+
95+
# Compress the macOS ARM64 build
96+
macos_arm64_build_dir = './csproj/bin/Release/net8.0/osx-arm64'
97+
compress_files(macos_arm64_build_dir, f"{dist_dir}/osx-arm64-{version}.tar.gz")
8298

8399
cleanup_old_builds(dist_dir, version)
84100

src/python_redlines/engines.py

+11-4
Original file line numberDiff line numberDiff line change
@@ -64,19 +64,26 @@ def __get_binaries_info(self):
6464
zip_name: str - The name of the zip file
6565
"""
6666
os_name = platform.system().lower()
67-
arch = 'x64' # Assuming x64 architecture
67+
arch = platform.machine().lower()
68+
69+
if arch in ('x86_64', 'amd64'):
70+
arch = 'x64'
71+
elif arch in ('arm64', 'aarch64'):
72+
arch = 'arm64'
73+
else:
74+
raise EnvironmentError(f"Unsupported architecture: {arch}")
6875

6976
if os_name == 'linux':
7077
zip_name = f"linux-{arch}-{__version__}.tar.gz"
71-
binary_name = 'linux-x64/redlines'
78+
binary_name = f'linux-{arch}/redlines'
7279

7380
elif os_name == 'windows':
7481
zip_name = f"win-{arch}-{__version__}.zip"
75-
binary_name = 'win-x64/redlines.exe'
82+
binary_name = f'win-{arch}/redlines.exe'
7683

7784
elif os_name == 'darwin':
7885
zip_name = f"osx-{arch}-{__version__}.tar.gz"
79-
binary_name = 'osx-x64/redlines'
86+
binary_name = f'osx-{arch}/redlines'
8087

8188
else:
8289
raise EnvironmentError("Unsupported OS")

0 commit comments

Comments
 (0)