aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2016-11-07 23:19:16 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2016-11-08 15:00:42 -0500
commit841380acfe682023b0df9fa76debbe3030f31daa (patch)
tree9c8d09ea5e1c54fc3a400f2db472282068ac9e8f
parent87f07cdf3db9923b41ac23d27d8e017c8c57ecc3 (diff)
downloadmeson-841380acfe682023b0df9fa76debbe3030f31daa.zip
meson-841380acfe682023b0df9fa76debbe3030f31daa.tar.gz
meson-841380acfe682023b0df9fa76debbe3030f31daa.tar.bz2
Search for headers in build dir before source dir. Closes #984.
-rw-r--r--mesonbuild/backend/ninjabackend.py5
-rw-r--r--test cases/common/16 configure file/config.h1
-rw-r--r--test cases/common/16 configure file/prog.c5
-rw-r--r--test cases/common/16 configure file/prog2.c2
4 files changed, 9 insertions, 4 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index 8329b59..0f8dcae 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -1720,10 +1720,11 @@ rule FORTRAN_DEP_HACK
# Add the root source and build directories as include dirs
curdir = target.get_subdir()
tmppath = os.path.normpath(os.path.join(self.build_to_src, curdir))
- commands += compiler.get_include_args(tmppath, False)
+ src_inc = compiler.get_include_args(tmppath, False)
if curdir == '':
curdir = '.'
- commands += compiler.get_include_args(curdir, False)
+ build_inc = compiler.get_include_args(curdir, False)
+ commands += build_inc + src_inc
# -I args work differently than other ones. In them the first found
# directory is used whereas for other flags (such as -ffoo -fno-foo) the
# latest one is used. Therefore put the internal include directories
diff --git a/test cases/common/16 configure file/config.h b/test cases/common/16 configure file/config.h
new file mode 100644
index 0000000..e85b634
--- /dev/null
+++ b/test cases/common/16 configure file/config.h
@@ -0,0 +1 @@
+#error "This file should not be included. Build dir must become before source dir in search order"
diff --git a/test cases/common/16 configure file/prog.c b/test cases/common/16 configure file/prog.c
index 718a402..89a718e 100644
--- a/test cases/common/16 configure file/prog.c
+++ b/test cases/common/16 configure file/prog.c
@@ -1,5 +1,8 @@
#include <string.h>
-#include "config.h"
+/* config.h must not be in quotes:
+ * https://gcc.gnu.org/onlinedocs/cpp/Search-Path.html
+ */
+#include <config.h>
#ifdef SHOULD_BE_UNDEF
#error "FAIL!"
diff --git a/test cases/common/16 configure file/prog2.c b/test cases/common/16 configure file/prog2.c
index be85033..a88c70f 100644
--- a/test cases/common/16 configure file/prog2.c
+++ b/test cases/common/16 configure file/prog2.c
@@ -1,4 +1,4 @@
-#include"config2.h"
+#include<config2.h>
int main(int argc, char **argv) {
return ZERO_RESULT;