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