|
1 #!/usr/bin/env python |
|
2 |
|
3 # Copyright (c) 2012 Google Inc. All rights reserved. |
|
4 # Use of this source code is governed by a BSD-style license that can be |
|
5 # found in the LICENSE file. |
|
6 |
|
7 """ |
|
8 Verifies building a project hierarchy created when the --generator-output= |
|
9 option is used to put the build configuration files in a separate |
|
10 directory tree. |
|
11 """ |
|
12 |
|
13 import TestGyp |
|
14 |
|
15 # Ninja and Android don't support --generator-output. |
|
16 test = TestGyp.TestGyp(formats=['!ninja', '!android']) |
|
17 |
|
18 test.writable(test.workpath('src'), False) |
|
19 |
|
20 test.run_gyp('prog1.gyp', |
|
21 '-Dset_symroot=1', |
|
22 '--generator-output=' + test.workpath('gypfiles'), |
|
23 chdir='src') |
|
24 |
|
25 test.writable(test.workpath('src/build'), True) |
|
26 test.writable(test.workpath('src/subdir2/build'), True) |
|
27 test.writable(test.workpath('src/subdir3/build'), True) |
|
28 |
|
29 test.build('prog1.gyp', test.ALL, chdir='gypfiles') |
|
30 |
|
31 chdir = 'gypfiles' |
|
32 |
|
33 expect = """\ |
|
34 Hello from %s |
|
35 Hello from inc.h |
|
36 Hello from inc1/include1.h |
|
37 Hello from inc2/include2.h |
|
38 Hello from inc3/include3.h |
|
39 Hello from subdir2/deeper/deeper.h |
|
40 """ |
|
41 |
|
42 if test.format == 'xcode': |
|
43 chdir = 'src' |
|
44 test.run_built_executable('prog1', chdir=chdir, stdout=expect % 'prog1.c') |
|
45 |
|
46 if test.format == 'xcode': |
|
47 chdir = 'src/subdir2' |
|
48 test.run_built_executable('prog2', chdir=chdir, stdout=expect % 'prog2.c') |
|
49 |
|
50 if test.format == 'xcode': |
|
51 chdir = 'src/subdir3' |
|
52 test.run_built_executable('prog3', chdir=chdir, stdout=expect % 'prog3.c') |
|
53 |
|
54 test.pass_test() |