aboutsummaryrefslogtreecommitdiff
path: root/test cases
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2024-04-14 12:57:10 +0300
committerGitHub <noreply@github.com>2024-04-14 12:57:10 +0300
commit1dcffb635f3ba3dae63e6aa1b61d3cf56c9cc49b (patch)
tree3e99f04c2f6bec5d785e512e3e5f524074d06221 /test cases
parent4e6bed6eb0ab1fe7ae93c7f99176be0cd17d8b22 (diff)
parent6c090cab510368e5a678ac3d3b1c59fba1b182f5 (diff)
downloadmeson-1dcffb635f3ba3dae63e6aa1b61d3cf56c9cc49b.zip
meson-1dcffb635f3ba3dae63e6aa1b61d3cf56c9cc49b.tar.gz
meson-1dcffb635f3ba3dae63e6aa1b61d3cf56c9cc49b.tar.bz2
Merge pull request #11737 from amyspark/amyspark/add-nasm-building-rules-to-xcode
backends: Add Nasm build rules to Xcode
Diffstat (limited to 'test cases')
-rw-r--r--test cases/nasm/1 configure file/meson.build18
-rw-r--r--test cases/nasm/2 asm language/meson.build6
-rw-r--r--test cases/nasm/3 nasm only/meson.build4
-rw-r--r--test cases/nasm/4 through configure/dummy.asm.in4
-rw-r--r--test cases/nasm/4 through configure/dummy.def2
-rw-r--r--test cases/nasm/4 through configure/meson.build30
6 files changed, 52 insertions, 12 deletions
diff --git a/test cases/nasm/1 configure file/meson.build b/test cases/nasm/1 configure file/meson.build
index 85ecaf1..fac46a6 100644
--- a/test cases/nasm/1 configure file/meson.build
+++ b/test cases/nasm/1 configure file/meson.build
@@ -1,15 +1,17 @@
project('nasm config file', 'c')
-if host_machine.cpu_family() == 'x86' and host_machine.system() == 'windows'
- asm_format = 'win32'
-elif host_machine.cpu_family() == 'x86_64' and host_machine.system() == 'windows'
- asm_format = 'win64'
-elif host_machine.cpu_family() == 'x86' and host_machine.system() == 'linux'
+if not host_machine.cpu_family().startswith('x86')
+ error('MESON_SKIP_TEST: nasm only supported for x86 and x86_64')
+endif
+
+if host_machine.system() != 'linux'
+ error('MESON_SKIP_TEST: this test asm is made for Linux')
+endif
+
+if host_machine.cpu_family() == 'x86'
asm_format = 'elf32'
-elif host_machine.cpu_family() == 'x86_64' and host_machine.system() == 'linux'
- asm_format = 'elf64'
else
- error('MESON_SKIP_TEST: skipping test on this platform')
+ asm_format = 'elf64'
endif
nasm = find_program('nasm', required: false)
diff --git a/test cases/nasm/2 asm language/meson.build b/test cases/nasm/2 asm language/meson.build
index d025d43..d5a2ba3 100644
--- a/test cases/nasm/2 asm language/meson.build
+++ b/test cases/nasm/2 asm language/meson.build
@@ -5,10 +5,8 @@ if not host_machine.cpu_family().startswith('x86')
error('MESON_SKIP_TEST: nasm only supported for x86 and x86_64')
endif
-if host_machine.system() == 'windows'
- error('MESON_SKIP_TEST: this test asm is not made for Windows')
-elif host_machine.system() == 'sunos'
- error('MESON_SKIP_TEST: this test asm is not made for Solaris or illumos')
+if host_machine.system() != 'linux'
+ error('MESON_SKIP_TEST: this test asm is made for Linux')
endif
if meson.backend().startswith('vs')
diff --git a/test cases/nasm/3 nasm only/meson.build b/test cases/nasm/3 nasm only/meson.build
index 9777291..18b980d 100644
--- a/test cases/nasm/3 nasm only/meson.build
+++ b/test cases/nasm/3 nasm only/meson.build
@@ -4,6 +4,10 @@ if not add_languages('nasm', required: false)
error('MESON_SKIP_TEST: nasm not found')
endif
+if not ['linux', 'windows'].contains(host_machine.system())
+ error('MESON_SKIP_TEST: this test asm is made for Windows and Linux')
+endif
+
if meson.backend().startswith('vs')
error('MESON_SKIP_TEST: VS backend does not recognise NASM yet')
endif
diff --git a/test cases/nasm/4 through configure/dummy.asm.in b/test cases/nasm/4 through configure/dummy.asm.in
new file mode 100644
index 0000000..5be150e
--- /dev/null
+++ b/test cases/nasm/4 through configure/dummy.asm.in
@@ -0,0 +1,4 @@
+global dummy
+section .rodata align=16
+dummy:
+ dd 0x00010203
diff --git a/test cases/nasm/4 through configure/dummy.def b/test cases/nasm/4 through configure/dummy.def
new file mode 100644
index 0000000..8f8eb99
--- /dev/null
+++ b/test cases/nasm/4 through configure/dummy.def
@@ -0,0 +1,2 @@
+EXPORTS
+ dummy
diff --git a/test cases/nasm/4 through configure/meson.build b/test cases/nasm/4 through configure/meson.build
new file mode 100644
index 0000000..373810f
--- /dev/null
+++ b/test cases/nasm/4 through configure/meson.build
@@ -0,0 +1,30 @@
+project('through configure')
+
+if not add_languages('nasm', required: false)
+ error('MESON_SKIP_TEST: nasm not found')
+endif
+
+if not host_machine.cpu_family().startswith('x86')
+ assert(not add_languages('nasm', required: false))
+ error('MESON_SKIP_TEST: nasm only supported for x86 and x86_64')
+endif
+
+if meson.backend().startswith('vs')
+ error('MESON_SKIP_TEST: VS backend does not recognise NASM yet')
+endif
+
+section = host_machine.system() == 'macos' ? '.rodata' : '.rdata'
+
+sources = configure_file(
+ input: 'dummy.asm.in',
+ output: 'dummy.asm',
+ configuration: {
+ 'section': section
+ }
+)
+
+dummy = library(
+ 'dummy',
+ sources,
+ vs_module_defs: 'dummy.def',
+)