1#!/usr/bin/env python
2
3# Copyright (c) 2009 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"""
8Verifies building a target and a subsidiary dependent target from a
9.gyp file in a subdirectory, without specifying an explicit output build
10directory, and using the generated solution or project file at the top
11of the tree as the entry point.
12
13There is a difference here in the default behavior of the underlying
14build tools.  Specifically, when building the entire "solution", Xcode
15puts the output of each project relative to the .xcodeproj directory,
16while Visual Studio (and our implementation of Make) put it
17in a build directory relative to the "solution"--that is, the entry-point
18from which you built the entire tree.
19"""
20
21import TestGyp
22
23test = TestGyp.TestGyp()
24
25test.run_gyp('prog1.gyp', chdir='src')
26
27test.relocate('src', 'relocate/src')
28
29test.build('prog1.gyp', test.ALL, chdir='relocate/src')
30
31test.run_built_executable('prog1',
32                          stdout="Hello from prog1.c\n",
33                          chdir='relocate/src')
34
35if test.format == 'xcode':
36  chdir = 'relocate/src/subdir'
37else:
38  chdir = 'relocate/src'
39test.run_built_executable('prog2',
40                          chdir=chdir,
41                          stdout="Hello from prog2.c\n")
42
43test.pass_test()
44