From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 02:47:55 +0200 Subject: Adding upstream version 124.0.1. Signed-off-by: Daniel Baumann --- .../gyptest-exported-hard-dependency.py | 37 ++++++++++ .../gyptest-no-exported-hard-dependency.py | 36 ++++++++++ .../python/gyp/test/hard_dependency/src/a.c | 9 +++ .../python/gyp/test/hard_dependency/src/a.h | 12 ++++ .../python/gyp/test/hard_dependency/src/b.c | 9 +++ .../python/gyp/test/hard_dependency/src/b.h | 12 ++++ .../python/gyp/test/hard_dependency/src/c.c | 10 +++ .../python/gyp/test/hard_dependency/src/c.h | 10 +++ .../python/gyp/test/hard_dependency/src/d.c | 9 +++ .../python/gyp/test/hard_dependency/src/emit.py | 11 +++ .../test/hard_dependency/src/hard_dependency.gyp | 78 ++++++++++++++++++++++ 11 files changed, 233 insertions(+) create mode 100755 third_party/python/gyp/test/hard_dependency/gyptest-exported-hard-dependency.py create mode 100755 third_party/python/gyp/test/hard_dependency/gyptest-no-exported-hard-dependency.py create mode 100644 third_party/python/gyp/test/hard_dependency/src/a.c create mode 100644 third_party/python/gyp/test/hard_dependency/src/a.h create mode 100644 third_party/python/gyp/test/hard_dependency/src/b.c create mode 100644 third_party/python/gyp/test/hard_dependency/src/b.h create mode 100644 third_party/python/gyp/test/hard_dependency/src/c.c create mode 100644 third_party/python/gyp/test/hard_dependency/src/c.h create mode 100644 third_party/python/gyp/test/hard_dependency/src/d.c create mode 100755 third_party/python/gyp/test/hard_dependency/src/emit.py create mode 100644 third_party/python/gyp/test/hard_dependency/src/hard_dependency.gyp (limited to 'third_party/python/gyp/test/hard_dependency') diff --git a/third_party/python/gyp/test/hard_dependency/gyptest-exported-hard-dependency.py b/third_party/python/gyp/test/hard_dependency/gyptest-exported-hard-dependency.py new file mode 100755 index 0000000000..ba51528800 --- /dev/null +++ b/third_party/python/gyp/test/hard_dependency/gyptest-exported-hard-dependency.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python + +# Copyright (c) 2009 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. + +""" +Verify that a hard_dependency that is exported is pulled in as a dependency +for a target if the target is a static library and if the generator will +remove dependencies between static libraries. +""" + +import TestGyp + +test = TestGyp.TestGyp() + +if test.format == 'dump_dependency_json': + test.skip_test('Skipping test; dependency JSON does not adjust ' \ + 'static libraries.\n') + +test.run_gyp('hard_dependency.gyp', chdir='src') + +chdir = 'relocate/src' +test.relocate('src', chdir) + +test.build('hard_dependency.gyp', 'c', chdir=chdir) + +# The 'a' static library should be built, as it has actions with side-effects +# that are necessary to compile 'c'. Even though 'c' does not directly depend +# on 'a', because 'a' is a hard_dependency that 'b' exports, 'c' should import +# it as a hard_dependency and ensure it is built before building 'c'. +test.built_file_must_exist('a', type=test.STATIC_LIB, chdir=chdir) +test.built_file_must_not_exist('b', type=test.STATIC_LIB, chdir=chdir) +test.built_file_must_exist('c', type=test.STATIC_LIB, chdir=chdir) +test.built_file_must_not_exist('d', type=test.STATIC_LIB, chdir=chdir) + +test.pass_test() diff --git a/third_party/python/gyp/test/hard_dependency/gyptest-no-exported-hard-dependency.py b/third_party/python/gyp/test/hard_dependency/gyptest-no-exported-hard-dependency.py new file mode 100755 index 0000000000..10774ca2a0 --- /dev/null +++ b/third_party/python/gyp/test/hard_dependency/gyptest-no-exported-hard-dependency.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python + +# Copyright (c) 2009 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. + +""" +Verify that a hard_dependency that is not exported is not pulled in as a +dependency for a target if the target does not explicitly specify a dependency +and none of its dependencies export the hard_dependency. +""" + +import TestGyp + +test = TestGyp.TestGyp() + +if test.format == 'dump_dependency_json': + test.skip_test('Skipping test; dependency JSON does not adjust ' \ + 'static libaries.\n') + +test.run_gyp('hard_dependency.gyp', chdir='src') + +chdir = 'relocate/src' +test.relocate('src', chdir) + +test.build('hard_dependency.gyp', 'd', chdir=chdir) + +# Because 'c' does not export a hard_dependency, only the target 'd' should +# be built. This is because the 'd' target does not need the generated headers +# in order to be compiled. +test.built_file_must_not_exist('a', type=test.STATIC_LIB, chdir=chdir) +test.built_file_must_not_exist('b', type=test.STATIC_LIB, chdir=chdir) +test.built_file_must_not_exist('c', type=test.STATIC_LIB, chdir=chdir) +test.built_file_must_exist('d', type=test.STATIC_LIB, chdir=chdir) + +test.pass_test() diff --git a/third_party/python/gyp/test/hard_dependency/src/a.c b/third_party/python/gyp/test/hard_dependency/src/a.c new file mode 100644 index 0000000000..0fa0223c97 --- /dev/null +++ b/third_party/python/gyp/test/hard_dependency/src/a.c @@ -0,0 +1,9 @@ +/* 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. */ + +#include "a.h" + +int funcA() { + return 42; +} diff --git a/third_party/python/gyp/test/hard_dependency/src/a.h b/third_party/python/gyp/test/hard_dependency/src/a.h new file mode 100644 index 0000000000..854a06504a --- /dev/null +++ b/third_party/python/gyp/test/hard_dependency/src/a.h @@ -0,0 +1,12 @@ +/* Copyright (c) 2009 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. */ + +#ifndef A_H_ +#define A_H_ + +#include "generated.h" + +int funcA(); + +#endif // A_H_ diff --git a/third_party/python/gyp/test/hard_dependency/src/b.c b/third_party/python/gyp/test/hard_dependency/src/b.c new file mode 100644 index 0000000000..0baace929e --- /dev/null +++ b/third_party/python/gyp/test/hard_dependency/src/b.c @@ -0,0 +1,9 @@ +/* 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. */ + +#include "a.h" + +int funcB() { + return funcA(); +} diff --git a/third_party/python/gyp/test/hard_dependency/src/b.h b/third_party/python/gyp/test/hard_dependency/src/b.h new file mode 100644 index 0000000000..22b48cefe2 --- /dev/null +++ b/third_party/python/gyp/test/hard_dependency/src/b.h @@ -0,0 +1,12 @@ +/* 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. */ + +#ifndef B_H_ +#define B_H_ + +#include "a.h" + +int funcB(); + +#endif // B_H_ diff --git a/third_party/python/gyp/test/hard_dependency/src/c.c b/third_party/python/gyp/test/hard_dependency/src/c.c new file mode 100644 index 0000000000..7d0068208e --- /dev/null +++ b/third_party/python/gyp/test/hard_dependency/src/c.c @@ -0,0 +1,10 @@ +/* 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. */ + +#include "b.h" +#include "c.h" + +int funcC() { + return funcB(); +} diff --git a/third_party/python/gyp/test/hard_dependency/src/c.h b/third_party/python/gyp/test/hard_dependency/src/c.h new file mode 100644 index 0000000000..f4ea7fefa2 --- /dev/null +++ b/third_party/python/gyp/test/hard_dependency/src/c.h @@ -0,0 +1,10 @@ +/* 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. */ + +#ifndef C_H_ +#define C_H_ + +int funcC(); + +#endif // C_H_ diff --git a/third_party/python/gyp/test/hard_dependency/src/d.c b/third_party/python/gyp/test/hard_dependency/src/d.c new file mode 100644 index 0000000000..d016c3ce71 --- /dev/null +++ b/third_party/python/gyp/test/hard_dependency/src/d.c @@ -0,0 +1,9 @@ +/* Copyright (c) 2009 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. */ + +#include "c.h" + +int funcD() { + return funcC(); +} diff --git a/third_party/python/gyp/test/hard_dependency/src/emit.py b/third_party/python/gyp/test/hard_dependency/src/emit.py new file mode 100755 index 0000000000..8ed12f7393 --- /dev/null +++ b/third_party/python/gyp/test/hard_dependency/src/emit.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 + +f = open(sys.argv[1], 'w') +f.write('/* Hello World */\n') +f.close() diff --git a/third_party/python/gyp/test/hard_dependency/src/hard_dependency.gyp b/third_party/python/gyp/test/hard_dependency/src/hard_dependency.gyp new file mode 100644 index 0000000000..4479c5f045 --- /dev/null +++ b/third_party/python/gyp/test/hard_dependency/src/hard_dependency.gyp @@ -0,0 +1,78 @@ +# 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': 'a', + 'type': 'static_library', + 'sources': [ + 'a.c', + 'a.h', + ], + 'hard_dependency': 1, + 'actions': [ + { + 'action_name': 'generate_headers', + 'inputs': [ + 'emit.py' + ], + 'outputs': [ + '<(SHARED_INTERMEDIATE_DIR)/generated.h' + ], + 'action': [ + 'python', + 'emit.py', + '<(SHARED_INTERMEDIATE_DIR)/generated.h', + ], + # Allows the test to run without hermetic cygwin on windows. + 'msvs_cygwin_shell': 0, + }, + ], + 'include_dirs': [ + '<(SHARED_INTERMEDIATE_DIR)', + ], + 'direct_dependent_settings': { + 'include_dirs': [ + '<(SHARED_INTERMEDIATE_DIR)', + ], + }, + }, + { + 'target_name': 'b', + 'type': 'static_library', + 'sources': [ + 'b.c', + 'b.h', + ], + 'dependencies': [ + 'a', + ], + 'export_dependent_settings': [ + 'a', + ], + }, + { + 'target_name': 'c', + 'type': 'static_library', + 'sources': [ + 'c.c', + 'c.h', + ], + 'dependencies': [ + 'b', + ], + }, + { + 'target_name': 'd', + 'type': 'static_library', + 'sources': [ + 'd.c', + ], + 'dependencies': [ + 'c', + ], + } + ], +} -- cgit v1.2.3