build: add enable_pepper_flash flag to GN build (#14349)
* chore: reformat BUILD.gn * build: add enable_pepper_flash flag to GN build Fixes #14339. * build: move pepper flash under components/ * [ci skip] build: add electron.icns to mac app resources * build: [gyp] update config to use component pepper flash * build: [gyp] copy pepper shared libraries into executable folder in component build
This commit is contained in:
		
					parent
					
						
							
								2f759151d2
							
						
					
				
			
			
				commit
				
					
						ccd63b5ed0
					
				
			
		
					 3 changed files with 164 additions and 39 deletions
				
			
		
							
								
								
									
										95
									
								
								BUILD.gn
									
										
									
									
									
								
							
							
						
						
									
										95
									
								
								BUILD.gn
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -32,6 +32,7 @@ declare_args() {
 | 
			
		|||
  enable_desktop_capturer = true
 | 
			
		||||
  enable_run_as_node = true
 | 
			
		||||
  enable_osr = false
 | 
			
		||||
  enable_view_api = false
 | 
			
		||||
 | 
			
		||||
  # Provide a fake location provider for mocking
 | 
			
		||||
  # the geolocation responses. Disable it if you
 | 
			
		||||
| 
						 | 
				
			
			@ -39,7 +40,8 @@ declare_args() {
 | 
			
		|||
  # Should not be enabled for release build.
 | 
			
		||||
  enable_fake_location_provider = !is_official_build
 | 
			
		||||
 | 
			
		||||
  enable_view_api = false
 | 
			
		||||
  # Enable flash plugin support.
 | 
			
		||||
  enable_pepper_flash = true
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if (is_mas_build) {
 | 
			
		||||
| 
						 | 
				
			
			@ -77,6 +79,9 @@ config("features") {
 | 
			
		|||
  if (enable_view_api) {
 | 
			
		||||
    defines += [ "ENABLE_VIEW_API" ]
 | 
			
		||||
  }
 | 
			
		||||
  if (enable_pepper_flash) {
 | 
			
		||||
    defines += [ "ENABLE_PEPPER_FLASH" ]
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
npm_action("atom_browserify_sandbox") {
 | 
			
		||||
| 
						 | 
				
			
			@ -294,15 +299,11 @@ static_library("electron_lib") {
 | 
			
		|||
  set_sources_assignment_filter(sources_assignment_filter)
 | 
			
		||||
 | 
			
		||||
  if (is_component_build) {
 | 
			
		||||
    defines += [
 | 
			
		||||
      "NODE_SHARED_MODE",
 | 
			
		||||
    ]
 | 
			
		||||
    defines += [ "NODE_SHARED_MODE" ]
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (enable_fake_location_provider) {
 | 
			
		||||
    defines += [
 | 
			
		||||
      "OVERRIDE_LOCATION_PROVIDER"
 | 
			
		||||
    ]
 | 
			
		||||
    defines += [ "OVERRIDE_LOCATION_PROVIDER" ]
 | 
			
		||||
    sources += filenames_gypi.lib_sources_location_provider
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -426,6 +427,10 @@ static_library("electron_lib") {
 | 
			
		|||
      "atom/browser/api/atom_api_text_field.h",
 | 
			
		||||
    ]
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (enable_pepper_flash) {
 | 
			
		||||
    deps += [ "components/pepper_flash" ]
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
electron_paks("packed_resources") {
 | 
			
		||||
| 
						 | 
				
			
			@ -479,12 +484,8 @@ if (is_mac) {
 | 
			
		|||
      sources = []
 | 
			
		||||
      public_deps = []
 | 
			
		||||
      if (is_component_ffmpeg) {
 | 
			
		||||
        sources += [
 | 
			
		||||
          "$root_out_dir/libffmpeg.dylib",
 | 
			
		||||
        ]
 | 
			
		||||
        public_deps += [
 | 
			
		||||
          "//third_party/ffmpeg:ffmpeg",
 | 
			
		||||
        ]
 | 
			
		||||
        sources += [ "$root_out_dir/libffmpeg.dylib" ]
 | 
			
		||||
        public_deps += [ "//third_party/ffmpeg:ffmpeg" ]
 | 
			
		||||
      }
 | 
			
		||||
      outputs = [
 | 
			
		||||
        "{{bundle_contents_dir}}/Libraries/{{source_file_part}}",
 | 
			
		||||
| 
						 | 
				
			
			@ -517,8 +518,8 @@ if (is_mac) {
 | 
			
		|||
      ":electron_lib",
 | 
			
		||||
    ]
 | 
			
		||||
    deps = [
 | 
			
		||||
      ":electron_framework_resources",
 | 
			
		||||
      ":electron_framework_libraries",
 | 
			
		||||
      ":electron_framework_resources",
 | 
			
		||||
      ":electron_xibs",
 | 
			
		||||
    ]
 | 
			
		||||
    if (!is_mas_build) {
 | 
			
		||||
| 
						 | 
				
			
			@ -620,6 +621,7 @@ if (is_mac) {
 | 
			
		|||
    sources = [
 | 
			
		||||
      "$root_out_dir/resources/default_app.asar",
 | 
			
		||||
      "$root_out_dir/resources/electron.asar",
 | 
			
		||||
      "atom/browser/resources/mac/electron.icns",
 | 
			
		||||
    ]
 | 
			
		||||
    outputs = [
 | 
			
		||||
      "{{bundle_resources_dir}}/{{source_file_part}}",
 | 
			
		||||
| 
						 | 
				
			
			@ -809,51 +811,80 @@ group("chromium_browsertests") {
 | 
			
		|||
template("dist_zip") {
 | 
			
		||||
  _runtime_deps_target = "${target_name}__deps"
 | 
			
		||||
  _runtime_deps_file =
 | 
			
		||||
      "$root_out_dir/gen.runtime/" +
 | 
			
		||||
      get_label_info(target_name, "dir") + "/" +
 | 
			
		||||
      "$root_out_dir/gen.runtime/" + get_label_info(target_name, "dir") + "/" +
 | 
			
		||||
      get_label_info(target_name, "name") + ".runtime_deps"
 | 
			
		||||
 | 
			
		||||
  group(_runtime_deps_target) {
 | 
			
		||||
    forward_variables_from(invoker, [ "deps", "data_deps", "data" ])
 | 
			
		||||
    forward_variables_from(invoker,
 | 
			
		||||
                           [
 | 
			
		||||
                             "deps",
 | 
			
		||||
                             "data_deps",
 | 
			
		||||
                             "data",
 | 
			
		||||
                           ])
 | 
			
		||||
    write_runtime_deps = _runtime_deps_file
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  action(target_name) {
 | 
			
		||||
    script = "//electron/build/zip.py"
 | 
			
		||||
    deps = [ ":$_runtime_deps_target" ]
 | 
			
		||||
    deps = [
 | 
			
		||||
      ":$_runtime_deps_target",
 | 
			
		||||
    ]
 | 
			
		||||
    forward_variables_from(invoker, [ "outputs" ])
 | 
			
		||||
    args =  rebase_path(outputs + [ _runtime_deps_file ], root_build_dir) + [target_cpu, target_os]
 | 
			
		||||
    args = rebase_path(outputs + [ _runtime_deps_file ], root_build_dir) + [
 | 
			
		||||
             target_cpu,
 | 
			
		||||
             target_os,
 | 
			
		||||
           ]
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
copy("electron_license") {
 | 
			
		||||
  sources = [ "LICENSE" ]
 | 
			
		||||
  outputs = [ "$root_build_dir/{{source_file_part}}" ]
 | 
			
		||||
  sources = [
 | 
			
		||||
    "LICENSE",
 | 
			
		||||
  ]
 | 
			
		||||
  outputs = [
 | 
			
		||||
    "$root_build_dir/{{source_file_part}}",
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
copy("chromium_licenses") {
 | 
			
		||||
  deps = [ "//components/resources:about_credits" ]
 | 
			
		||||
  sources = [ "$root_gen_dir/components/resources/about_credits.html" ]
 | 
			
		||||
  outputs = [ "$root_build_dir/LICENSES.chromium.html" ]
 | 
			
		||||
  deps = [
 | 
			
		||||
    "//components/resources:about_credits",
 | 
			
		||||
  ]
 | 
			
		||||
  sources = [
 | 
			
		||||
    "$root_gen_dir/components/resources/about_credits.html",
 | 
			
		||||
  ]
 | 
			
		||||
  outputs = [
 | 
			
		||||
    "$root_build_dir/LICENSES.chromium.html",
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
group("licenses") {
 | 
			
		||||
  data_deps = [ ":electron_license", ":chromium_licenses" ]
 | 
			
		||||
  data_deps = [
 | 
			
		||||
    ":electron_license",
 | 
			
		||||
    ":chromium_licenses",
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
action("electron_version") {
 | 
			
		||||
  script = "build/write_version.py"
 | 
			
		||||
  outputs = [ "$root_build_dir/version" ]
 | 
			
		||||
  outputs = [
 | 
			
		||||
    "$root_build_dir/version",
 | 
			
		||||
  ]
 | 
			
		||||
  args = rebase_path(outputs, root_build_dir) + [ electron_version ]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
dist_zip("electron_dist_zip") {
 | 
			
		||||
  data_deps = [ ":electron_app", ":licenses", ":electron_version" ]
 | 
			
		||||
  outputs = [ "$root_build_dir/dist.zip" ]
 | 
			
		||||
  data_deps = [
 | 
			
		||||
    ":electron_app",
 | 
			
		||||
    ":licenses",
 | 
			
		||||
    ":electron_version",
 | 
			
		||||
  ]
 | 
			
		||||
  outputs = [
 | 
			
		||||
    "$root_build_dir/dist.zip",
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
group("electron") {
 | 
			
		||||
  deps = [ ":electron_app" ]
 | 
			
		||||
  deps = [
 | 
			
		||||
    ":electron_app",
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										57
									
								
								components/pepper_flash/BUILD.gn
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								components/pepper_flash/BUILD.gn
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,57 @@
 | 
			
		|||
# Copyright (c) 2018 GitHub, Inc.
 | 
			
		||||
# Use of this source code is governed by the MIT license that can be
 | 
			
		||||
# found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
component("pepper_flash") {
 | 
			
		||||
  visibility = [ "//electron:electron_lib" ]
 | 
			
		||||
  defines = [ "IS_PEPPER_FLASH_IMPL" ]
 | 
			
		||||
  sources = [
 | 
			
		||||
    "//chrome/browser/renderer_host/pepper/chrome_browser_pepper_host_factory.cc",
 | 
			
		||||
    "//chrome/browser/renderer_host/pepper/chrome_browser_pepper_host_factory.h",
 | 
			
		||||
    "//chrome/browser/renderer_host/pepper/pepper_broker_message_filter.cc",
 | 
			
		||||
    "//chrome/browser/renderer_host/pepper/pepper_broker_message_filter.h",
 | 
			
		||||
    "//chrome/browser/renderer_host/pepper/pepper_flash_browser_host.cc",
 | 
			
		||||
    "//chrome/browser/renderer_host/pepper/pepper_flash_browser_host.h",
 | 
			
		||||
    "//chrome/browser/renderer_host/pepper/pepper_flash_clipboard_message_filter.cc",
 | 
			
		||||
    "//chrome/browser/renderer_host/pepper/pepper_flash_clipboard_message_filter.h",
 | 
			
		||||
    "//chrome/browser/renderer_host/pepper/pepper_flash_drm_host.cc",
 | 
			
		||||
    "//chrome/browser/renderer_host/pepper/pepper_flash_drm_host.h",
 | 
			
		||||
    "//chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.cc",
 | 
			
		||||
    "//chrome/browser/renderer_host/pepper/pepper_isolated_file_system_message_filter.h",
 | 
			
		||||
    "//chrome/renderer/pepper/chrome_renderer_pepper_host_factory.cc",
 | 
			
		||||
    "//chrome/renderer/pepper/chrome_renderer_pepper_host_factory.h",
 | 
			
		||||
    "//chrome/renderer/pepper/pepper_flash_drm_renderer_host.cc",
 | 
			
		||||
    "//chrome/renderer/pepper/pepper_flash_drm_renderer_host.h",
 | 
			
		||||
    "//chrome/renderer/pepper/pepper_flash_font_file_host.cc",
 | 
			
		||||
    "//chrome/renderer/pepper/pepper_flash_font_file_host.h",
 | 
			
		||||
    "//chrome/renderer/pepper/pepper_flash_fullscreen_host.cc",
 | 
			
		||||
    "//chrome/renderer/pepper/pepper_flash_fullscreen_host.h",
 | 
			
		||||
    "//chrome/renderer/pepper/pepper_flash_menu_host.cc",
 | 
			
		||||
    "//chrome/renderer/pepper/pepper_flash_menu_host.h",
 | 
			
		||||
    "//chrome/renderer/pepper/pepper_flash_renderer_host.cc",
 | 
			
		||||
    "//chrome/renderer/pepper/pepper_flash_renderer_host.h",
 | 
			
		||||
    "//chrome/renderer/pepper/pepper_helper.cc",
 | 
			
		||||
    "//chrome/renderer/pepper/pepper_helper.h",
 | 
			
		||||
    "//chrome/renderer/pepper/pepper_shared_memory_message_filter.cc",
 | 
			
		||||
    "//chrome/renderer/pepper/pepper_shared_memory_message_filter.h",
 | 
			
		||||
  ]
 | 
			
		||||
  deps = [
 | 
			
		||||
    "//content/public/browser",
 | 
			
		||||
    "//content/public/renderer",
 | 
			
		||||
    "//media:media_features",
 | 
			
		||||
    "//ppapi/host",
 | 
			
		||||
    "//ppapi/proxy",
 | 
			
		||||
    "//ppapi/proxy:ipc",
 | 
			
		||||
    "//ppapi/shared_impl",
 | 
			
		||||
    "//services/device/public/mojom",
 | 
			
		||||
    "//skia",
 | 
			
		||||
    "//third_party/adobe/flash:flapper_version_h",
 | 
			
		||||
    "//ui/base",
 | 
			
		||||
  ]
 | 
			
		||||
  if (is_mac) {
 | 
			
		||||
    sources += [
 | 
			
		||||
      "//chrome/browser/renderer_host/pepper/monitor_finder_mac.h",
 | 
			
		||||
      "//chrome/browser/renderer_host/pepper/monitor_finder_mac.mm",
 | 
			
		||||
    ]
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										37
									
								
								electron.gyp
									
										
									
									
									
								
							
							
						
						
									
										37
									
								
								electron.gyp
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -196,6 +196,11 @@
 | 
			
		|||
                      '<(libchromiumcontent_dir)/ffmpeg.dll',
 | 
			
		||||
                    ],
 | 
			
		||||
                  }],
 | 
			
		||||
                  ['enable_pepper_flash==1', {
 | 
			
		||||
                    'copied_libraries': [
 | 
			
		||||
                      '<(libchromiumcontent_dir)/pepper_flash.dll',
 | 
			
		||||
                    ],
 | 
			
		||||
                  }],
 | 
			
		||||
                ],
 | 
			
		||||
              },
 | 
			
		||||
              'destination': '<(PRODUCT_DIR)',
 | 
			
		||||
| 
						 | 
				
			
			@ -238,6 +243,11 @@
 | 
			
		|||
                      '<(libchromiumcontent_dir)/libffmpeg.so',
 | 
			
		||||
                    ],
 | 
			
		||||
                  }],
 | 
			
		||||
                  ['enable_pepper_flash==1', {
 | 
			
		||||
                    'copied_libraries': [
 | 
			
		||||
                      '<(libchromiumcontent_dir)/libpepper_flash.so',
 | 
			
		||||
                    ],
 | 
			
		||||
                  }],
 | 
			
		||||
                ],
 | 
			
		||||
              },
 | 
			
		||||
              'destination': '<(PRODUCT_DIR)',
 | 
			
		||||
| 
						 | 
				
			
			@ -339,6 +349,26 @@
 | 
			
		|||
            '<(libchromiumcontent_src_dir)/chrome/renderer/pepper',
 | 
			
		||||
          ],
 | 
			
		||||
          'link_settings': {
 | 
			
		||||
            'conditions': [
 | 
			
		||||
              ['libchromiumcontent_component', {
 | 
			
		||||
                'conditions': [
 | 
			
		||||
                  ['OS=="win"', {
 | 
			
		||||
                    'libraries': [
 | 
			
		||||
                      '<(libchromiumcontent_dir)/pepper_flash.dll',
 | 
			
		||||
                     ]
 | 
			
		||||
                  }],
 | 
			
		||||
                  ['OS=="mac"', {
 | 
			
		||||
                    'libraries': [
 | 
			
		||||
                      '<(libchromiumcontent_dir)/libpepper_flash.dylib',
 | 
			
		||||
                    ]
 | 
			
		||||
                  }],
 | 
			
		||||
                  ['OS=="linux"', {
 | 
			
		||||
                    'libraries': [
 | 
			
		||||
                      '<(libchromiumcontent_dir)/libpepper_flash.so',
 | 
			
		||||
                    ]
 | 
			
		||||
                  }],
 | 
			
		||||
                ],
 | 
			
		||||
              }, {
 | 
			
		||||
                'conditions': [
 | 
			
		||||
                  ['OS=="win"', {
 | 
			
		||||
                    'libraries': [
 | 
			
		||||
| 
						 | 
				
			
			@ -350,6 +380,8 @@
 | 
			
		|||
                    ]
 | 
			
		||||
                  }],
 | 
			
		||||
                ],
 | 
			
		||||
              }],
 | 
			
		||||
            ],
 | 
			
		||||
          },
 | 
			
		||||
        }],  # enable_pepper_flash
 | 
			
		||||
        ['libchromiumcontent_component', {
 | 
			
		||||
| 
						 | 
				
			
			@ -710,6 +742,11 @@
 | 
			
		|||
                      '<(libchromiumcontent_dir)/libffmpeg.dylib',
 | 
			
		||||
                    ],
 | 
			
		||||
                  }],
 | 
			
		||||
                  ['enable_pepper_flash==1', {
 | 
			
		||||
                    'copied_libraries': [
 | 
			
		||||
                      '<(libchromiumcontent_dir)/libpepper_flash.dylib',
 | 
			
		||||
                    ],
 | 
			
		||||
                  }],
 | 
			
		||||
                ],
 | 
			
		||||
              },
 | 
			
		||||
              'destination': '<(PRODUCT_DIR)/<(product_name) Framework.framework/Versions/A/Libraries',
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue