|
|
|
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
|
|
|
|
|
|
|
|
# Custom target dir with a built header
|
|
|
|
subdir('ctsub')
|
|
|
|
# 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 that the order in which internal dependencies are specified is
|
|
|
|
# preserved. This is needed especially when subprojects get involved and
|
|
|
|
# multiple build-root config.h files exist, and we must be sure that the
|
|
|
|
# correct one is found: https://github.com/mesonbuild/meson/issues/1495
|
|
|
|
f = executable('somefxe', 'sub4/main.c',
|
|
|
|
dependencies : [correctinc, dep, wronginc])
|
|
|
|
|
|
|
|
test('eh', e)
|
|
|
|
test('oh', f)
|
|
|
|
|
|
|
|
# Test that the order in include_directories() is maintained
|
|
|
|
incs = include_directories('inc1', 'inc2')
|
|
|
|
executable('ordertest', 'ordertest.c', include_directories: incs)
|