Skip to content

Commit 7711405

Browse files
committedApr 7, 2024·
Add toolchain files for all packages
1 parent ebbeedc commit 7711405

11 files changed

+37
-111
lines changed
 

‎.github/actions/build-package/action.yaml

+5
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ runs:
1515
with:
1616
perl-version: '5.32'
1717

18+
- name: Install additional packages
19+
if: matrix.cfg.os == 'ubuntu-20.04'
20+
shell: bash
21+
run: sudo apt update && sudo apt install -y g++-9 g++-9-arm-linux-gnueabi g++-9-aarch64-linux-gnu clang++-10
22+
1823
- name: Install Python deps
1924
shell: bash
2025
run: |

‎build.py

-4
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,6 @@ def main():
1111

1212
package_name = sys.argv[1]
1313
builder = getattr(importlib.import_module(f'packages.{package_name}.build'), 'Builder')()
14-
15-
tools.log("Installing build dependencies ...")
16-
builder.install_build_dependencies()
17-
tools.log("Installing build dependencies ... Done")
1814

1915
if hasattr(builder, 'source'):
2016
tools.log("Sourcing build files ...")

‎scripts/tools.py

+3-61
Original file line numberDiff line numberDiff line change
@@ -12,46 +12,7 @@ def log(msg):
1212
class LibraryBuilder:
1313
def __init__(self):
1414
self.triple = os.environ.get('TRIPLE')
15-
16-
# All of this is only valid for ubuntu-20.04 and windows-2022
17-
if self.triple == "linux-x64-gcc9":
18-
self.cc_compiler = "gcc"
19-
self.cxx_compiler = "g++"
20-
self.cc_compiler_package = "gcc"
21-
self.cxx_compiler_package = "g++"
22-
self.toolchain_file = ""
23-
elif self.triple == "linux-x64-clang10":
24-
self.cc_compiler = "clang"
25-
self.cxx_compiler = "clang++"
26-
self.cc_compiler_package = "clang"
27-
self.cxx_compiler_package = "clang++"
28-
self.toolchain_file = ""
29-
elif self.triple == "linux-armv7-gcc9":
30-
self.cc_compiler = ""
31-
self.cxx_compiler = ""
32-
self.cc_compiler_package = "gcc-9-arm-linux-gnueabi"
33-
self.cxx_compiler_package = "g++-9-arm-linux-gnueabi"
34-
self.toolchain_file = "toolchains/gcc-armv7.cmake"
35-
elif self.triple == "linux-aarch64-gcc9":
36-
self.cc_compiler = ""
37-
self.cxx_compiler = ""
38-
self.cc_compiler_package = "gcc-9-aarch64-linux-gnu"
39-
self.cxx_compiler_package = "g++-9-aarch64-linux-gnu"
40-
self.toolchain_file = "toolchains/gcc-aarch64.cmake"
41-
elif self.triple == "windows-x64-mingw64":
42-
self.cc_compiler = "cc"
43-
self.cxx_compiler = "c++"
44-
self.cc_compiler_package = ""
45-
self.cxx_compiler_package = ""
46-
self.toolchain_file = ""
47-
elif self.triple == "windows-x64-msvc":
48-
self.cc_compiler = "msvc"
49-
self.cxx_compiler = "msvc"
50-
self.cc_compiler_package = ""
51-
self.cxx_compiler_package = ""
52-
self.toolchain_file = ""
53-
else:
54-
raise LookupError(f"Triple {self.triple} is not known to the system")
15+
self.toolchain_file = f"toolchains/{self.triple}.cmake"
5516

5617
self.repo_dir = os.getcwd()
5718
self.working_dir = os.path.join(self.repo_dir, 'temp', self.name)
@@ -107,19 +68,6 @@ def source_git_repo(self, git_repository, git_tag):
10768
self.cmd(f'git clone {git_repository} {self.source_dir} --depth=1 --single-branch --branch={git_tag}')
10869
log(f"Sourcing git repository {git_repository}:{git_tag} ... Done")
10970

110-
def install_build_dependencies(self, extra_unix_dependencies = []):
111-
if platform.system() == 'Linux':
112-
if self.cc_compiler_package != "":
113-
extra_unix_dependencies.append(self.cc_compiler_package)
114-
if self.cxx_compiler_package != "":
115-
extra_unix_dependencies.append(self.cxx_compiler_package)
116-
117-
deps = ' '.join(extra_unix_dependencies)
118-
log(f"Installing extra unix dependencies ...")
119-
if os.system(f'apt-get update && apt-get install -y {deps}') != 0:
120-
self.cmd(f'sudo apt-get update && sudo apt-get install -y {deps}')
121-
log(f"Installing extra unix dependencies ... Done")
122-
12371
def pull_of_dependency(self, package, version):
12472
depsdir = self.get_dependency_dir(package)
12573
log(f'Fetching package {package}/{version} ...')
@@ -141,13 +89,7 @@ def build_generic_cmake_project(self,
14189
cmake_args_debug = [],
14290
cmake_args_release = []):
14391

144-
if self.toolchain_file != None and self.toolchain_file != "":
145-
cmake_args.append(f'-DCMAKE_TOOLCHAIN_FILE={os.path.join(self.repo_dir, self.toolchain_file)}')
146-
else:
147-
if self.cc_compiler != 'msvc':
148-
cmake_args.append(f'-DCMAKE_C_COMPILER={self.cc_compiler}')
149-
cmake_args.append(f'-DCMAKE_CXX_COMPILER={self.cxx_compiler}')
150-
92+
cmake_args.append(f'-DCMAKE_TOOLCHAIN_FILE={os.path.join(self.repo_dir, self.toolchain_file)}')
15193
cmake_args.append(f'-DBUILD_SHARED_LIBS=OFF')
15294
cmake_args.append(f'-DPython_ROOT_DIR={os.path.dirname(sys.executable)}')
15395
cmake_args.append(f'-DPython3_ROOT_DIR={os.path.dirname(sys.executable)}')
@@ -172,7 +114,7 @@ def build_generic_cmake_project(self,
172114
args_release.append(' '.join(cmake_args_release))
173115

174116
cmake_build_args = []
175-
if self.cc_compiler != 'msvc':
117+
if self.triple.find('msvc') == -1:
176118
cmake_build_args.append(f'-j{os.cpu_count()}')
177119

178120
log(f'Building Debug configuration ...')
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
set(CMAKE_SYSTEM_NAME Linux)
2-
set(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)
3-
set(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++)
2+
set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc-9)
3+
set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++-9)
44
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
55
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
66
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

‎toolchains/linux-armv7-gcc9.cmake

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
set(CMAKE_SYSTEM_NAME Linux)
2+
set(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc-9)
3+
set(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++-9)
4+
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
5+
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
6+
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
set(CMAKE_SYSTEM_NAME Linux)
2-
set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc)
3-
set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++)
2+
set(CMAKE_C_COMPILER clang-10)
3+
set(CMAKE_CXX_COMPILER clang++-10)
44
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
55
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
66
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

‎toolchains/linux-x64-gcc9.cmake

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
set(CMAKE_SYSTEM_NAME Linux)
2+
set(CMAKE_C_COMPILER gcc-9)
3+
set(CMAKE_CXX_COMPILER g++-9)
4+
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
5+
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
6+
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

‎toolchains/mingw-linux.cmake

-15
This file was deleted.

‎toolchains/mingw-windows.cmake

-27
This file was deleted.

‎toolchains/windows-x64-mingw64.cmake

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
set (CMAKE_SYSTEM_NAME Windows)
2+
set (CMAKE_C_COMPILER cc)
3+
set (CMAKE_CXX_COMPILER c++)
4+
set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
5+
set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
6+
set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
7+
set (CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)

‎toolchains/windows-x64-msvc.cmake

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
set (CMAKE_SYSTEM_NAME Windows)
2+
3+
set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
4+
set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
5+
set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
6+
set (CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)

0 commit comments

Comments
 (0)
Please sign in to comment.