diff options
Diffstat (limited to 'test cases/common')
12 files changed, 62 insertions, 0 deletions
diff --git a/test cases/common/138 include order/meson.build b/test cases/common/138 include order/meson.build new file mode 100644 index 0000000..f744ae7 --- /dev/null +++ b/test cases/common/138 include order/meson.build @@ -0,0 +1,22 @@ +project('include order', 'c') + +# Test that the order of priority of include paths (from first to last) is: +# +# 1. Target's current build directory +# 2. Target's current source directory +# 3. Include paths added with the `c_args:` kwarg +# 4. Include paths added with the `include_directories`: kwarg +# Within this, the build dir takes precedence over the source dir +# 5. Include paths added via `include_directories:` of internal deps +# Within this, the build dir takes precedence over the source dir + +# Defines an internal dep +subdir('sub1') +# Defines a per-target include path +subdir('sub2') +# Directory for `c_args:` include path +subdir('sub3') +# The directory where the target resides +subdir('sub4') + +test('eh', e) diff --git a/test cases/common/138 include order/sub1/main.h b/test cases/common/138 include order/sub1/main.h new file mode 100644 index 0000000..acf4a35 --- /dev/null +++ b/test cases/common/138 include order/sub1/main.h @@ -0,0 +1 @@ +#error "sub1/main.h included" diff --git a/test cases/common/138 include order/sub1/meson.build b/test cases/common/138 include order/sub1/meson.build new file mode 100644 index 0000000..9672945 --- /dev/null +++ b/test cases/common/138 include order/sub1/meson.build @@ -0,0 +1,4 @@ +i = include_directories('.') +l = shared_library('somelib', 'some.c') +dep = declare_dependency(link_with : l, + include_directories : i) diff --git a/test cases/common/138 include order/sub1/some.c b/test cases/common/138 include order/sub1/some.c new file mode 100644 index 0000000..1ab0db4 --- /dev/null +++ b/test cases/common/138 include order/sub1/some.c @@ -0,0 +1,6 @@ +#if defined _WIN32 || defined __CYGWIN__ + __declspec(dllexport) +#endif +int somefunc(void) { + return 1984; +} diff --git a/test cases/common/138 include order/sub1/some.h b/test cases/common/138 include order/sub1/some.h new file mode 100644 index 0000000..6479492 --- /dev/null +++ b/test cases/common/138 include order/sub1/some.h @@ -0,0 +1,10 @@ +#pragma once + +#if defined _WIN32 || defined __CYGWIN__ + #define DLL_PUBLIC __declspec(dllimport) +#else + #define DLL_PUBLIC +#endif + +DLL_PUBLIC +int somefunc(void); diff --git a/test cases/common/138 include order/sub2/main.h b/test cases/common/138 include order/sub2/main.h new file mode 100644 index 0000000..b9c0da9 --- /dev/null +++ b/test cases/common/138 include order/sub2/main.h @@ -0,0 +1 @@ +#error "sub2/main.h included" diff --git a/test cases/common/138 include order/sub2/meson.build b/test cases/common/138 include order/sub2/meson.build new file mode 100644 index 0000000..7b49d6a --- /dev/null +++ b/test cases/common/138 include order/sub2/meson.build @@ -0,0 +1 @@ +j = include_directories('.') diff --git a/test cases/common/138 include order/sub3/main.h b/test cases/common/138 include order/sub3/main.h new file mode 100644 index 0000000..1ab7231 --- /dev/null +++ b/test cases/common/138 include order/sub3/main.h @@ -0,0 +1 @@ +#error "sub3/main.h included" diff --git a/test cases/common/138 include order/sub3/meson.build b/test cases/common/138 include order/sub3/meson.build new file mode 100644 index 0000000..0bd3906 --- /dev/null +++ b/test cases/common/138 include order/sub3/meson.build @@ -0,0 +1 @@ +sub3 = meson.current_source_dir() diff --git a/test cases/common/138 include order/sub4/main.c b/test cases/common/138 include order/sub4/main.c new file mode 100644 index 0000000..0b25eed --- /dev/null +++ b/test cases/common/138 include order/sub4/main.c @@ -0,0 +1,8 @@ +/* Use the <> include notation to force searching in include directories */ +#include <main.h> + +int main(int argc, char *argv[]) { + if (somefunc() == 1984) + return 0; + return 1; +} diff --git a/test cases/common/138 include order/sub4/main.h b/test cases/common/138 include order/sub4/main.h new file mode 100644 index 0000000..194d7fe --- /dev/null +++ b/test cases/common/138 include order/sub4/main.h @@ -0,0 +1,3 @@ +#pragma once + +#include "some.h" diff --git a/test cases/common/138 include order/sub4/meson.build b/test cases/common/138 include order/sub4/meson.build new file mode 100644 index 0000000..538899a --- /dev/null +++ b/test cases/common/138 include order/sub4/meson.build @@ -0,0 +1,4 @@ +e = executable('someexe', 'main.c', + c_args : ['-I' + sub3], + include_directories : j, + dependencies : dep) |