Skip to content

Commit 6b45acc

Browse files
committed
Squashed commit of the following:
commit 8bd3f45 Author: João Matos <[email protected]> Date: Tue Feb 6 18:30:12 2024 +0000 Update llvm.yml to install AArch64 cross compilers commit a81abd5 Author: Conrad Kreyling <[email protected]> Date: Tue Feb 6 11:29:07 2024 -0500 LLVM crosscompile x64 for ARM64 (mono#1826) * LLVM crosscompile x64 for ARM64 * Fix MacOS host platform test * Ensure options is persistent in cross compile paths commit 1d1b21f Author: Conrad Kreyling <[email protected]> Date: Fri Feb 2 15:12:42 2024 -0500 Instruct generator to build ARM64 bindings commit 491248b Author: Conrad Kreyling <[email protected]> Date: Fri Feb 2 15:09:44 2024 -0500 Fix missing AArch64 entry in CLI CppAbi commit bbb0693 Author: Conrad Kreyling <[email protected]> Date: Fri Feb 2 13:35:11 2024 -0500 Enable ARM64 support on LLVM builds commit b5ab95e Author: Joao Matos <[email protected]> Date: Thu Feb 1 11:39:24 2024 +0000 Update iOS64 ABI name to the more accurate AppleARM64. commit d1307a5 Author: Joao Matos <[email protected]> Date: Thu Feb 1 11:21:52 2024 +0000 Add support for AArch64 C++ ABI. commit 9071cd2 Author: deadlocklogic <[email protected]> Date: Sun Dec 17 17:03:24 2023 +0200 Implement ClassTemplatePartialSpecialization::Parameters (mono#1809) * Implement ClassTemplatePartialSpecialization::Parameters * Template.cs: Implement ClassTemplatePartialSpecialization.Parameters * GeneratorKind: fix bug introduced while migrating from enum to class * Implement native ClassTemplatePartialSpecialization.Parameters + ASTConverter * regenerated bindings (mono#1813) * regenerated bindings * regenerated bindings after rebase * Directory.Build.props: support C# 10.0 * Implement native ClassTemplatePartialSpecialization.Parameters + ASTConverter * Regenerated bindings * TestAST.cs: add TestASTClassTemplatePartialSpecialization commit 2ecd952 Author: deadlocklogic <[email protected]> Date: Sun Dec 17 13:08:34 2023 +0200 regenerated bindings (mono#1813) * regenerated bindings * regenerated bindings after rebase * Directory.Build.props: support C# 10.0 commit 24d1a84 Author: deadlocklogic <[email protected]> Date: Sun Dec 17 11:44:00 2023 +0200 Stdlib.CSharp.cs: remove buggy typemap (mono#1812) commit 1327971 Author: deadlocklogic <[email protected]> Date: Sat Dec 16 21:36:04 2023 +0200 GeneratorKind: patch bug caused by missing ToString (mono#1811) commit 519e97f Author: Joao Matos <[email protected]> Date: Tue Dec 12 15:30:14 2023 +0000 Remove 32-bit builds and non-debug symbols release builds from LLVM Windows CI. commit 1211272 Author: deadlocklogic <[email protected]> Date: Tue Dec 12 17:25:12 2023 +0200 Build llvm `Debug`/`Release` for `Windows`. (mono#1800) * Update llvm-win.yml * Update llvm-win.yml * Update llvm-win.yml commit 12c267d Author: zylalx1 <[email protected]> Date: Fri Dec 8 03:58:10 2023 +0800 Fixed a bug causing the header file to be included twice when Options.GenerateName is not null (mono#1803) commit e068f2a Author: deadlocklogic <[email protected]> Date: Thu Dec 7 16:35:02 2023 +0200 Typemap cleanup (mono#1802) * TypeMap: prepare refactoring into a modular design * TypeMap: refactor C++ backend into common methods * TypeMap: refactor CLI backend into common methods * CLI.Gen.cs: fix omitted typemap from previous commit * Common.Gen.cs: fixed silly modification while testing * GeneratorKind: add FindGeneratorKindByID method * TypeMapDatabase: heavy refactor: group typemaps by GeneratorKind * TypeMap: refactor CSharp backend into common methods + migration * TypeMap: cleanup patches from previous commits * TypeMapDatabase: fix passing GeneratorKind to FindTypeMap calls * Stdlib.CSharp.cs: move std::map typemap from Stdlib.CLI.cs * TypeMapDatabase: improve parameter name commit 8c2da6d Author: deadlocklogic <[email protected]> Date: Mon Nov 13 22:00:41 2023 +0200 Major refactor: TypePrinter: improve modular design + cleanup (mono#1796) commit 0edd48c Author: deadlocklogic <[email protected]> Date: Mon Nov 13 20:15:24 2023 +0200 Major refactoring: refactor GeneratorKind enum into a class (mono#1794) * Major refactoring: refactor GeneratorKind enum into a class * Minor fix: add readonly * Add Type property for GenerationKind + cleanup * GeneratorKind: add Name property + refactor hardcoded names * GeneratorKind: add CLIOptions property + refactor hardcoded options * CppSharp.CLI: minor fix: use generator.ToLower() * GeneratorKind: fix warning commit 40f3a09 Author: deadlocklogic <[email protected]> Date: Sat Nov 11 16:51:18 2023 +0200 Minor improvements (mono#1793) * CppSharp.Generators.Options: added pre/post TranslationUnitPass callback * CppSharp.Generators.Passes.Pass: added TranslationUnitPassGeneratorDependent commit b14038a Author: Stefan <[email protected]> Date: Mon Oct 23 14:23:51 2023 +0200 Value types may generate `Dispose` (mono#1787) commit 3b2a15d Author: João Matos <[email protected]> Date: Sat Oct 21 19:33:13 2023 +0100 Update README.md commit a5afda8 Author: Stefan <[email protected]> Date: Fri Oct 20 21:00:04 2023 +0200 Fix parameterless constructors not being generated for structs (mono#1783) * Fix parameterless constructors not being generated for structs * Fix implicit non-trivial default ctor * Adjust `Ignore` linked issue commit b16e809 Author: Stefan <[email protected]> Date: Fri Oct 20 18:54:58 2023 +0200 Introduce `GenerateFreeStandingFunctionsClassName` option (mono#1782) * Introduce `GenerateFreeStandingFunctionsClassName` option * Support CLI and fixes commit 03874e7 Author: Stefan <[email protected]> Date: Thu Oct 19 17:24:55 2023 +0200 Fix Value Type String Member Invalid Codegen (mono#1778) * Fix code generation * Generate exception on broken struct set op * Remove redundant usings commit adffc99 Author: Salvage <[email protected]> Date: Thu Oct 19 14:51:06 2023 +0200 Fix erroneous newline commit b4f261e Author: Salvage <[email protected]> Date: Thu Oct 19 14:26:00 2023 +0200 Simplify `IsTemplateParameterType` commit 28000a1 Author: Salvage <[email protected]> Date: Thu Oct 19 01:19:07 2023 +0200 Fix mono#1251 three parameter equality operator - Operators in generic classes do not attempt to generate as extension methods anymore - Empty `...Extensions` classes are no longer generated - `string` as a template argument is correctly cast - `MarshalCharAsManagedChar` option also generates correct casts - Suppress warning regarding returning struct field by ref - Eliminate some tabs that snuck into the test C++ header commit d7faf5f Author: Joao Matos <[email protected]> Date: Wed Oct 18 17:39:49 2023 +0100 Fix SDL_PollEvent generation in the SDL example. Fixes mono#978. Thanks to @Saalvage. commit 7f567b6 Author: Salvage <[email protected]> Date: Wed Oct 18 18:26:03 2023 +0200 Fix non-void returning functions with value-type out parameters Also fixes indentation commit 0c60384 Author: Salvage <[email protected]> Date: Wed Oct 18 16:49:41 2023 +0200 Additional bump commit 0534e33 Author: Salvage <[email protected]> Date: Wed Oct 18 16:35:10 2023 +0200 Bump GH actions versions to solve warnings commit a6ef9d9 Author: Salvage <[email protected]> Date: Wed Oct 18 16:19:42 2023 +0200 Fix source dir commit 7e6c492 Author: Salvage <[email protected]> Date: Wed Oct 18 16:08:51 2023 +0200 Test fix broken packages commit 2a351b7 Author: Joao Matos <[email protected]> Date: Wed Oct 18 16:03:36 2023 +0100 Update our version to 1.1. commit 20950c5 Author: Salvage <[email protected]> Date: Wed Oct 18 04:58:38 2023 +0200 More stringent test; Fix indentation (of the code itself, not in the generator) commit ebe6b8a Author: Salvage <[email protected]> Date: Wed Oct 18 04:47:13 2023 +0200 Fix value type out parameters
1 parent cde5fd8 commit 6b45acc

File tree

3 files changed

+45
-2
lines changed

3 files changed

+45
-2
lines changed

.github/workflows/llvm.yml

+5-1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ jobs:
2727
- uses: actions/checkout@v4
2828
- uses: lukka/get-cmake@latest
2929

30+
- name: Install cross compilers
31+
if: startsWith(matrix.config.os, 'ubuntu') && startsWith(matrix.config.platform, 'arm64')
32+
run: sudo apt install -y g++-aarch64-linux-gnu gcc-aarch64-linux-gnu
33+
3034
- name: Clone LLVM
3135
shell: bash
3236
run: build/build.sh clone_llvm
@@ -43,4 +47,4 @@ jobs:
4347
uses: actions/upload-artifact@v3
4448
with:
4549
name: llvm
46-
path: build/llvm/llvm-*-*.*
50+
path: build/llvm/llvm-*-*.*

build/llvm/LLVM.lua

+34
Original file line numberDiff line numberDiff line change
@@ -438,10 +438,44 @@ function build_llvm(llvm_build)
438438
local options = os.ishost("macosx") and
439439
"-DLLVM_ENABLE_LIBCXX=true" or ""
440440
local is32bits = target_architecture() == "x86"
441+
local targetIsArm64 = target_architecture() == "arm64"
442+
441443
if is32bits then
442444
options = options .. (is32bits and " -DLLVM_BUILD_32_BITS=true" or "")
443445
end
444446

447+
if targetIsArm64 then
448+
if os.host() == "linux" then
449+
local host_arch = unix_host_architecture()
450+
if host_arch ~= "aarch64" then
451+
options = options .. ""
452+
.. ' -DCMAKE_SYSTEM_NAME=Linux'
453+
.. ' -DCMAKE_SYSTEM_PROCESSOR=aarch64'
454+
.. ' -DCMAKE_C_COMPILER=/usr/bin/aarch64-linux-gnu-gcc'
455+
.. ' -DCMAKE_CXX_COMPILER=/usr/bin/aarch64-linux-gnu-g++'
456+
.. ' -DCMAKE_ASM_COMPILER=/usr/bin/aarch64-linux-gnu-as'
457+
.. ' -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER'
458+
.. ' -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY'
459+
.. ' -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY'
460+
.. ' -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY'
461+
.. ' ' .. options
462+
end
463+
end
464+
if os.host() == "macosx" then
465+
local host_arch = unix_host_architecture()
466+
if host_arch ~= "arm64" then
467+
options = options .. ""
468+
.. ' -DCMAKE_SYSTEM_NAME=Darwin'
469+
.. ' -DCMAKE_SYSTEM_PROCESSOR=arm64'
470+
.. ' -DCMAKE_C_COMPILER_TARGET=arm64-apple-darwin21.6.0'
471+
.. ' -DCMAKE_CXX_COMPILER_TARGET=arm64-apple-darwin21.6.0'
472+
.. ' -DCMAKE_ASM_COMPILER_TARGET=arm64-apple-darwin21.6.0'
473+
.. ' ' .. options
474+
end
475+
end
476+
end
477+
478+
445479
cmake("Ninja", conf, llvm_build, options)
446480
ninja('"' .. llvm_build .. '"')
447481
ninja('"' .. llvm_build .. '"', "clang-headers")

build/scripts/Utils.lua

+6-1
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,11 @@ function download(url, file, try)
112112
return res, code
113113
end
114114

115+
function unix_host_architecture()
116+
result, errorCode = os.outputof("uname -m")
117+
return result
118+
end
119+
115120
--
116121
-- Allows copying directories.
117122
-- It uses the premake patterns (**=recursive match, *=file match)
@@ -202,4 +207,4 @@ function os.rmfiles(src_dir, filter)
202207
print( "Error: " .. counter .. "/" .. #matches .. " files removed.")
203208
return nil
204209
end
205-
end
210+
end

0 commit comments

Comments
 (0)