From 01ddf3ac13930ce077603db9e4823339cc4dc4d3 Mon Sep 17 00:00:00 2001 From: Jesse Natalie Date: Wed, 8 Sep 2021 18:39:59 -0700 Subject: [PATCH] Add test for https://github.com/mesonbuild/meson/issues/9235 --- .../both_lib_source.c | 7 +++++++ .../copyfile.py | 4 ++++ .../generated_source.c | 4 ++++ .../meson.build | 20 +++++++++++++++++++ .../static_lib_source.c | 6 ++++++ .../test.json | 13 ++++++++++++ 6 files changed, 54 insertions(+) create mode 100644 test cases/windows/19 vs install static lib with generated obj deps/both_lib_source.c create mode 100644 test cases/windows/19 vs install static lib with generated obj deps/copyfile.py create mode 100644 test cases/windows/19 vs install static lib with generated obj deps/generated_source.c create mode 100644 test cases/windows/19 vs install static lib with generated obj deps/meson.build create mode 100644 test cases/windows/19 vs install static lib with generated obj deps/static_lib_source.c create mode 100644 test cases/windows/19 vs install static lib with generated obj deps/test.json diff --git a/test cases/windows/19 vs install static lib with generated obj deps/both_lib_source.c b/test cases/windows/19 vs install static lib with generated obj deps/both_lib_source.c new file mode 100644 index 000000000..aa926b1a2 --- /dev/null +++ b/test cases/windows/19 vs install static lib with generated obj deps/both_lib_source.c @@ -0,0 +1,7 @@ +extern int static_lib_function(void); +extern __declspec(dllexport) int both_lib_function(void); + +int both_lib_function(void) +{ + return static_lib_function(); +} diff --git a/test cases/windows/19 vs install static lib with generated obj deps/copyfile.py b/test cases/windows/19 vs install static lib with generated obj deps/copyfile.py new file mode 100644 index 000000000..738e894e6 --- /dev/null +++ b/test cases/windows/19 vs install static lib with generated obj deps/copyfile.py @@ -0,0 +1,4 @@ +from shutil import copyfile +import sys + +copyfile(sys.argv[1], sys.argv[2]) diff --git a/test cases/windows/19 vs install static lib with generated obj deps/generated_source.c b/test cases/windows/19 vs install static lib with generated obj deps/generated_source.c new file mode 100644 index 000000000..8671cbf4f --- /dev/null +++ b/test cases/windows/19 vs install static lib with generated obj deps/generated_source.c @@ -0,0 +1,4 @@ +int generated_function(void) +{ + return 42; +} diff --git a/test cases/windows/19 vs install static lib with generated obj deps/meson.build b/test cases/windows/19 vs install static lib with generated obj deps/meson.build new file mode 100644 index 000000000..bc61772b1 --- /dev/null +++ b/test cases/windows/19 vs install static lib with generated obj deps/meson.build @@ -0,0 +1,20 @@ +project('test', 'c') + +generated_c = custom_target( + 'generated.c', + input : files('generated_source.c', 'copyfile.py'), + output : 'generated.c', + command : ['python', '@INPUT1@', '@INPUT0@', '@OUTPUT@'], +) + +static_lib = static_library( + 'static_lib', + [files('static_lib_source.c'), generated_c], +) + +both_lib = both_libraries( + 'both_lib', + [files('both_lib_source.c')], + link_with : [static_lib], + install : true, +) diff --git a/test cases/windows/19 vs install static lib with generated obj deps/static_lib_source.c b/test cases/windows/19 vs install static lib with generated obj deps/static_lib_source.c new file mode 100644 index 000000000..e86153a03 --- /dev/null +++ b/test cases/windows/19 vs install static lib with generated obj deps/static_lib_source.c @@ -0,0 +1,6 @@ +extern int generated_function(void); + +int static_lib_function(void) +{ + return generated_function(); +} diff --git a/test cases/windows/19 vs install static lib with generated obj deps/test.json b/test cases/windows/19 vs install static lib with generated obj deps/test.json new file mode 100644 index 000000000..451da1e54 --- /dev/null +++ b/test cases/windows/19 vs install static lib with generated obj deps/test.json @@ -0,0 +1,13 @@ +{ + "installed": [ + {"type": "file", "file": "usr/lib/libboth_lib.a"}, + + {"type": "shared_lib", "platform": "msvc", "file": "usr/bin/both_lib"}, + {"type": "implib", "platform": "msvc", "file": "usr/lib/both_lib"}, + {"type": "pdb", "platform": "msvc", "file": "usr/bin/both_lib"}, + + {"type": "expr", "platform": "gcc", "file": "usr/lib/?libboth_lib.dll"}, + {"type": "implib", "platform": "gcc", "file": "usr/lib/libboth_lib"}, + {"type": "pdb", "platform": "gcc", "file": "usr/bin/libboth_lib"} + ] +}