Commit 9aec3aec authored by cmasone@chromium.org's avatar cmasone@chromium.org

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
parent 81fb503d
......@@ -51,6 +51,7 @@
'mojo_apps.gypi',
'mojo_examples.gypi',
'mojo_public.gypi',
'mojo_public_tests.gypi',
'mojo_services.gypi',
],
'targets': [
......
# 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': [
{
......@@ -38,206 +42,6 @@
'public/platform/native/system_thunks.h',
],
},
{
'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',
......@@ -307,27 +111,6 @@
'public/js/bindings/constants.h',
],
},
{
'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',
......
# 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',
],
},
],
}
......@@ -142,6 +142,42 @@
'services/public/cpp/surfaces/tests/surface_unittest.cc',
],
},
{
'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',
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment