Skip to content

Commit

Permalink
Adjusting other scripts to use correct architecture
Browse files Browse the repository at this point in the history
  • Loading branch information
Ohjurot committed Jan 9, 2025
1 parent 11c66cf commit 720f718
Show file tree
Hide file tree
Showing 5 changed files with 86 additions and 32 deletions.
28 changes: 26 additions & 2 deletions scripts/deploy.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,28 @@
Add your own code to the main "function"
The script is by default called with "Release" in the first argument
Copyright (c) 2025 Moxibyte GmbH
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
"""
import mox
import os
import sys
import zipfile
Expand All @@ -14,6 +35,9 @@
if len(sys.argv) > 1:
conf = sys.argv[1]

# Architecture
arch = mox.GetPlatformInfo()["premake_arch"]

# Work directory's
tempDir = f'./temp/{conf}/'
deployDir = f'./deploy/{conf}/'
Expand All @@ -23,7 +47,7 @@
# We will do a quick copy from the out folder
# TODO: Add your own implementation
with zipfile.ZipFile(f'{deployDir}package.zip', 'w') as zip_file:
for file in os.listdir(f'./build/x86_64-{conf}/bin'):
path = f'./build/x86_64-{conf}/bin/{file}'
for file in os.listdir(f'./build/{arch}-{conf}/bin'):
path = f'./build/{arch}-{conf}/bin/{file}'
if os.path.isfile(path):
zip_file.write(path, file)
30 changes: 2 additions & 28 deletions scripts/init.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
"""
import mox
import moxwin

import os
Expand All @@ -33,27 +34,6 @@
import subprocess
import urllib.request

MOX_ARCH_MAP = {
# x86 32bit
"i386": { "conan_arch": "x86", "premake_arch": "x86" }, # Seen on linux
"i686": { "conan_arch": "x86", "premake_arch": "x86" }, # Seen on linux
"x86": { "conan_arch": "x86", "premake_arch": "x86" }, # Seen on windows

# x86 64bit
"amd64": { "conan_arch": "x86_64", "premake_arch": "x86_64" }, # Seen on windows
"x86_64": { "conan_arch": "x86_64", "premake_arch": "x86_64" }, # Seen on windows and linux

# ARM (32bit)
"arm": { "conan_arch": "armv7", "premake_arch": "ARM" }, # Seen on linux

# ARM64
"arm64": { "conan_arch": "armv8", "premake_arch": "ARM64" }, # Seen on windows
"aarch64": { "conan_arch": "armv8", "premake_arch": "ARM64" }, # Seen on linux
"aarch64_be": { "conan_arch": "armv8", "premake_arch": "ARM64" }, # Seen on linux
"armv8b": { "conan_arch": "armv8", "premake_arch": "ARM64" }, # Seen on linux
"armv8l": { "conan_arch": "armv8", "premake_arch": "ARM64" }, # Seen on linux
}

def GetExecutable(exe):
if sys.platform.startswith('linux'):
return exe
Expand All @@ -75,12 +55,6 @@ def GetPremakeDownloadUrl(version):
else:
return baseUrl + '-windows.zip'

def GetPlatformInfo():
arch = platform.machine().lower()
if not arch in MOX_ARCH_MAP:
raise ValueError(f'Architecture "{arch}" is not supported by MoxPP!')
return MOX_ARCH_MAP[arch]

def DownloadPremake(version = '5.0.0-beta4'):
premakeDownloadUrl = GetPremakeDownloadUrl(version)
premakeTargetFolder = './dependencies/premake5'
Expand Down Expand Up @@ -121,7 +95,7 @@ def ConanBuild(conf, arch):
DownloadPremake()

# Get system architecture
arch = GetPlatformInfo()
arch = mox.GetPlatformInfo()
print(f'Generating project on { platform.machine().lower() } for conan={ arch["conan_arch"] } and premake={arch["premake_arch"]}')

# Generate conan project
Expand Down
1 change: 1 addition & 0 deletions scripts/mox/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from .mox import *
51 changes: 51 additions & 0 deletions scripts/mox/mox.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
"""
Generic util functions
Copyright (c) 2025 Moxibyte GmbH
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
"""
import platform

MOX_ARCH_MAP = {
# x86 32bit
"i386": { "conan_arch": "x86", "premake_arch": "x86" }, # Seen on linux
"i686": { "conan_arch": "x86", "premake_arch": "x86" }, # Seen on linux
"x86": { "conan_arch": "x86", "premake_arch": "x86" }, # Seen on windows

# x86 64bit
"amd64": { "conan_arch": "x86_64", "premake_arch": "x86_64" }, # Seen on windows
"x86_64": { "conan_arch": "x86_64", "premake_arch": "x86_64" }, # Seen on windows and linux

# ARM (32bit)
"arm": { "conan_arch": "armv7", "premake_arch": "ARM" }, # Seen on linux

# ARM64
"arm64": { "conan_arch": "armv8", "premake_arch": "ARM64" }, # Seen on windows
"aarch64": { "conan_arch": "armv8", "premake_arch": "ARM64" }, # Seen on linux
"aarch64_be": { "conan_arch": "armv8", "premake_arch": "ARM64" }, # Seen on linux
"armv8b": { "conan_arch": "armv8", "premake_arch": "ARM64" }, # Seen on linux
"armv8l": { "conan_arch": "armv8", "premake_arch": "ARM64" }, # Seen on linux
}

def GetPlatformInfo():
arch = platform.machine().lower()
if not arch in MOX_ARCH_MAP:
raise ValueError(f'Architecture "{arch}" is not supported by MoxPP!')
return MOX_ARCH_MAP[arch]
8 changes: 6 additions & 2 deletions scripts/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Project execution script
This script will run the compiled application in the proper way.
Copyright (c) 2024 Moxibyte GmbH
Copyright (c) 2025 Moxibyte GmbH
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand All @@ -22,6 +22,7 @@
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
"""
import mox
import sys
import subprocess

Expand All @@ -35,6 +36,9 @@
conf = sys.argv[argv_index][3::]
argv_index += 1

# Architecture
arch = mox.GetPlatformInfo()["premake_arch"]

if len(sys.argv) > argv_index:
# Executable name
exe = sys.argv[argv_index]
Expand All @@ -44,7 +48,7 @@
args = sys.argv[argv_index::]

# Path to exe
exepath = f'build/x86_64-{conf}/bin/{exe}'
exepath = f'build/{arch}-{conf}/bin/{exe}'
if sys.platform.startswith('linux'):
exepath = '../' + exepath
else:
Expand Down

0 comments on commit 720f718

Please sign in to comment.