mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-04-12 20:46:39 +02:00
814 lines
21 KiB
Diff
814 lines
21 KiB
Diff
diff --git a/doc/aarch32/meson.build b/doc/aarch32/meson.build
|
|
new file mode 100644
|
|
index 00000000..6baf8d57
|
|
--- /dev/null
|
|
+++ b/doc/aarch32/meson.build
|
|
@@ -0,0 +1,13 @@
|
|
+# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
|
|
+#
|
|
+# SPDX-License-Identifier: BSD-3-Clause
|
|
+
|
|
+custom_target(
|
|
+ 'doc_aarch32',
|
|
+ command: [markdown, '@INPUT@'],
|
|
+ input: 'getting-started-aarch32.md',
|
|
+ output: '@BASENAME@.html',
|
|
+ capture: true,
|
|
+ install: true,
|
|
+ install_dir: doc_dir/'aarch32'
|
|
+)
|
|
diff --git a/doc/aarch64/meson.build b/doc/aarch64/meson.build
|
|
new file mode 100644
|
|
index 00000000..d6fe068d
|
|
--- /dev/null
|
|
+++ b/doc/aarch64/meson.build
|
|
@@ -0,0 +1,22 @@
|
|
+# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
|
|
+#
|
|
+# SPDX-License-Identifier: BSD-3-Clause
|
|
+
|
|
+doc_aarch64_files = [
|
|
+ 'getting-started-aarch64',
|
|
+ 'supported-instructions-aarch64'
|
|
+]
|
|
+
|
|
+foreach file : doc_aarch64_files
|
|
+ custom_target(
|
|
+ 'doc_aarch64_' + file,
|
|
+ command: [markdown, '@INPUT@'],
|
|
+ input: file + '.md',
|
|
+ output: file + '.html',
|
|
+ capture: true,
|
|
+ install: true,
|
|
+ install_dir: doc_dir/'aarch64'
|
|
+ )
|
|
+endforeach
|
|
+
|
|
+subdir('topics')
|
|
diff --git a/doc/aarch64/topics/meson.build b/doc/aarch64/topics/meson.build
|
|
new file mode 100644
|
|
index 00000000..40a4f7df
|
|
--- /dev/null
|
|
+++ b/doc/aarch64/topics/meson.build
|
|
@@ -0,0 +1,18 @@
|
|
+doc_aarch64_topics_files = [
|
|
+ 'extending-the-disassembler',
|
|
+ 'index',
|
|
+ 'state-trace',
|
|
+ 'ycm'
|
|
+]
|
|
+
|
|
+foreach file : doc_aarch64_topics_files
|
|
+ custom_target(
|
|
+ 'doc_aarch64_topics_' + file,
|
|
+ command: [markdown, '@INPUT@'],
|
|
+ input: file + '.md',
|
|
+ output: file + '.html',
|
|
+ capture: true,
|
|
+ install: true,
|
|
+ install_dir: doc_dir/'aarch64'/'topics'
|
|
+ )
|
|
+endforeach
|
|
diff --git a/doc/meson.build b/doc/meson.build
|
|
new file mode 100644
|
|
index 00000000..f23f5c94
|
|
--- /dev/null
|
|
+++ b/doc/meson.build
|
|
@@ -0,0 +1,22 @@
|
|
+# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
|
|
+#
|
|
+# SPDX-License-Identifier: BSD-3-Clause
|
|
+
|
|
+doc_dir = get_option('datadir')/'doc'/meson.project_name()
|
|
+
|
|
+custom_target(
|
|
+ 'doc',
|
|
+ command: [markdown, '@INPUT@'],
|
|
+ input: '..'/'README.md',
|
|
+ output: '@BASENAME@.html',
|
|
+ capture: true,
|
|
+ install: true,
|
|
+ install_dir: doc_dir
|
|
+)
|
|
+
|
|
+if build_a32 or build_t32
|
|
+ subdir('aarch32')
|
|
+endif
|
|
+if build_a64
|
|
+ subdir('aarch64')
|
|
+endif
|
|
diff --git a/meson.build b/meson.build
|
|
new file mode 100644
|
|
index 00000000..1f4e5646
|
|
--- /dev/null
|
|
+++ b/meson.build
|
|
@@ -0,0 +1,151 @@
|
|
+# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
|
|
+#
|
|
+# SPDX-License-Identifier: BSD-3-Clause
|
|
+
|
|
+project(
|
|
+ 'vixl',
|
|
+ 'cpp',
|
|
+ default_options: [
|
|
+ 'cpp_std=c++17',
|
|
+ 'buildtype=release',
|
|
+ 'warning_level=3',
|
|
+ 'werror=false',
|
|
+ 'd_ndebug=if-release',
|
|
+ 'b_lto=true'
|
|
+ ],
|
|
+ license: 'BSD-3-Clause',
|
|
+ meson_version: '>=0.49.0',
|
|
+ version: '5.1.0',
|
|
+)
|
|
+
|
|
+extra_args = []
|
|
+
|
|
+if get_option('debug')
|
|
+ extra_args += '-DVIXL_DEBUG'
|
|
+endif
|
|
+
|
|
+hosts_32bit = ['arc', 'arm', 'c2000', 'csky', 'mips', 'ppc', 'riscv32', 'rx', 'sparc', 'wasm32', 'x86']
|
|
+can_target_aarch64 = not (host_machine.cpu_family() in hosts_32bit)
|
|
+
|
|
+build_a32 = false
|
|
+build_t32 = false
|
|
+build_a64 = false
|
|
+
|
|
+targets = get_option('target')
|
|
+if 'auto' in targets or 'all' in targets
|
|
+ if can_target_aarch64 or 'all' in targets
|
|
+ extra_args += [
|
|
+ '-DVIXL_INCLUDE_TARGET_A32',
|
|
+ '-DVIXL_INCLUDE_TARGET_T32',
|
|
+ '-DVIXL_INCLUDE_TARGET_A64'
|
|
+ ]
|
|
+ build_a32 = true
|
|
+ build_t32 = true
|
|
+ build_a64 = true
|
|
+ else
|
|
+ extra_args += [
|
|
+ '-DVIXL_INCLUDE_TARGET_A32',
|
|
+ '-DVIXL_INCLUDE_TARGET_T32'
|
|
+ ]
|
|
+ build_a32 = true
|
|
+ build_t32 = true
|
|
+ endif
|
|
+else
|
|
+ if 'a32' in targets or 'aarch32' in targets
|
|
+ extra_args += [
|
|
+ '-DVIXL_INCLUDE_TARGET_A32'
|
|
+ ]
|
|
+ build_a32 = true
|
|
+ endif
|
|
+ if 't32' in targets or 'aarch32' in targets
|
|
+ extra_args += [
|
|
+ '-DVIXL_INCLUDE_TARGET_T32'
|
|
+ ]
|
|
+ build_t32 = true
|
|
+ endif
|
|
+ if 'a64' in targets or 'aarch64' in targets
|
|
+ extra_args += [
|
|
+ '-DVIXL_INCLUDE_TARGET_A64'
|
|
+ ]
|
|
+ build_a64 = true
|
|
+ endif
|
|
+endif
|
|
+
|
|
+target_sources = []
|
|
+if build_a32 or build_t32
|
|
+ subdir('src'/'aarch32')
|
|
+endif
|
|
+if build_a64
|
|
+ subdir('src'/'aarch64')
|
|
+endif
|
|
+
|
|
+if get_option('simulator') == 'auto'
|
|
+ if not (host_machine.cpu_family() == 'aarch64') and can_target_aarch64
|
|
+ extra_args += '-DVIXL_INCLUDE_SIMULATOR_AARCH64'
|
|
+ endif
|
|
+elif get_option('simulator') == 'aarch64'
|
|
+ if can_target_aarch64 and build_a64
|
|
+ extra_args += '-DVIXL_INCLUDE_SIMULATOR_AARCH64'
|
|
+ else
|
|
+ error('Building an AArch64 simulator implies that VIXL targets AArch64. Set `target` to include `aarch64` or `a64`.')
|
|
+ endif
|
|
+endif
|
|
+
|
|
+allocator = get_option('code_buffer_allocator')
|
|
+if (allocator == 'auto' and host_machine.system() == 'linux') or allocator == 'mmap'
|
|
+ extra_args += '-DVIXL_CODE_BUFFER_MMAP'
|
|
+else
|
|
+ extra_args += '-DVIXL_CODE_BUFFER_MALLOC'
|
|
+endif
|
|
+
|
|
+markdown = find_program('markdown', required: get_option('doc'))
|
|
+if markdown.found()
|
|
+ subdir('doc')
|
|
+endif
|
|
+
|
|
+libvixl = library(
|
|
+ 'vixl',
|
|
+ 'src'/'code-buffer-vixl.cc',
|
|
+ 'src'/'compiler-intrinsics-vixl.cc',
|
|
+ 'src'/'cpu-features.cc',
|
|
+ 'src'/'utils-vixl.cc',
|
|
+ cpp_args: extra_args,
|
|
+ include_directories: 'src',
|
|
+ install: true,
|
|
+ sources: target_sources,
|
|
+ version: meson.project_version()
|
|
+)
|
|
+
|
|
+vixl_dep = declare_dependency(
|
|
+ compile_args: extra_args,
|
|
+ include_directories: 'src',
|
|
+ link_with: libvixl
|
|
+)
|
|
+
|
|
+if meson.version().version_compare('>=0.54.0')
|
|
+ meson.override_dependency('vixl', vixl_dep)
|
|
+endif
|
|
+
|
|
+install_headers(
|
|
+ 'src'/'assembler-base-vixl.h',
|
|
+ 'src'/'code-buffer-vixl.h',
|
|
+ 'src'/'code-generation-scopes-vixl.h',
|
|
+ 'src'/'compiler-intrinsics-vixl.h',
|
|
+ 'src'/'cpu-features.h',
|
|
+ 'src'/'globals-vixl.h',
|
|
+ 'src'/'invalset-vixl.h',
|
|
+ 'src'/'macro-assembler-interface.h',
|
|
+ 'src'/'platform-vixl.h',
|
|
+ 'src'/'pool-manager-impl.h',
|
|
+ 'src'/'pool-manager.h',
|
|
+ 'src'/'utils-vixl.h',
|
|
+ subdir: 'vixl'
|
|
+)
|
|
+
|
|
+import('pkgconfig').generate(
|
|
+ libvixl,
|
|
+ description: 'ARMv8 Runtime Code Generation Library',
|
|
+ extra_cflags: extra_args,
|
|
+ subdirs: 'vixl',
|
|
+ url: 'https://github.com/Linaro/vixl'
|
|
+)
|
|
diff --git a/meson.patch b/meson.patch
|
|
new file mode 100644
|
|
index 00000000..2360398d
|
|
--- /dev/null
|
|
+++ b/meson.patch
|
|
@@ -0,0 +1,421 @@
|
|
+Origin: upstream, https://github.com/Linaro/vixl/pull/7
|
|
+Last-Update: 2021-10-15
|
|
+
|
|
+From 21ac158c034e725442208fef93c7e67fcf92ac36 Mon Sep 17 00:00:00 2001
|
|
+From: Andrea Pappacoda <andrea@pappacoda.it>
|
|
+Date: Wed, 13 Oct 2021 22:06:34 +0200
|
|
+Subject: [PATCH] build: add Meson support
|
|
+
|
|
+I was trying to package Vixl, but the SCons build system does not
|
|
+provide an install target, so I would've had to add it. It seemed too
|
|
+difficult, so I directly created a quite basic Meson build script.
|
|
+
|
|
+It provides most features of the SCons script, except for tests and
|
|
+benchmarks, while adding a rich install target, with library soname
|
|
+versioning and a pkg-config file.
|
|
+
|
|
+Meson is a simple yet powerful build system, and you're interested in
|
|
+using it as your main build system I could add tests and benchmarks :)
|
|
+---
|
|
+ doc/aarch32/meson.build | 13 +++
|
|
+ doc/aarch64/meson.build | 22 +++++
|
|
+ doc/aarch64/topics/meson.build | 18 ++++
|
|
+ doc/meson.build | 22 +++++
|
|
+ meson.build | 151 +++++++++++++++++++++++++++++++++
|
|
+ meson_options.txt | 34 ++++++++
|
|
+ src/aarch32/meson.build | 31 +++++++
|
|
+ src/aarch64/meson.build | 45 ++++++++++
|
|
+ 8 files changed, 337 insertions(+)
|
|
+ create mode 100644 doc/aarch32/meson.build
|
|
+ create mode 100644 doc/aarch64/meson.build
|
|
+ create mode 100644 doc/aarch64/topics/meson.build
|
|
+ create mode 100644 doc/meson.build
|
|
+ create mode 100644 meson.build
|
|
+ create mode 100644 meson_options.txt
|
|
+ create mode 100644 src/aarch32/meson.build
|
|
+ create mode 100644 src/aarch64/meson.build
|
|
+
|
|
+diff --git a/doc/aarch32/meson.build b/doc/aarch32/meson.build
|
|
+new file mode 100644
|
|
+index 00000000..6baf8d57
|
|
+--- /dev/null
|
|
++++ b/doc/aarch32/meson.build
|
|
+@@ -0,0 +1,13 @@
|
|
++# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
|
|
++#
|
|
++# SPDX-License-Identifier: BSD-3-Clause
|
|
++
|
|
++custom_target(
|
|
++ 'doc_aarch32',
|
|
++ command: [markdown, '@INPUT@'],
|
|
++ input: 'getting-started-aarch32.md',
|
|
++ output: '@BASENAME@.html',
|
|
++ capture: true,
|
|
++ install: true,
|
|
++ install_dir: doc_dir/'aarch32'
|
|
++)
|
|
+diff --git a/doc/aarch64/meson.build b/doc/aarch64/meson.build
|
|
+new file mode 100644
|
|
+index 00000000..d6fe068d
|
|
+--- /dev/null
|
|
++++ b/doc/aarch64/meson.build
|
|
+@@ -0,0 +1,22 @@
|
|
++# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
|
|
++#
|
|
++# SPDX-License-Identifier: BSD-3-Clause
|
|
++
|
|
++doc_aarch64_files = [
|
|
++ 'getting-started-aarch64',
|
|
++ 'supported-instructions-aarch64'
|
|
++]
|
|
++
|
|
++foreach file : doc_aarch64_files
|
|
++ custom_target(
|
|
++ 'doc_aarch64_' + file,
|
|
++ command: [markdown, '@INPUT@'],
|
|
++ input: file + '.md',
|
|
++ output: file + '.html',
|
|
++ capture: true,
|
|
++ install: true,
|
|
++ install_dir: doc_dir/'aarch64'
|
|
++ )
|
|
++endforeach
|
|
++
|
|
++subdir('topics')
|
|
+diff --git a/doc/aarch64/topics/meson.build b/doc/aarch64/topics/meson.build
|
|
+new file mode 100644
|
|
+index 00000000..40a4f7df
|
|
+--- /dev/null
|
|
++++ b/doc/aarch64/topics/meson.build
|
|
+@@ -0,0 +1,18 @@
|
|
++doc_aarch64_topics_files = [
|
|
++ 'extending-the-disassembler',
|
|
++ 'index',
|
|
++ 'state-trace',
|
|
++ 'ycm'
|
|
++]
|
|
++
|
|
++foreach file : doc_aarch64_topics_files
|
|
++ custom_target(
|
|
++ 'doc_aarch64_topics_' + file,
|
|
++ command: [markdown, '@INPUT@'],
|
|
++ input: file + '.md',
|
|
++ output: file + '.html',
|
|
++ capture: true,
|
|
++ install: true,
|
|
++ install_dir: doc_dir/'aarch64'/'topics'
|
|
++ )
|
|
++endforeach
|
|
+diff --git a/doc/meson.build b/doc/meson.build
|
|
+new file mode 100644
|
|
+index 00000000..f23f5c94
|
|
+--- /dev/null
|
|
++++ b/doc/meson.build
|
|
+@@ -0,0 +1,22 @@
|
|
++# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
|
|
++#
|
|
++# SPDX-License-Identifier: BSD-3-Clause
|
|
++
|
|
++doc_dir = get_option('datadir')/'doc'/meson.project_name()
|
|
++
|
|
++custom_target(
|
|
++ 'doc',
|
|
++ command: [markdown, '@INPUT@'],
|
|
++ input: '..'/'README.md',
|
|
++ output: '@BASENAME@.html',
|
|
++ capture: true,
|
|
++ install: true,
|
|
++ install_dir: doc_dir
|
|
++)
|
|
++
|
|
++if build_a32 or build_t32
|
|
++ subdir('aarch32')
|
|
++endif
|
|
++if build_a64
|
|
++ subdir('aarch64')
|
|
++endif
|
|
+diff --git a/meson.build b/meson.build
|
|
+new file mode 100644
|
|
+index 00000000..96d8165e
|
|
+--- /dev/null
|
|
++++ b/meson.build
|
|
+@@ -0,0 +1,151 @@
|
|
++# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
|
|
++#
|
|
++# SPDX-License-Identifier: BSD-3-Clause
|
|
++
|
|
++project(
|
|
++ 'vixl',
|
|
++ 'cpp',
|
|
++ default_options: [
|
|
++ 'cpp_std=c++14',
|
|
++ 'buildtype=release',
|
|
++ 'warning_level=3',
|
|
++ 'werror=true',
|
|
++ 'd_ndebug=if-release',
|
|
++ 'b_lto=true'
|
|
++ ],
|
|
++ license: 'BSD-3-Clause',
|
|
++ meson_version: '>=0.49.0',
|
|
++ version: '5.1.0',
|
|
++)
|
|
++
|
|
++extra_args = []
|
|
++
|
|
++if get_option('debug')
|
|
++ extra_args += '-DVIXL_DEBUG'
|
|
++endif
|
|
++
|
|
++hosts_32bit = ['arc', 'arm', 'c2000', 'csky', 'mips', 'ppc', 'riscv32', 'rx', 'sparc', 'wasm32', 'x86']
|
|
++can_target_aarch64 = not (host_machine.cpu_family() in hosts_32bit)
|
|
++
|
|
++build_a32 = false
|
|
++build_t32 = false
|
|
++build_a64 = false
|
|
++
|
|
++targets = get_option('target')
|
|
++if 'auto' in targets or 'all' in targets
|
|
++ if can_target_aarch64 or 'all' in targets
|
|
++ extra_args += [
|
|
++ '-DVIXL_INCLUDE_TARGET_A32',
|
|
++ '-DVIXL_INCLUDE_TARGET_T32',
|
|
++ '-DVIXL_INCLUDE_TARGET_A64'
|
|
++ ]
|
|
++ build_a32 = true
|
|
++ build_t32 = true
|
|
++ build_a64 = true
|
|
++ else
|
|
++ extra_args += [
|
|
++ '-DVIXL_INCLUDE_TARGET_A32',
|
|
++ '-DVIXL_INCLUDE_TARGET_T32'
|
|
++ ]
|
|
++ build_a32 = true
|
|
++ build_t32 = true
|
|
++ endif
|
|
++else
|
|
++ if 'a32' in targets or 'aarch32' in targets
|
|
++ extra_args += [
|
|
++ '-DVIXL_INCLUDE_TARGET_A32'
|
|
++ ]
|
|
++ build_a32 = true
|
|
++ endif
|
|
++ if 't32' in targets or 'aarch32' in targets
|
|
++ extra_args += [
|
|
++ '-DVIXL_INCLUDE_TARGET_T32'
|
|
++ ]
|
|
++ build_t32 = true
|
|
++ endif
|
|
++ if 'a64' in targets or 'aarch64' in targets
|
|
++ extra_args += [
|
|
++ '-DVIXL_INCLUDE_TARGET_A64'
|
|
++ ]
|
|
++ build_a64 = true
|
|
++ endif
|
|
++endif
|
|
++
|
|
++target_sources = []
|
|
++if build_a32 or build_t32
|
|
++ subdir('src'/'aarch32')
|
|
++endif
|
|
++if build_a64
|
|
++ subdir('src'/'aarch64')
|
|
++endif
|
|
++
|
|
++if get_option('simulator') == 'auto'
|
|
++ if not (host_machine.cpu_family() == 'aarch64') and can_target_aarch64
|
|
++ extra_args += '-DVIXL_INCLUDE_SIMULATOR_AARCH64'
|
|
++ endif
|
|
++elif get_option('simulator') == 'aarch64'
|
|
++ if can_target_aarch64 and build_a64
|
|
++ extra_args += '-DVIXL_INCLUDE_SIMULATOR_AARCH64'
|
|
++ else
|
|
++ error('Building an AArch64 simulator implies that VIXL targets AArch64. Set `target` to include `aarch64` or `a64`.')
|
|
++ endif
|
|
++endif
|
|
++
|
|
++allocator = get_option('code_buffer_allocator')
|
|
++if (allocator == 'auto' and host_machine.system() == 'linux') or allocator == 'mmap'
|
|
++ extra_args += '-DVIXL_CODE_BUFFER_MMAP'
|
|
++else
|
|
++ extra_args += '-DVIXL_CODE_BUFFER_MALLOC'
|
|
++endif
|
|
++
|
|
++markdown = find_program('markdown', required: get_option('doc'))
|
|
++if markdown.found()
|
|
++ subdir('doc')
|
|
++endif
|
|
++
|
|
++libvixl = library(
|
|
++ 'vixl',
|
|
++ 'src'/'code-buffer-vixl.cc',
|
|
++ 'src'/'compiler-intrinsics-vixl.cc',
|
|
++ 'src'/'cpu-features.cc',
|
|
++ 'src'/'utils-vixl.cc',
|
|
++ cpp_args: extra_args,
|
|
++ include_directories: 'src',
|
|
++ install: true,
|
|
++ sources: target_sources,
|
|
++ version: meson.project_version()
|
|
++)
|
|
++
|
|
++vixl_dep = declare_dependency(
|
|
++ compile_args: extra_args,
|
|
++ include_directories: 'src',
|
|
++ link_with: libvixl
|
|
++)
|
|
++
|
|
++if meson.version().version_compare('>=0.54.0')
|
|
++ meson.override_dependency('vixl', vixl_dep)
|
|
++endif
|
|
++
|
|
++install_headers(
|
|
++ 'src'/'assembler-base-vixl.h',
|
|
++ 'src'/'code-buffer-vixl.h',
|
|
++ 'src'/'code-generation-scopes-vixl.h',
|
|
++ 'src'/'compiler-intrinsics-vixl.h',
|
|
++ 'src'/'cpu-features.h',
|
|
++ 'src'/'globals-vixl.h',
|
|
++ 'src'/'invalset-vixl.h',
|
|
++ 'src'/'macro-assembler-interface.h',
|
|
++ 'src'/'platform-vixl.h',
|
|
++ 'src'/'pool-manager-impl.h',
|
|
++ 'src'/'pool-manager.h',
|
|
++ 'src'/'utils-vixl.h',
|
|
++ subdir: 'vixl'
|
|
++)
|
|
++
|
|
++import('pkgconfig').generate(
|
|
++ libvixl,
|
|
++ description: 'ARMv8 Runtime Code Generation Library',
|
|
++ extra_cflags: extra_args,
|
|
++ subdirs: 'vixl',
|
|
++ url: 'https://github.com/Linaro/vixl'
|
|
++)
|
|
+diff --git a/meson_options.txt b/meson_options.txt
|
|
+new file mode 100644
|
|
+index 00000000..602d4c82
|
|
+--- /dev/null
|
|
++++ b/meson_options.txt
|
|
+@@ -0,0 +1,34 @@
|
|
++# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
|
|
++#
|
|
++# SPDX-License-Identifier: BSD-3-Clause
|
|
++
|
|
++option(
|
|
++ 'target',
|
|
++ type: 'array',
|
|
++ choices: ['auto', 'all', 'aarch32', 'a32', 't32', 'aarch64', 'a64'],
|
|
++ value: ['auto'],
|
|
++ description: 'Target ISA/Architecture'
|
|
++)
|
|
++
|
|
++option(
|
|
++ 'simulator',
|
|
++ type: 'combo',
|
|
++ choices: ['auto', 'aarch64', 'none'],
|
|
++ value: 'auto',
|
|
++ description: 'Simulators to include'
|
|
++)
|
|
++
|
|
++option(
|
|
++ 'code_buffer_allocator',
|
|
++ type: 'combo',
|
|
++ choices: ['auto', 'malloc', 'mmap'],
|
|
++ value: 'auto',
|
|
++ description: 'Configure the allocation mechanism in the CodeBuffer'
|
|
++)
|
|
++
|
|
++option(
|
|
++ 'doc',
|
|
++ type: 'feature',
|
|
++ value: 'auto',
|
|
++ description: 'Convert documentation to HTML (requires the `markdown` program)'
|
|
++)
|
|
+diff --git a/src/aarch32/meson.build b/src/aarch32/meson.build
|
|
+new file mode 100644
|
|
+index 00000000..f4997860
|
|
+--- /dev/null
|
|
++++ b/src/aarch32/meson.build
|
|
+@@ -0,0 +1,31 @@
|
|
++# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
|
|
++#
|
|
++# SPDX-License-Identifier: BSD-3-Clause
|
|
++
|
|
++# Need to wrap the filenames in files() otherwise this array would be treated
|
|
++# as a simple array of strings, and when used in the master meson.build they
|
|
++# would refer to nonexistent paths. Wrapping in files() ensures that the
|
|
++# filenames will be always relative to this directory, even if referenced in
|
|
++# a different one. As a general rule, when I need to refer to a file from a
|
|
++# different build directory I should wrap it in files().
|
|
++
|
|
++target_sources += files(
|
|
++ 'assembler-aarch32.cc',
|
|
++ 'constants-aarch32.cc',
|
|
++ 'disasm-aarch32.cc',
|
|
++ 'instructions-aarch32.cc',
|
|
++ 'location-aarch32.cc',
|
|
++ 'macro-assembler-aarch32.cc',
|
|
++ 'operands-aarch32.cc'
|
|
++)
|
|
++
|
|
++install_headers(
|
|
++ 'assembler-aarch32.h',
|
|
++ 'constants-aarch32.h',
|
|
++ 'disasm-aarch32.h',
|
|
++ 'instructions-aarch32.h',
|
|
++ 'location-aarch32.h',
|
|
++ 'macro-assembler-aarch32.h',
|
|
++ 'operands-aarch32.h',
|
|
++ subdir: 'vixl'/'aarch32'
|
|
++)
|
|
+diff --git a/src/aarch64/meson.build b/src/aarch64/meson.build
|
|
+new file mode 100644
|
|
+index 00000000..7cd353a3
|
|
+--- /dev/null
|
|
++++ b/src/aarch64/meson.build
|
|
+@@ -0,0 +1,45 @@
|
|
++# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
|
|
++#
|
|
++# SPDX-License-Identifier: BSD-3-Clause
|
|
++
|
|
++# Need to wrap the filenames in files() otherwise this array would be treated
|
|
++# as a simple array of strings, and when used in the master meson.build they
|
|
++# would refer to nonexistent paths. Wrapping in files() ensures that the
|
|
++# filenames will be always relative to this directory, even if referenced in
|
|
++# a different one. As a general rule, when I need to refer to a file from a
|
|
++# different build directory I should wrap it in files().
|
|
++
|
|
++target_sources += files(
|
|
++ 'assembler-aarch64.cc',
|
|
++ 'assembler-sve-aarch64.cc',
|
|
++ 'cpu-aarch64.cc',
|
|
++ 'cpu-features-auditor-aarch64.cc',
|
|
++ 'decoder-aarch64.cc',
|
|
++ 'disasm-aarch64.cc',
|
|
++ 'instructions-aarch64.cc',
|
|
++ 'logic-aarch64.cc',
|
|
++ 'macro-assembler-aarch64.cc',
|
|
++ 'macro-assembler-sve-aarch64.cc',
|
|
++ 'operands-aarch64.cc',
|
|
++ 'pointer-auth-aarch64.cc',
|
|
++ 'registers-aarch64.cc',
|
|
++ 'simulator-aarch64.cc'
|
|
++)
|
|
++
|
|
++install_headers(
|
|
++ 'abi-aarch64.h',
|
|
++ 'assembler-aarch64.h',
|
|
++ 'constants-aarch64.h',
|
|
++ 'cpu-aarch64.h',
|
|
++ 'cpu-features-auditor-aarch64.h',
|
|
++ 'decoder-aarch64.h',
|
|
++ 'decoder-constants-aarch64.h',
|
|
++ 'disasm-aarch64.h',
|
|
++ 'instructions-aarch64.h',
|
|
++ 'macro-assembler-aarch64.h',
|
|
++ 'operands-aarch64.h',
|
|
++ 'registers-aarch64.h',
|
|
++ 'simulator-aarch64.h',
|
|
++ 'simulator-constants-aarch64.h',
|
|
++ subdir: 'vixl'/'aarch64'
|
|
++)
|
|
diff --git a/meson_options.txt b/meson_options.txt
|
|
new file mode 100644
|
|
index 00000000..602d4c82
|
|
--- /dev/null
|
|
+++ b/meson_options.txt
|
|
@@ -0,0 +1,34 @@
|
|
+# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
|
|
+#
|
|
+# SPDX-License-Identifier: BSD-3-Clause
|
|
+
|
|
+option(
|
|
+ 'target',
|
|
+ type: 'array',
|
|
+ choices: ['auto', 'all', 'aarch32', 'a32', 't32', 'aarch64', 'a64'],
|
|
+ value: ['auto'],
|
|
+ description: 'Target ISA/Architecture'
|
|
+)
|
|
+
|
|
+option(
|
|
+ 'simulator',
|
|
+ type: 'combo',
|
|
+ choices: ['auto', 'aarch64', 'none'],
|
|
+ value: 'auto',
|
|
+ description: 'Simulators to include'
|
|
+)
|
|
+
|
|
+option(
|
|
+ 'code_buffer_allocator',
|
|
+ type: 'combo',
|
|
+ choices: ['auto', 'malloc', 'mmap'],
|
|
+ value: 'auto',
|
|
+ description: 'Configure the allocation mechanism in the CodeBuffer'
|
|
+)
|
|
+
|
|
+option(
|
|
+ 'doc',
|
|
+ type: 'feature',
|
|
+ value: 'auto',
|
|
+ description: 'Convert documentation to HTML (requires the `markdown` program)'
|
|
+)
|
|
diff --git a/src/aarch32/meson.build b/src/aarch32/meson.build
|
|
new file mode 100644
|
|
index 00000000..f4997860
|
|
--- /dev/null
|
|
+++ b/src/aarch32/meson.build
|
|
@@ -0,0 +1,31 @@
|
|
+# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
|
|
+#
|
|
+# SPDX-License-Identifier: BSD-3-Clause
|
|
+
|
|
+# Need to wrap the filenames in files() otherwise this array would be treated
|
|
+# as a simple array of strings, and when used in the master meson.build they
|
|
+# would refer to nonexistent paths. Wrapping in files() ensures that the
|
|
+# filenames will be always relative to this directory, even if referenced in
|
|
+# a different one. As a general rule, when I need to refer to a file from a
|
|
+# different build directory I should wrap it in files().
|
|
+
|
|
+target_sources += files(
|
|
+ 'assembler-aarch32.cc',
|
|
+ 'constants-aarch32.cc',
|
|
+ 'disasm-aarch32.cc',
|
|
+ 'instructions-aarch32.cc',
|
|
+ 'location-aarch32.cc',
|
|
+ 'macro-assembler-aarch32.cc',
|
|
+ 'operands-aarch32.cc'
|
|
+)
|
|
+
|
|
+install_headers(
|
|
+ 'assembler-aarch32.h',
|
|
+ 'constants-aarch32.h',
|
|
+ 'disasm-aarch32.h',
|
|
+ 'instructions-aarch32.h',
|
|
+ 'location-aarch32.h',
|
|
+ 'macro-assembler-aarch32.h',
|
|
+ 'operands-aarch32.h',
|
|
+ subdir: 'vixl'/'aarch32'
|
|
+)
|
|
diff --git a/src/aarch64/meson.build b/src/aarch64/meson.build
|
|
new file mode 100644
|
|
index 00000000..9eaf0f9d
|
|
--- /dev/null
|
|
+++ b/src/aarch64/meson.build
|
|
@@ -0,0 +1,47 @@
|
|
+# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
|
|
+#
|
|
+# SPDX-License-Identifier: BSD-3-Clause
|
|
+
|
|
+# Need to wrap the filenames in files() otherwise this array would be treated
|
|
+# as a simple array of strings, and when used in the master meson.build they
|
|
+# would refer to nonexistent paths. Wrapping in files() ensures that the
|
|
+# filenames will be always relative to this directory, even if referenced in
|
|
+# a different one. As a general rule, when I need to refer to a file from a
|
|
+# different build directory I should wrap it in files().
|
|
+
|
|
+target_sources += files(
|
|
+ 'assembler-aarch64.cc',
|
|
+ 'assembler-sve-aarch64.cc',
|
|
+ 'cpu-aarch64.cc',
|
|
+ 'cpu-features-auditor-aarch64.cc',
|
|
+ 'decoder-aarch64.cc',
|
|
+ 'disasm-aarch64.cc',
|
|
+ 'instructions-aarch64.cc',
|
|
+ 'logic-aarch64.cc',
|
|
+ 'macro-assembler-aarch64.cc',
|
|
+ 'macro-assembler-sve-aarch64.cc',
|
|
+ 'operands-aarch64.cc',
|
|
+ 'pointer-auth-aarch64.cc',
|
|
+ 'registers-aarch64.cc',
|
|
+ 'simulator-aarch64.cc'
|
|
+)
|
|
+
|
|
+install_headers(
|
|
+ 'abi-aarch64.h',
|
|
+ 'assembler-aarch64.h',
|
|
+ 'constants-aarch64.h',
|
|
+ 'cpu-aarch64.h',
|
|
+ 'cpu-features-auditor-aarch64.h',
|
|
+ 'debugger-aarch64.h',
|
|
+ 'decoder-aarch64.h',
|
|
+ 'decoder-constants-aarch64.h',
|
|
+ 'decoder-visitor-map-aarch64.h',
|
|
+ 'disasm-aarch64.h',
|
|
+ 'instructions-aarch64.h',
|
|
+ 'macro-assembler-aarch64.h',
|
|
+ 'operands-aarch64.h',
|
|
+ 'registers-aarch64.h',
|
|
+ 'simulator-aarch64.h',
|
|
+ 'simulator-constants-aarch64.h',
|
|
+ subdir: 'vixl'/'aarch64'
|
|
+)
|
|
|