Home | History | Annotate | Download | only in generator-output
      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 target when the --generator-output= option is used to put
      9 the build configuration files in a separate directory tree referenced by a
     10 symlink.
     11 """
     12 
     13 import TestGyp
     14 import os
     15 
     16 # Android doesn't support --generator-output.
     17 test = TestGyp.TestGyp(formats=['!android'])
     18 if not hasattr(os, 'symlink'):
     19   test.skip_test('Missing os.symlink -- skipping test.\n')
     20 
     21 test.writable(test.workpath('src'), False)
     22 
     23 test.writable(test.workpath('src/subdir2/deeper/build'), True)
     24 
     25 test.subdir(test.workpath('build'))
     26 test.subdir(test.workpath('build/deeper'))
     27 test.symlink('build/deeper', test.workpath('symlink'))
     28 
     29 test.writable(test.workpath('build/deeper'), True)
     30 test.run_gyp('deeper.gyp',
     31              '-Dset_symroot=2',
     32              '--generator-output=' + test.workpath('symlink'),
     33              chdir='src/subdir2/deeper')
     34 
     35 chdir = 'symlink'
     36 test.build('deeper.gyp', test.ALL, chdir=chdir)
     37 
     38 if test.format == 'xcode':
     39   chdir = 'src/subdir2/deeper'
     40 test.run_built_executable('deeper',
     41                           chdir=chdir,
     42                           stdout="Hello from deeper.c\n")
     43 test.pass_test()
     44