aboutsummaryrefslogtreecommitdiff
path: root/test cases
diff options
context:
space:
mode:
authorarch1t3cht <arch1t3cht@gmail.com>2023-12-05 00:53:59 +0100
committerEli Schwartz <eschwartz93@gmail.com>2023-12-10 22:01:03 -0500
commitaf0464352aa46324a1a59f8a1e82b6cdd46ec891 (patch)
tree949148de1f4125eb4a74a5a4afe7cfcbc052b5ad /test cases
parent17c6d5eb478386ad183fa7e11b688217645d8f4f (diff)
downloadmeson-af0464352aa46324a1a59f8a1e82b6cdd46ec891.zip
meson-af0464352aa46324a1a59f8a1e82b6cdd46ec891.tar.gz
meson-af0464352aa46324a1a59f8a1e82b6cdd46ec891.tar.bz2
vs: Manually link generated .o files
Fixes #12550 . VS automatically links CustomBuild outputs ending in .obj or .res, but others need to be included explicitly.
Diffstat (limited to 'test cases')
-rw-r--r--test cases/common/52 object generator/meson.build10
-rw-r--r--test cases/common/52 object generator/prog.c3
-rw-r--r--test cases/common/52 object generator/source4.c3
3 files changed, 14 insertions, 2 deletions
diff --git a/test cases/common/52 object generator/meson.build b/test cases/common/52 object generator/meson.build
index e20da6f..49590d6 100644
--- a/test cases/common/52 object generator/meson.build
+++ b/test cases/common/52 object generator/meson.build
@@ -29,6 +29,14 @@ gen2 = generator(python,
arguments : [comp, cc, '@INPUT@', '@OUTPUT0@'])
generated2 = gen2.process(['source3.c'])
-e = executable('prog', 'prog.c', generated, generated2)
+# Generate an object file ending with .o even on Windows.
+# The VS backend needs to handle .o objects differently from .obj objects.
+gen3 = generator(python,
+ output : '@BASENAME@.o',
+ arguments : [comp, cc, '@INPUT@', '@OUTPUT@'])
+
+generated3 = gen3.process(['source4.c'])
+
+e = executable('prog', 'prog.c', generated, generated2, generated3)
test('objgen', e) \ No newline at end of file
diff --git a/test cases/common/52 object generator/prog.c b/test cases/common/52 object generator/prog.c
index 9841180..80056dc 100644
--- a/test cases/common/52 object generator/prog.c
+++ b/test cases/common/52 object generator/prog.c
@@ -1,7 +1,8 @@
int func1_in_obj(void);
int func2_in_obj(void);
int func3_in_obj(void);
+int func4_in_obj(void);
int main(void) {
- return func1_in_obj() + func2_in_obj() + func3_in_obj();
+ return func1_in_obj() + func2_in_obj() + func3_in_obj() + func4_in_obj();
}
diff --git a/test cases/common/52 object generator/source4.c b/test cases/common/52 object generator/source4.c
new file mode 100644
index 0000000..83f4fab
--- /dev/null
+++ b/test cases/common/52 object generator/source4.c
@@ -0,0 +1,3 @@
+int func4_in_obj(void) {
+ return 0;
+}