diff options
Diffstat (limited to 'third_party/python/gyp/test/rules-dirname')
11 files changed, 277 insertions, 0 deletions
diff --git a/third_party/python/gyp/test/rules-dirname/gyptest-dirname.py b/third_party/python/gyp/test/rules-dirname/gyptest-dirname.py new file mode 100755 index 0000000000..da5429cbad --- /dev/null +++ b/third_party/python/gyp/test/rules-dirname/gyptest-dirname.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python + +# Copyright (c) 2011 Google Inc. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +""" +Verifies simple rules when using an explicit build target of 'all'. +""" + +from __future__ import print_function + +import TestGyp +import os +import sys + +if sys.platform == 'win32': + print("This test is currently disabled: https://crbug.com/483696.") + sys.exit(0) + + +test = TestGyp.TestGyp(formats=['make', 'ninja', 'xcode', 'msvs']) + +test.run_gyp('actions.gyp', chdir='src') + +test.relocate('src', 'relocate/src') + +test.build('actions.gyp', chdir='relocate/src') + +expect = """\ +no dir here +hi c +hello baz +""" +if test.format == 'xcode': + chdir = 'relocate/src/subdir' +else: + chdir = 'relocate/src' +test.run_built_executable('gencc_int_output', chdir=chdir, stdout=expect) +if test.format == 'msvs': + test.run_built_executable('gencc_int_output_external', chdir=chdir, + stdout=expect) + +test.must_match('relocate/src/subdir/foo/bar/baz.dirname', + os.path.join('foo', 'bar')) +test.must_match('relocate/src/subdir/a/b/c.dirname', + os.path.join('a', 'b')) + +# FIXME the xcode and make generators incorrectly convert RULE_INPUT_PATH +# to an absolute path, making the tests below fail! +if test.format != 'xcode' and test.format != 'make': + test.must_match('relocate/src/subdir/foo/bar/baz.path', + os.path.join('foo', 'bar', 'baz.printvars')) + test.must_match('relocate/src/subdir/a/b/c.path', + os.path.join('a', 'b', 'c.printvars')) + +test.pass_test() diff --git a/third_party/python/gyp/test/rules-dirname/src/actions.gyp b/third_party/python/gyp/test/rules-dirname/src/actions.gyp new file mode 100644 index 0000000000..c5693c6c9e --- /dev/null +++ b/third_party/python/gyp/test/rules-dirname/src/actions.gyp @@ -0,0 +1,15 @@ +# Copyright (c) 2011 Google Inc. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +{ + 'targets': [ + { + 'target_name': 'pull_in_all_actions', + 'type': 'none', + 'dependencies': [ + 'subdir/input-rule-dirname.gyp:*', + ], + }, + ], +} diff --git a/third_party/python/gyp/test/rules-dirname/src/copy-file.py b/third_party/python/gyp/test/rules-dirname/src/copy-file.py new file mode 100755 index 0000000000..271a72b6b1 --- /dev/null +++ b/third_party/python/gyp/test/rules-dirname/src/copy-file.py @@ -0,0 +1,11 @@ +#!/usr/bin/env python + +# Copyright (c) 2011 Google Inc. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. +import sys + +contents = open(sys.argv[1], 'r').read() +open(sys.argv[2], 'w').write(contents) + +sys.exit(0) diff --git a/third_party/python/gyp/test/rules-dirname/src/subdir/a/b/c.gencc b/third_party/python/gyp/test/rules-dirname/src/subdir/a/b/c.gencc new file mode 100644 index 0000000000..29cb5f79ad --- /dev/null +++ b/third_party/python/gyp/test/rules-dirname/src/subdir/a/b/c.gencc @@ -0,0 +1,8 @@ +// -*- mode: c++ -*- +#include <stdio.h> + +namespace gen { + void c() { + printf("hi c\n"); + } +} diff --git a/third_party/python/gyp/test/rules-dirname/src/subdir/a/b/c.printvars b/third_party/python/gyp/test/rules-dirname/src/subdir/a/b/c.printvars new file mode 100644 index 0000000000..cc4561dc41 --- /dev/null +++ b/third_party/python/gyp/test/rules-dirname/src/subdir/a/b/c.printvars @@ -0,0 +1 @@ +# Empty file for testing build rules diff --git a/third_party/python/gyp/test/rules-dirname/src/subdir/foo/bar/baz.gencc b/third_party/python/gyp/test/rules-dirname/src/subdir/foo/bar/baz.gencc new file mode 100644 index 0000000000..90b4ce9243 --- /dev/null +++ b/third_party/python/gyp/test/rules-dirname/src/subdir/foo/bar/baz.gencc @@ -0,0 +1,8 @@ +// -*- mode: c++ -*- +#include <stdio.h> + +namespace gen { + void baz() { + printf("hello baz\n"); + } +} diff --git a/third_party/python/gyp/test/rules-dirname/src/subdir/foo/bar/baz.printvars b/third_party/python/gyp/test/rules-dirname/src/subdir/foo/bar/baz.printvars new file mode 100644 index 0000000000..cc4561dc41 --- /dev/null +++ b/third_party/python/gyp/test/rules-dirname/src/subdir/foo/bar/baz.printvars @@ -0,0 +1 @@ +# Empty file for testing build rules diff --git a/third_party/python/gyp/test/rules-dirname/src/subdir/input-rule-dirname.gyp b/third_party/python/gyp/test/rules-dirname/src/subdir/input-rule-dirname.gyp new file mode 100644 index 0000000000..da749a2231 --- /dev/null +++ b/third_party/python/gyp/test/rules-dirname/src/subdir/input-rule-dirname.gyp @@ -0,0 +1,140 @@ +# Copyright (c) 2011 Google Inc. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +{ + 'targets': [ + { + 'target_name': 'print_rule_input_dirname', + 'type': 'none', + 'msvs_cygwin_shell': 0, + 'sources': [ + 'foo/bar/baz.printvars', + 'a/b/c.printvars', + ], + 'rules': [ + { + 'rule_name': 'printvars', + 'extension': 'printvars', + 'inputs': [ + 'printvars.py', + ], + 'outputs': [ + '<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).dirname', + ], + 'action': [ + 'python', '<@(_inputs)', '<(RULE_INPUT_DIRNAME)', '<@(_outputs)', + ], + }, + ], + }, + { + 'target_name': 'print_rule_input_path', + 'type': 'none', + 'msvs_cygwin_shell': 0, + 'sources': [ + 'foo/bar/baz.printvars', + 'a/b/c.printvars', + ], + 'rules': [ + { + 'rule_name': 'printvars', + 'extension': 'printvars', + 'inputs': [ + 'printvars.py', + ], + 'outputs': [ + '<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).path', + ], + 'action': [ + 'python', '<@(_inputs)', '<(RULE_INPUT_PATH)', '<@(_outputs)', + ], + }, + ], + }, + { + 'target_name': 'gencc_int_output', + 'type': 'executable', + 'msvs_cygwin_shell': 0, + 'sources': [ + 'nodir.gencc', + 'foo/bar/baz.gencc', + 'a/b/c.gencc', + 'main.cc', + ], + 'rules': [ + { + 'rule_name': 'gencc', + 'extension': 'gencc', + 'inputs': [ + '<(DEPTH)/copy-file.py', + ], + 'outputs': [ + '<(INTERMEDIATE_DIR)/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).cc', + ], + 'action': [ + 'python', '<@(_inputs)', '<(RULE_INPUT_PATH)', '<@(_outputs)', + ], + 'process_outputs_as_sources': 1, + }, + ], + }, + ], + 'conditions': [ + ['OS=="win"', { + 'targets': [ + { + 'target_name': 'gencc_int_output_external', + 'type': 'executable', + 'msvs_cygwin_shell': 0, + 'msvs_cygwin_dirs': ['../../../../../../<(DEPTH)/third_party/cygwin'], + 'sources': [ + 'nodir.gencc', + 'foo/bar/baz.gencc', + 'a/b/c.gencc', + 'main.cc', + ], + 'dependencies': [ + 'cygwin', + ], + 'rules': [ + { + 'rule_name': 'gencc', + 'extension': 'gencc', + 'msvs_external_rule': 1, + 'inputs': [ + '<(DEPTH)/copy-file.py', + ], + 'outputs': [ + '<(INTERMEDIATE_DIR)/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).cc', + ], + 'action': [ + 'python', '<@(_inputs)', '<(RULE_INPUT_PATH)', '<@(_outputs)', + ], + 'process_outputs_as_sources': 1, + }, + ], + }, + { + 'target_name': 'cygwin', + 'type': 'none', + 'actions': [ + { + 'action_name': 'setup_mount', + 'msvs_cygwin_shell': 0, + 'inputs': [ + '../../../../../../<(DEPTH)/third_party/cygwin/setup_mount.bat', + ], + # Visual Studio requires an output file, or else the + # custom build step won't run. + 'outputs': [ + '<(INTERMEDIATE_DIR)/_always_run_setup_mount.marker', + ], + 'action': ['<@(_inputs)'], + }, + ], + }, + ], + }], + ], +} diff --git a/third_party/python/gyp/test/rules-dirname/src/subdir/main.cc b/third_party/python/gyp/test/rules-dirname/src/subdir/main.cc new file mode 100644 index 0000000000..3bb8e01395 --- /dev/null +++ b/third_party/python/gyp/test/rules-dirname/src/subdir/main.cc @@ -0,0 +1,14 @@ +// Copyright (c) 2011 Google Inc. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +namespace gen { + extern void nodir(); + extern void c(); + extern void baz(); +} + +int main() { + gen::nodir(); + gen::c(); + gen::baz(); +} diff --git a/third_party/python/gyp/test/rules-dirname/src/subdir/nodir.gencc b/third_party/python/gyp/test/rules-dirname/src/subdir/nodir.gencc new file mode 100644 index 0000000000..720f589bc2 --- /dev/null +++ b/third_party/python/gyp/test/rules-dirname/src/subdir/nodir.gencc @@ -0,0 +1,8 @@ +// -*- mode: c++ -*- +#include <stdio.h> + +namespace gen { + void nodir() { + printf("no dir here\n"); + } +} diff --git a/third_party/python/gyp/test/rules-dirname/src/subdir/printvars.py b/third_party/python/gyp/test/rules-dirname/src/subdir/printvars.py new file mode 100755 index 0000000000..ef3d92e8cf --- /dev/null +++ b/third_party/python/gyp/test/rules-dirname/src/subdir/printvars.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python + +# Copyright (c) 2011 Google Inc. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +""" +Prints interesting vars +""" + +import sys; + +out = open(sys.argv[2], 'w') +out.write(sys.argv[1]); |