chore: [gn] support MAS build
This commit is contained in:
parent
addac43bbc
commit
6fbec9d5a9
1 changed files with 55 additions and 10 deletions
55
BUILD.gn
55
BUILD.gn
|
@ -30,6 +30,12 @@ declare_args() {
|
|||
enable_desktop_capturer = true
|
||||
enable_run_as_node = true
|
||||
enable_osr = false
|
||||
|
||||
is_mas_build = false
|
||||
}
|
||||
|
||||
if (is_mas_build) {
|
||||
assert(is_mac, "It doesn't make sense to build a MAS build on a non-mac platform")
|
||||
}
|
||||
|
||||
filenames_gypi = exec_script(
|
||||
|
@ -354,7 +360,12 @@ static_library("electron_lib") {
|
|||
]
|
||||
}
|
||||
|
||||
if (is_mac) {
|
||||
|
||||
if (is_mas_build) {
|
||||
deps -= [ "//third_party/crashpad/crashpad/client" ]
|
||||
}
|
||||
|
||||
if (is_mac && !is_mas_build) {
|
||||
libs = [
|
||||
"Squirrel.framework",
|
||||
"ReactiveCocoa.framework",
|
||||
|
@ -363,11 +374,9 @@ static_library("electron_lib") {
|
|||
cflags_objcc = [
|
||||
"-F", rebase_path("external_binaries", root_build_dir)
|
||||
]
|
||||
if (true) { # !is_mas_build
|
||||
# ReactiveCocoa which is used by Squirrel requires using __weak.
|
||||
cflags_objcc += [ "-fobjc-weak" ]
|
||||
}
|
||||
}
|
||||
if (is_linux) {
|
||||
sources += filenames_gypi.lib_sources_linux
|
||||
sources += filenames_gypi.lib_sources_nss
|
||||
|
@ -375,11 +384,21 @@ static_library("electron_lib") {
|
|||
if (is_win) {
|
||||
sources += filenames_gypi.lib_sources_win
|
||||
}
|
||||
if (is_mas_build) {
|
||||
sources += [ "atom/browser/api/atom_api_app_mas.mm" ]
|
||||
sources -= [
|
||||
"atom/browser/auto_updater_mac.mm",
|
||||
"atom/common/crash_reporter/crash_reporter_mac.h",
|
||||
"atom/common/crash_reporter/crash_reporter_mac.mm",
|
||||
]
|
||||
defines += [ "MAS_BUILD" ]
|
||||
}
|
||||
}
|
||||
|
||||
if (is_mac) {
|
||||
electron_framework_name = electron_product_name + " Framework"
|
||||
electron_helper_name = electron_product_name + " Helper"
|
||||
electron_login_helper_name = electron_product_name + " Login Helper"
|
||||
electron_framework_version = "A"
|
||||
electron_mac_bundle_id = "com.$electron_company_abbr.$electron_project_name"
|
||||
|
||||
|
@ -424,7 +443,7 @@ if (is_mac) {
|
|||
]
|
||||
}
|
||||
|
||||
bundle_data("electron_framework_helpers") {
|
||||
bundle_data("electron_crashpad_helper") {
|
||||
sources = [
|
||||
"$root_out_dir/crashpad_handler",
|
||||
]
|
||||
|
@ -446,11 +465,13 @@ if (is_mac) {
|
|||
deps = [
|
||||
"//base",
|
||||
"//base:i18n",
|
||||
":electron_framework_helpers",
|
||||
":electron_framework_libraries",
|
||||
":electron_framework_resources",
|
||||
":electron_xibs",
|
||||
]
|
||||
if (!is_mas_build) {
|
||||
deps += [ ":electron_crashpad_helper" ]
|
||||
}
|
||||
info_plist = "atom/common/resources/mac/Info.plist"
|
||||
extra_substitutions = [
|
||||
"ATOM_BUNDLE_ID=$electron_mac_bundle_id.framework",
|
||||
|
@ -503,10 +524,14 @@ if (is_mac) {
|
|||
sources = [
|
||||
"$root_out_dir/$electron_framework_name.framework",
|
||||
"$root_out_dir/$electron_helper_name.app",
|
||||
]
|
||||
if (!is_mas_build) {
|
||||
sources += [
|
||||
"external_binaries/Squirrel.framework",
|
||||
"external_binaries/ReactiveCocoa.framework",
|
||||
"external_binaries/Mantle.framework",
|
||||
]
|
||||
}
|
||||
outputs = [
|
||||
"{{bundle_contents_dir}}/Frameworks/{{source_file_part}}",
|
||||
]
|
||||
|
@ -516,6 +541,23 @@ if (is_mac) {
|
|||
]
|
||||
}
|
||||
|
||||
mac_app_bundle("electron_login_helper") {
|
||||
output_name = electron_login_helper_name
|
||||
sources = filenames_gypi.login_helper_sources
|
||||
include_dirs = [ "." ]
|
||||
libs = [ "AppKit.framework" ]
|
||||
info_plist = "atom/app/resources/mac/loginhelper-Info.plist"
|
||||
extra_substitutions = [
|
||||
"ATOM_BUNDLE_ID=$electron_mac_bundle_id.loginhelper"
|
||||
]
|
||||
}
|
||||
|
||||
bundle_data("electron_login_helper_app") {
|
||||
public_deps = [ ":electron_login_helper" ]
|
||||
sources = [ "$root_out_dir/$electron_login_helper_name.app" ]
|
||||
outputs = [ "{{bundle_contents_dir}}/Library/LoginItems" ]
|
||||
}
|
||||
|
||||
bundle_data("electron_app_resources") {
|
||||
public_deps = [
|
||||
":js2asar",
|
||||
|
@ -562,6 +604,9 @@ if (is_mac) {
|
|||
":electron_app_framework_bundle_data",
|
||||
":electron_app_resources",
|
||||
]
|
||||
if (is_mas_build) {
|
||||
deps += [ ":electron_login_helper_app" ]
|
||||
}
|
||||
info_plist = "atom/browser/resources/mac/Info.plist"
|
||||
extra_substitutions = [
|
||||
"ATOM_BUNDLE_ID=$electron_mac_bundle_id",
|
||||
|
|
Loading…
Reference in a new issue