Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(766)

Unified Diff: mojo/mojo.gyp

Issue 370983002: Mojo: Enable apps built against the chromium env to be built as shared libraries (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: improvements Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/environment/BUILD.gn ('k') | mojo/mojo_apps.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/mojo.gyp
diff --git a/mojo/mojo.gyp b/mojo/mojo.gyp
index 9f51b95969733e4347162409c20ce62f6a8d6ade..e7cd57a2d7c0f33782b2028e403865a34f32a06d 100644
--- a/mojo/mojo.gyp
+++ b/mojo/mojo.gyp
@@ -16,6 +16,30 @@
'variables': {
'chromium_code': 1,
'mojo_shell_debug_url%': "",
+ 'conditions': [
+ #
+ # The following mojo_system-prefixed variables are used to express a
+ # dependency on the mojo system APIs.
+ #
+ # In a component build, everything can link against mojo_system_impl
+ # because it is built as a shared library. However, in a non-component
+ # build, mojo_system_impl is linked into an executable (e.g.,
+ # mojo_shell), and must be injected into other shared libraries (i.e.,
+ # Mojo Apps) that need the mojo system API.
+ #
+ # When building a component library, add <(mojo_system_for_component) to
+ # your dependencies section. When building a loadable module (e.g., a
+ # Mojo App), add <(mojo_system_for_loadable_module) to your dependencies
+ # section.
+ #
+ ['component=="shared_library"', {
+ 'mojo_system_for_component': "mojo_system_impl",
+ 'mojo_system_for_loadable_module': "mojo_system_impl",
+ }, {
+ 'mojo_system_for_component': "mojo_none",
+ 'mojo_system_for_loadable_module': "mojo_system",
+ }],
+ ],
},
'includes': [
'mojo_apps.gypi',
@@ -104,6 +128,10 @@
]
},
{
+ 'target_name': 'mojo_none',
+ 'type': 'none',
+ },
+ {
'target_name': 'mojo_external_service_bindings',
'type': 'static_library',
'sources': [
@@ -298,7 +326,7 @@
'mojo_gles2',
'mojo_gles2_bindings',
'mojo_environment_chromium',
- 'mojo_system_impl',
+ '<(mojo_system_for_component)',
],
'defines': [
'MOJO_GLES2_IMPL_IMPLEMENTATION',
@@ -334,11 +362,10 @@
'dependencies': [
'../base/base.gyp:base',
'../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
- 'mojo_system_impl',
+ '<(mojo_system_for_component)',
],
'export_dependent_settings': [
'../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
- 'mojo_system_impl',
],
'sources': [
'common/common_type_converters.cc',
@@ -397,7 +424,6 @@
'target_name': 'mojo_environment_chromium',
'type': 'static_library',
'dependencies': [
- 'mojo_common_lib',
'mojo_environment_chromium_impl',
],
'sources': [
@@ -423,7 +449,8 @@
'dependencies': [
'../base/base.gyp:base',
'../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
- 'mojo_common_lib'
+ 'mojo_common_lib',
+ '<(mojo_system_for_component)',
],
'sources': [
'environment/default_async_waiter_impl.cc',
@@ -450,7 +477,7 @@
'mojo_common_lib',
'mojo_environment_chromium',
'mojo_service_provider_bindings',
- 'mojo_system_impl',
+ '<(mojo_system_for_component)',
],
'sources': [
'service_manager/background_service_loader.cc',
@@ -492,6 +519,7 @@
'../net/net.gyp:net',
'../url/url.gyp:url_lib',
'mojo_application',
+ 'mojo_common_lib',
'mojo_external_service_bindings',
'mojo_gles2_impl',
'mojo_native_viewport_service',
« no previous file with comments | « mojo/environment/BUILD.gn ('k') | mojo/mojo_apps.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698