diff options
author | cmasone@chromium.org <cmasone@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-11 21:11:42 +0000 |
---|---|---|
committer | cmasone@chromium.org <cmasone@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-11 21:11:42 +0000 |
commit | 9aec3aecfcac9ca8220019b077610e482f556707 (patch) | |
tree | bc807abdbed3c925d0cadfde367c90942e3d4da9 | |
parent | 81fb503d886f148f657e9f4fa6e2f982033937e8 (diff) | |
download | chromium_src-9aec3aecfcac9ca8220019b077610e482f556707.zip chromium_src-9aec3aecfcac9ca8220019b077610e482f556707.tar.gz chromium_src-9aec3aecfcac9ca8220019b077610e482f556707.tar.bz2 |
Split targets with external dependencies out of mojo_public.gypi
The non-testing code in src/mojo/public should be buildable without
depending on anything outside of that directory. It's fine for test
code to depend on base/ and gtest/, though. Due to the way GYP works,
having targets for both production and test code in the same .gypi
file winds up trying to resolve the dependencies for both kinds of
targets, breaking the ability to build the public mojo code
hermetically.
Splitting the targets out will enable consumers of the mojo code to
build the public code standalone using GYP.
BUG=chromium:388412
TEST=build and run all mojo unittests
Review URL: https://codereview.chromium.org/385603003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@282699 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | mojo/mojo.gyp | 1 | ||||
-rw-r--r-- | mojo/mojo_public.gypi | 225 | ||||
-rw-r--r-- | mojo/mojo_public_tests.gypi | 193 | ||||
-rw-r--r-- | mojo/mojo_services.gypi | 36 |
4 files changed, 234 insertions, 221 deletions
diff --git a/mojo/mojo.gyp b/mojo/mojo.gyp index 1aa4e8c..8d6ef3fb 100644 --- a/mojo/mojo.gyp +++ b/mojo/mojo.gyp @@ -51,6 +51,7 @@ 'mojo_apps.gypi', 'mojo_examples.gypi', 'mojo_public.gypi', + 'mojo_public_tests.gypi', 'mojo_services.gypi', ], 'targets': [ diff --git a/mojo/mojo_public.gypi b/mojo/mojo_public.gypi index e98fdfb..a50027b 100644 --- a/mojo/mojo_public.gypi +++ b/mojo/mojo_public.gypi @@ -1,3 +1,7 @@ +# Copyright 2014 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + { 'targets': [ { @@ -39,206 +43,6 @@ ], }, { - 'target_name': 'mojo_gles2', - 'type': 'shared_library', - 'defines': [ - 'MOJO_GLES2_IMPLEMENTATION', - 'GLES2_USE_MOJO', - ], - 'include_dirs': [ - '..', - ], - 'dependencies': [ - '../third_party/khronos/khronos.gyp:khronos_headers' - ], - 'direct_dependent_settings': { - 'include_dirs': [ - '..', - ], - 'defines': [ - 'GLES2_USE_MOJO', - ], - }, - 'sources': [ - 'public/c/gles2/gles2.h', - 'public/c/gles2/gles2_export.h', - 'public/gles2/gles2_private.cc', - 'public/gles2/gles2_private.h', - ], - 'conditions': [ - ['OS=="mac"', { - 'xcode_settings': { - # Make it a run-path dependent library. - 'DYLIB_INSTALL_NAME_BASE': '@loader_path', - }, - }], - ], - }, - { - 'target_name': 'mojo_test_support', - 'type': 'shared_library', - 'defines': [ - 'MOJO_TEST_SUPPORT_IMPLEMENTATION', - ], - 'include_dirs': [ - '..', - ], - 'direct_dependent_settings': { - 'include_dirs': [ - '..', - ], - }, - 'sources': [ - 'public/c/test_support/test_support.h', - 'public/c/test_support/test_support_export.h', - 'public/tests/test_support_private.cc', - 'public/tests/test_support_private.h', - ], - 'conditions': [ - ['OS=="mac"', { - 'xcode_settings': { - # Make it a run-path dependent library. - 'DYLIB_INSTALL_NAME_BASE': '@loader_path', - }, - }], - ], - }, - { - 'target_name': 'mojo_public_test_utils', - 'type': 'static_library', - 'dependencies': [ - '../base/base.gyp:base', - '../testing/gtest.gyp:gtest', - 'mojo_test_support', - ], - 'sources': [ - 'public/cpp/test_support/lib/test_support.cc', - 'public/cpp/test_support/lib/test_utils.cc', - 'public/cpp/test_support/test_utils.h', - ], - }, - # TODO(vtl): Reorganize the mojo_public_*_unittests. - { - 'target_name': 'mojo_public_bindings_unittests', - 'type': 'executable', - 'dependencies': [ - '../testing/gtest.gyp:gtest', - 'mojo_cpp_bindings', - 'mojo_environment_standalone', - 'mojo_public_test_utils', - 'mojo_run_all_unittests', - 'mojo_public_test_interfaces', - 'mojo_utility', - ], - 'sources': [ - 'public/cpp/bindings/tests/array_unittest.cc', - 'public/cpp/bindings/tests/bounds_checker_unittest.cc', - 'public/cpp/bindings/tests/buffer_unittest.cc', - 'public/cpp/bindings/tests/connector_unittest.cc', - 'public/cpp/bindings/tests/handle_passing_unittest.cc', - 'public/cpp/bindings/tests/interface_ptr_unittest.cc', - 'public/cpp/bindings/tests/request_response_unittest.cc', - 'public/cpp/bindings/tests/router_unittest.cc', - 'public/cpp/bindings/tests/sample_service_unittest.cc', - 'public/cpp/bindings/tests/string_unittest.cc', - 'public/cpp/bindings/tests/struct_unittest.cc', - 'public/cpp/bindings/tests/type_conversion_unittest.cc', - 'public/cpp/bindings/tests/validation_test_input_parser.cc', - 'public/cpp/bindings/tests/validation_test_input_parser.h', - 'public/cpp/bindings/tests/validation_unittest.cc', - ], - }, - { - 'target_name': 'mojo_public_environment_unittests', - 'type': 'executable', - 'dependencies': [ - '../base/base.gyp:base', - '../testing/gtest.gyp:gtest', - 'mojo_environment_standalone', - 'mojo_public_test_utils', - 'mojo_run_all_unittests', - 'mojo_utility', - ], - 'sources': [ - 'public/cpp/environment/tests/async_waiter_unittest.cc', - 'public/cpp/environment/tests/logger_unittest.cc', - 'public/cpp/environment/tests/logging_unittest.cc', - ], - }, - { - 'target_name': 'mojo_public_application_unittests', - 'type': 'executable', - 'dependencies': [ - '../base/base.gyp:base', - '../testing/gtest.gyp:gtest', - 'mojo_application', - 'mojo_run_all_unittests', - 'mojo_environment_standalone', - 'mojo_utility', - ], - 'sources': [ - 'public/cpp/application/tests/service_registry_unittest.cc', - ], - }, - { - 'target_name': 'mojo_public_system_unittests', - 'type': 'executable', - 'dependencies': [ - '../base/base.gyp:base', - '../testing/gtest.gyp:gtest', - 'mojo_cpp_bindings', - 'mojo_public_test_utils', - 'mojo_run_all_unittests', - ], - 'sources': [ - 'public/c/system/tests/core_unittest.cc', - 'public/c/system/tests/core_unittest_pure_c.c', - 'public/c/system/tests/macros_unittest.cc', - 'public/cpp/system/tests/core_unittest.cc', - 'public/cpp/system/tests/macros_unittest.cc', - ], - }, - { - 'target_name': 'mojo_public_utility_unittests', - 'type': 'executable', - 'dependencies': [ - '../base/base.gyp:base', - '../testing/gtest.gyp:gtest', - 'mojo_cpp_bindings', - 'mojo_public_test_utils', - 'mojo_run_all_unittests', - 'mojo_utility', - ], - 'sources': [ - 'public/cpp/utility/tests/mutex_unittest.cc', - 'public/cpp/utility/tests/run_loop_unittest.cc', - 'public/cpp/utility/tests/thread_unittest.cc', - ], - 'conditions': [ - # See crbug.com/342893: - ['OS=="win"', { - 'sources!': [ - 'public/cpp/utility/tests/mutex_unittest.cc', - 'public/cpp/utility/tests/thread_unittest.cc', - ], - }], - ], - }, - { - 'target_name': 'mojo_public_system_perftests', - 'type': 'executable', - 'dependencies': [ - '../base/base.gyp:base', - '../testing/gtest.gyp:gtest', - 'mojo_public_test_utils', - 'mojo_run_all_perftests', - 'mojo_utility', - ], - 'sources': [ - 'public/c/system/tests/core_perftest.cc', - ], - }, - { # GN version: //mojo/public/cpp/bindings 'target_name': 'mojo_cpp_bindings', 'type': 'static_library', @@ -308,27 +112,6 @@ ], }, { - 'target_name': 'mojo_public_test_interfaces', - 'type': 'static_library', - 'sources': [ - 'public/interfaces/bindings/tests/math_calculator.mojom', - 'public/interfaces/bindings/tests/sample_factory.mojom', - 'public/interfaces/bindings/tests/sample_import.mojom', - 'public/interfaces/bindings/tests/sample_import2.mojom', - 'public/interfaces/bindings/tests/sample_interfaces.mojom', - 'public/interfaces/bindings/tests/sample_service.mojom', - 'public/interfaces/bindings/tests/test_structs.mojom', - 'public/interfaces/bindings/tests/validation_test_interfaces.mojom', - ], - 'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ], - 'export_dependent_settings': [ - 'mojo_cpp_bindings', - ], - 'dependencies': [ - 'mojo_cpp_bindings', - ], - }, - { 'target_name': 'mojo_environment_standalone', 'type': 'static_library', 'sources': [ diff --git a/mojo/mojo_public_tests.gypi b/mojo/mojo_public_tests.gypi new file mode 100644 index 0000000..658d594 --- /dev/null +++ b/mojo/mojo_public_tests.gypi @@ -0,0 +1,193 @@ +# Copyright 2014 The Chromium Authors. 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': 'mojo_test_support', + 'type': 'shared_library', + 'defines': [ + 'MOJO_TEST_SUPPORT_IMPLEMENTATION', + ], + 'include_dirs': [ + '..', + ], + 'direct_dependent_settings': { + 'include_dirs': [ + '..', + ], + }, + 'sources': [ + 'public/c/test_support/test_support.h', + 'public/c/test_support/test_support_export.h', + 'public/tests/test_support_private.cc', + 'public/tests/test_support_private.h', + ], + 'conditions': [ + ['OS=="mac"', { + 'xcode_settings': { + # Make it a run-path dependent library. + 'DYLIB_INSTALL_NAME_BASE': '@loader_path', + }, + }], + ], + }, + { + 'target_name': 'mojo_public_test_utils', + 'type': 'static_library', + 'dependencies': [ + '../base/base.gyp:base', + '../testing/gtest.gyp:gtest', + 'mojo_test_support', + ], + 'sources': [ + 'public/cpp/test_support/lib/test_support.cc', + 'public/cpp/test_support/lib/test_utils.cc', + 'public/cpp/test_support/test_utils.h', + ], + }, + # TODO(vtl): Reorganize the mojo_public_*_unittests. + { + 'target_name': 'mojo_public_bindings_unittests', + 'type': 'executable', + 'dependencies': [ + '../testing/gtest.gyp:gtest', + 'mojo_cpp_bindings', + 'mojo_environment_standalone', + 'mojo_public_test_utils', + 'mojo_run_all_unittests', + 'mojo_public_test_interfaces', + 'mojo_utility', + ], + 'sources': [ + 'public/cpp/bindings/tests/array_unittest.cc', + 'public/cpp/bindings/tests/bounds_checker_unittest.cc', + 'public/cpp/bindings/tests/buffer_unittest.cc', + 'public/cpp/bindings/tests/connector_unittest.cc', + 'public/cpp/bindings/tests/handle_passing_unittest.cc', + 'public/cpp/bindings/tests/interface_ptr_unittest.cc', + 'public/cpp/bindings/tests/request_response_unittest.cc', + 'public/cpp/bindings/tests/router_unittest.cc', + 'public/cpp/bindings/tests/sample_service_unittest.cc', + 'public/cpp/bindings/tests/string_unittest.cc', + 'public/cpp/bindings/tests/struct_unittest.cc', + 'public/cpp/bindings/tests/type_conversion_unittest.cc', + 'public/cpp/bindings/tests/validation_test_input_parser.cc', + 'public/cpp/bindings/tests/validation_test_input_parser.h', + 'public/cpp/bindings/tests/validation_unittest.cc', + ], + }, + { + 'target_name': 'mojo_public_environment_unittests', + 'type': 'executable', + 'dependencies': [ + '../base/base.gyp:base', + '../testing/gtest.gyp:gtest', + 'mojo_environment_standalone', + 'mojo_public_test_utils', + 'mojo_run_all_unittests', + 'mojo_utility', + ], + 'sources': [ + 'public/cpp/environment/tests/async_waiter_unittest.cc', + 'public/cpp/environment/tests/logger_unittest.cc', + 'public/cpp/environment/tests/logging_unittest.cc', + ], + }, + { + 'target_name': 'mojo_public_application_unittests', + 'type': 'executable', + 'dependencies': [ + '../base/base.gyp:base', + '../testing/gtest.gyp:gtest', + 'mojo_application', + 'mojo_run_all_unittests', + 'mojo_environment_standalone', + 'mojo_utility', + ], + 'sources': [ + 'public/cpp/application/tests/service_registry_unittest.cc', + ], + }, + { + 'target_name': 'mojo_public_system_unittests', + 'type': 'executable', + 'dependencies': [ + '../base/base.gyp:base', + '../testing/gtest.gyp:gtest', + 'mojo_cpp_bindings', + 'mojo_public_test_utils', + 'mojo_run_all_unittests', + ], + 'sources': [ + 'public/c/system/tests/core_unittest.cc', + 'public/c/system/tests/core_unittest_pure_c.c', + 'public/c/system/tests/macros_unittest.cc', + 'public/cpp/system/tests/core_unittest.cc', + 'public/cpp/system/tests/macros_unittest.cc', + ], + }, + { + 'target_name': 'mojo_public_utility_unittests', + 'type': 'executable', + 'dependencies': [ + '../base/base.gyp:base', + '../testing/gtest.gyp:gtest', + 'mojo_cpp_bindings', + 'mojo_public_test_utils', + 'mojo_run_all_unittests', + 'mojo_utility', + ], + 'sources': [ + 'public/cpp/utility/tests/mutex_unittest.cc', + 'public/cpp/utility/tests/run_loop_unittest.cc', + 'public/cpp/utility/tests/thread_unittest.cc', + ], + 'conditions': [ + # See crbug.com/342893: + ['OS=="win"', { + 'sources!': [ + 'public/cpp/utility/tests/mutex_unittest.cc', + 'public/cpp/utility/tests/thread_unittest.cc', + ], + }], + ], + }, + { + 'target_name': 'mojo_public_system_perftests', + 'type': 'executable', + 'dependencies': [ + '../base/base.gyp:base', + '../testing/gtest.gyp:gtest', + 'mojo_public_test_utils', + 'mojo_run_all_perftests', + 'mojo_utility', + ], + 'sources': [ + 'public/c/system/tests/core_perftest.cc', + ], + }, + { + 'target_name': 'mojo_public_test_interfaces', + 'type': 'static_library', + 'sources': [ + 'public/interfaces/bindings/tests/math_calculator.mojom', + 'public/interfaces/bindings/tests/sample_factory.mojom', + 'public/interfaces/bindings/tests/sample_import.mojom', + 'public/interfaces/bindings/tests/sample_import2.mojom', + 'public/interfaces/bindings/tests/sample_interfaces.mojom', + 'public/interfaces/bindings/tests/sample_service.mojom', + 'public/interfaces/bindings/tests/test_structs.mojom', + 'public/interfaces/bindings/tests/validation_test_interfaces.mojom', + ], + 'includes': [ 'public/tools/bindings/mojom_bindings_generator.gypi' ], + 'export_dependent_settings': [ + 'mojo_cpp_bindings', + ], + 'dependencies': [ + 'mojo_cpp_bindings', + ], + }, + ], +} diff --git a/mojo/mojo_services.gypi b/mojo/mojo_services.gypi index 43d2718..c11a4bf 100644 --- a/mojo/mojo_services.gypi +++ b/mojo/mojo_services.gypi @@ -143,6 +143,42 @@ ], }, { + 'target_name': 'mojo_gles2', + 'type': 'shared_library', + 'defines': [ + 'MOJO_GLES2_IMPLEMENTATION', + 'GLES2_USE_MOJO', + ], + 'include_dirs': [ + '..', + ], + 'dependencies': [ + '../third_party/khronos/khronos.gyp:khronos_headers' + ], + 'direct_dependent_settings': { + 'include_dirs': [ + '..', + ], + 'defines': [ + 'GLES2_USE_MOJO', + ], + }, + 'sources': [ + 'public/c/gles2/gles2.h', + 'public/c/gles2/gles2_export.h', + 'public/gles2/gles2_private.cc', + 'public/gles2/gles2_private.h', + ], + 'conditions': [ + ['OS=="mac"', { + 'xcode_settings': { + # Make it a run-path dependent library. + 'DYLIB_INSTALL_NAME_BASE': '@loader_path', + }, + }], + ], + }, + { 'target_name': 'mojo_gles2_bindings', 'type': 'static_library', 'sources': [ |