1 #!/usr/bin/env python 2 3 # Copyright (c) 2011 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 Verify that a link time only dependency will get pulled into the set of built 9 targets, even if no executable uses it. 10 """ 11 12 import TestGyp 13 14 import sys 15 16 test = TestGyp.TestGyp() 17 18 test.run_gyp('lib_only.gyp') 19 20 test.build('lib_only.gyp', test.ALL) 21 22 test.built_file_must_exist('a', type=test.STATIC_LIB) 23 24 # TODO(bradnelson/mark): 25 # On linux and windows a library target will at least pull its link dependencies 26 # into the generated project, since not doing so confuses users. 27 # This is not currently implemented on mac, which has the opposite behavior. 28 if sys.platform == 'darwin': 29 if test.format == 'xcode': 30 test.built_file_must_not_exist('b', type=test.STATIC_LIB) 31 else: 32 assert test.format in ('make', 'ninja') 33 test.built_file_must_exist('b', type=test.STATIC_LIB) 34 else: 35 # Make puts the resulting library in a directory matching the input gyp file; 36 # for the 'b' library, that is in the 'b' subdirectory. 37 test.built_file_must_exist('b', type=test.STATIC_LIB, subdir='b') 38 39 test.pass_test() 40