diff --git a/mesonbuild/backend/vs2010backend.py b/mesonbuild/backend/vs2010backend.py index c9fe09f71..a9567f4a5 100644 --- a/mesonbuild/backend/vs2010backend.py +++ b/mesonbuild/backend/vs2010backend.py @@ -217,10 +217,8 @@ class Vs2010Backend(backends.Backend): if target.subdir == '': return '' - directories = os.path.split(target.subdir) - directories = list(filter(bool,directories)) #Filter out empty strings - - return '/'.join(['..']*len(directories)) + directories = target.subdir.split(os.sep) + return os.sep.join(['..']*len(directories)) def special_quote(self, arr): return ['"%s"' % i for i in arr] diff --git a/test cases/common/106 subproject subdir/meson.build b/test cases/common/106 subproject subdir/meson.build new file mode 100644 index 000000000..ec9fad123 --- /dev/null +++ b/test cases/common/106 subproject subdir/meson.build @@ -0,0 +1,6 @@ +project('proj', 'c') +subproject('sub') +libSub = dependency('sub', fallback: ['sub', 'libSub']) + +exe = executable('prog', 'prog.c', dependencies: libSub) +test('subproject subdir', exe) diff --git a/test cases/common/106 subproject subdir/prog.c b/test cases/common/106 subproject subdir/prog.c new file mode 100644 index 000000000..02ae3372d --- /dev/null +++ b/test cases/common/106 subproject subdir/prog.c @@ -0,0 +1,5 @@ +#include + +int main() { + return sub(); +} diff --git a/test cases/common/106 subproject subdir/subprojects/sub/lib/meson.build b/test cases/common/106 subproject subdir/subprojects/sub/lib/meson.build new file mode 100644 index 000000000..731d22bfb --- /dev/null +++ b/test cases/common/106 subproject subdir/subprojects/sub/lib/meson.build @@ -0,0 +1,2 @@ +lib = static_library('sub', 'sub.c') +libSub = declare_dependency(include_directories: include_directories('.'), link_with: lib) diff --git a/test cases/common/106 subproject subdir/subprojects/sub/lib/sub.c b/test cases/common/106 subproject subdir/subprojects/sub/lib/sub.c new file mode 100644 index 000000000..3291e3cb1 --- /dev/null +++ b/test cases/common/106 subproject subdir/subprojects/sub/lib/sub.c @@ -0,0 +1,5 @@ +#include "sub.h" + +int sub() { + return 0; +} diff --git a/test cases/common/106 subproject subdir/subprojects/sub/lib/sub.h b/test cases/common/106 subproject subdir/subprojects/sub/lib/sub.h new file mode 100644 index 000000000..f1ab0e19d --- /dev/null +++ b/test cases/common/106 subproject subdir/subprojects/sub/lib/sub.h @@ -0,0 +1,6 @@ +#ifndef SUB_H +#define SUB_H + +int sub(); + +#endif diff --git a/test cases/common/106 subproject subdir/subprojects/sub/meson.build b/test cases/common/106 subproject subdir/subprojects/sub/meson.build new file mode 100644 index 000000000..bf69c25b7 --- /dev/null +++ b/test cases/common/106 subproject subdir/subprojects/sub/meson.build @@ -0,0 +1,2 @@ +project('sub', 'c') +subdir('lib')