fix: compile msix as seperate source set

This commit is contained in:
Keeley Hammond
2026-01-30 20:59:58 -08:00
parent 30ebfca1d8
commit 253c920bdc
2 changed files with 27 additions and 7 deletions

View File

@@ -420,6 +420,32 @@ action("electron_generate_node_defines") {
args = [ rebase_path(target_gen_dir) ] + rebase_path(inputs)
}
# MSIX updater needs to be in a separate source_set because it uses C++/WinRT
# headers that require exceptions to be enabled.
source_set("electron_msix_updater") {
sources = [
"shell/browser/api/electron_api_msix_updater.cc",
"shell/browser/api/electron_api_msix_updater.h",
]
configs += [ "//third_party/electron_node:node_external_config" ]
public_configs = [ ":electron_lib_config" ]
if (is_win) {
cflags_cc = [ "/EHsc" ] # Enable C++ exceptions for C++/WinRT
include_dirs = [ "//third_party/nearby/src/internal/platform/implementation/windows/generated" ]
}
deps = [
"//base",
"//content/public/browser",
"//gin",
"//v8",
]
}
source_set("electron_lib") {
configs += [
"//v8:external_startup_data",
@@ -435,6 +461,7 @@ source_set("electron_lib") {
":electron_fuses",
":electron_generate_node_defines",
":electron_js2c",
":electron_msix_updater",
":electron_version_header",
":resources",
"buildflags",
@@ -706,11 +733,6 @@ source_set("electron_lib") {
"//sandbox/win:sandbox",
"//third_party/crashpad/crashpad/handler",
]
# Use the pre-generated C++/WinRT headers from //third_party/nearby instead
# of the SDK's cppwinrt headers, which may be incomplete. This is needed for
# the MSIX auto-updater which uses Windows.ApplicationModel APIs.
include_dirs += [ "//third_party/nearby/src/internal/platform/implementation/windows/generated" ]
}
if (enable_plugins) {

View File

@@ -279,8 +279,6 @@ filenames = {
"shell/browser/api/electron_api_in_app_purchase.h",
"shell/browser/api/electron_api_menu.cc",
"shell/browser/api/electron_api_menu.h",
"shell/browser/api/electron_api_msix_updater.cc",
"shell/browser/api/electron_api_msix_updater.h",
"shell/browser/api/electron_api_native_theme.cc",
"shell/browser/api/electron_api_native_theme.h",
"shell/browser/api/electron_api_net_log.cc",