build: build squirrel and its dependencies from source (#24318)

* build: build squirrel and its dependencies from source

* chore: do not use fork for squirrel.mac

* build: do not ship headers with dependency frameworks

* Update BUILD.gn

* chore: s/striped/stripped

* chore: update as per feedback

* chore: use ARC and fix build errors

* chore: fix ARC Squirrel self retainer
This commit is contained in:
Samuel Attard 2020-07-02 19:42:40 -07:00 committed by GitHub
parent d330c6f9fe
commit 2a6d6d6ea7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 1431 additions and 141 deletions

View file

@ -832,7 +832,7 @@ step-restore-out-cache: &step-restore-out-cache
paths: paths:
- ./src/out/Default - ./src/out/Default
keys: keys:
- v8-out-cache-{{ checksum "src/electron/.depshash" }}-{{ checksum "src/electron/.depshash-target" }} - v9-out-cache-{{ checksum "src/electron/.depshash" }}-{{ checksum "src/electron/.depshash-target" }}
name: Restoring out cache name: Restoring out cache
step-set-git-cache-path: &step-set-git-cache-path step-set-git-cache-path: &step-set-git-cache-path
@ -856,7 +856,7 @@ step-save-out-cache: &step-save-out-cache
save_cache: save_cache:
paths: paths:
- ./src/out/Default - ./src/out/Default
key: v8-out-cache-{{ checksum "src/electron/.depshash" }}-{{ checksum "src/electron/.depshash-target" }} key: v9-out-cache-{{ checksum "src/electron/.depshash" }}-{{ checksum "src/electron/.depshash-target" }}
name: Persisting out cache name: Persisting out cache
step-run-electron-only-hooks: &step-run-electron-only-hooks step-run-electron-only-hooks: &step-run-electron-only-hooks

View file

@ -497,16 +497,17 @@ source_set("electron_lib") {
} else { } else {
libs += [ libs += [
"Squirrel.framework", "Squirrel.framework",
"ReactiveCocoa.framework", "ReactiveObjC.framework",
"Mantle.framework", "Mantle.framework",
] ]
cflags_objcc = [
"-F", deps += [
rebase_path("external_binaries", root_build_dir), "//third_party/squirrel.mac:reactiveobjc_framework+link",
"//third_party/squirrel.mac:squirrel_framework+link",
] ]
# ReactiveCocoa which is used by Squirrel requires using __weak. # ReactiveObjC which is used by Squirrel requires using __weak.
cflags_objcc += [ "-fobjc-weak" ] cflags_objcc = [ "-fobjc-weak" ]
} }
} }
if (is_linux) { if (is_linux) {
@ -811,8 +812,6 @@ if (is_mac) {
} }
ldflags = [ ldflags = [
"-F",
rebase_path("external_binaries", root_build_dir),
"-Wl,-install_name,@rpath/$output_name.framework/$output_name", "-Wl,-install_name,@rpath/$output_name.framework/$output_name",
"-rpath", "-rpath",
"@loader_path/Libraries", "@loader_path/Libraries",
@ -863,17 +862,49 @@ if (is_mac) {
} }
} }
template("stripped_framework") {
action(target_name) {
assert(defined(invoker.framework))
script = "//electron/build/strip_framework.py"
forward_variables_from(invoker, [ "deps" ])
inputs = [ "$root_out_dir/" + invoker.framework ]
outputs = [ "$target_out_dir/stripped_frameworks/" + invoker.framework ]
args = rebase_path(inputs) + rebase_path(outputs)
}
}
stripped_framework("stripped_mantle_framework") {
framework = "Mantle.framework"
deps = [ "//third_party/squirrel.mac:mantle_framework" ]
}
stripped_framework("stripped_reactiveobjc_framework") {
framework = "ReactiveObjC.framework"
deps = [ "//third_party/squirrel.mac:reactiveobjc_framework" ]
}
stripped_framework("stripped_squirrel_framework") {
framework = "Squirrel.framework"
deps = [ "//third_party/squirrel.mac:squirrel_framework" ]
}
bundle_data("electron_app_framework_bundle_data") { bundle_data("electron_app_framework_bundle_data") {
sources = [ "$root_out_dir/$electron_framework_name.framework" ] sources = [ "$root_out_dir/$electron_framework_name.framework" ]
if (!is_mas_build) { if (!is_mas_build) {
sources += [ sources += get_target_outputs(":stripped_mantle_framework") +
"external_binaries/Mantle.framework", get_target_outputs(":stripped_reactiveobjc_framework") +
"external_binaries/ReactiveCocoa.framework", get_target_outputs(":stripped_squirrel_framework")
"external_binaries/Squirrel.framework",
]
} }
outputs = [ "{{bundle_contents_dir}}/Frameworks/{{source_file_part}}" ] outputs = [ "{{bundle_contents_dir}}/Frameworks/{{source_file_part}}" ]
public_deps = [ ":electron_framework+link" ] public_deps = [
":electron_framework+link",
":stripped_mantle_framework",
":stripped_reactiveobjc_framework",
":stripped_squirrel_framework",
]
foreach(helper_params, content_mac_helpers) { foreach(helper_params, content_mac_helpers) {
sources += sources +=
@ -1179,18 +1210,6 @@ test("shell_browser_ui_unittests") {
"//ui/base", "//ui/base",
"//ui/strings", "//ui/strings",
] ]
if (is_mac) {
# Resolve paths owing to different test executable locations
ldflags = [
"-F",
rebase_path("external_binaries", root_build_dir),
"-rpath",
"@loader_path",
"-rpath",
"@executable_path/" + rebase_path("external_binaries", root_build_dir),
]
}
} }
template("dist_zip") { template("dist_zip") {

16
DEPS
View file

@ -18,6 +18,8 @@ vars = {
'v12.18.2', 'v12.18.2',
'nan_version': 'nan_version':
'2c4ee8a32a299eada3cd6e468bbd0a473bfea96d', '2c4ee8a32a299eada3cd6e468bbd0a473bfea96d',
'squirrel.mac_version':
'44468f858ce0d25c27bd5e674abfa104e0119738',
'boto_version': 'f7574aa6cc2c819430c1f05e9a1a1a666ef8169b', 'boto_version': 'f7574aa6cc2c819430c1f05e9a1a1a666ef8169b',
'pyyaml_version': '3.12', 'pyyaml_version': '3.12',
@ -29,6 +31,7 @@ vars = {
'nodejs_git': 'https://github.com/nodejs', 'nodejs_git': 'https://github.com/nodejs',
'requests_git': 'https://github.com/kennethreitz', 'requests_git': 'https://github.com/kennethreitz',
'yaml_git': 'https://github.com/yaml', 'yaml_git': 'https://github.com/yaml',
'squirrel_git': 'https://github.com/Squirrel',
# KEEP IN SYNC WITH utils.js FILE # KEEP IN SYNC WITH utils.js FILE
'yarn_version': '1.15.2', 'yarn_version': '1.15.2',
@ -101,6 +104,18 @@ deps = {
'url': Var('requests_git') + '/requests.git' + '@' + Var('requests_version'), 'url': Var('requests_git') + '/requests.git' + '@' + Var('requests_version'),
'condition': 'checkout_requests and process_deps', 'condition': 'checkout_requests and process_deps',
}, },
'src/third_party/squirrel.mac': {
'url': Var("squirrel_git") + '/Squirrel.Mac.git@' + Var("squirrel.mac_version"),
'condition': 'process_deps',
},
'src/third_party/squirrel.mac/vendor/ReactiveObjC': {
'url': 'https://github.com/ReactiveCocoa/ReactiveObjC.git@74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76',
'condition': 'process_deps'
},
'src/third_party/squirrel.mac/vendor/Mantle': {
'url': 'https://github.com/Mantle/Mantle.git@78d3966b3c331292ea29ec38661b25df0a245948',
'condition': 'process_deps',
}
} }
hooks = [ hooks = [
@ -156,4 +171,5 @@ hooks = [
recursedeps = [ recursedeps = [
'src', 'src',
'src/third_party/squirrel.mac',
] ]

16
build/strip_framework.py Executable file
View file

@ -0,0 +1,16 @@
#!/usr/bin/env python
import os
import subprocess
import sys
source = sys.argv[1]
dest = sys.argv[2]
# Ensure any existing framework is removed
subprocess.check_output(["rm", "-rf", dest])
subprocess.check_output(["cp", "-a", source, dest])
# Strip headers, we do not need to ship them
subprocess.check_output(["rm", "-r", os.path.join(dest, 'Headers')])
subprocess.check_output(["rm", "-r", os.path.join(dest, 'Versions', 'Current', 'Headers')])

View file

@ -0,0 +1 @@
build_conditionally_import_ext_headers_from_framework_or_from.patch

View file

@ -0,0 +1,533 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Samuel Attard <samuel.r.attard@gmail.com>
Date: Fri, 26 Jun 2020 11:06:12 -0700
Subject: build: conditionally import EXT headers from framework or from
relative path
diff --git a/ReactiveObjC/NSControl+RACTextSignalSupport.m b/ReactiveObjC/NSControl+RACTextSignalSupport.m
index 88da38f6e8117bbabdd898c8a1d4bde5e59deda7..483caea62eaaf26d9ad7d267a5c3e9aa44638ce7 100644
--- a/ReactiveObjC/NSControl+RACTextSignalSupport.m
+++ b/ReactiveObjC/NSControl+RACTextSignalSupport.m
@@ -7,7 +7,11 @@
//
#import "NSControl+RACTextSignalSupport.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTScope.h"
+#else
#import <ReactiveObjC/EXTScope.h>
+#endif
#import "NSObject+RACDescription.h"
#import "RACDisposable.h"
#import "RACSignal.h"
diff --git a/ReactiveObjC/NSNotificationCenter+RACSupport.m b/ReactiveObjC/NSNotificationCenter+RACSupport.m
index 6d6f94384e0a85635c70f258020dd7ac7c78b3b1..1a364d16909c77654674b189cb9bc0861892e5aa 100644
--- a/ReactiveObjC/NSNotificationCenter+RACSupport.m
+++ b/ReactiveObjC/NSNotificationCenter+RACSupport.m
@@ -7,7 +7,11 @@
//
#import "NSNotificationCenter+RACSupport.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTScope.h"
+#else
#import <ReactiveObjC/EXTScope.h>
+#endif
#import "RACSignal.h"
#import "RACSubscriber.h"
#import "RACDisposable.h"
diff --git a/ReactiveObjC/NSObject+RACAppKitBindings.m b/ReactiveObjC/NSObject+RACAppKitBindings.m
index 06fd5d011515680b460220d96ddd0e889b134416..4c69de773ab31711f151a81a81f2757adedbed21 100644
--- a/ReactiveObjC/NSObject+RACAppKitBindings.m
+++ b/ReactiveObjC/NSObject+RACAppKitBindings.m
@@ -7,8 +7,16 @@
//
#import "NSObject+RACAppKitBindings.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTKeyPathCoding.h"
+#else
#import <ReactiveObjC/EXTKeyPathCoding.h>
+#endif
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTScope.h"
+#else
#import <ReactiveObjC/EXTScope.h>
+#endif
#import "NSObject+RACDeallocating.h"
#import "RACChannel.h"
#import "RACCompoundDisposable.h"
diff --git a/ReactiveObjC/NSObject+RACKVOWrapper.m b/ReactiveObjC/NSObject+RACKVOWrapper.m
index 099dc773af172df8ddd8c62165e8c79589112857..aaf40f0b725b94aa49a448dce5c084f0dcc32e60 100644
--- a/ReactiveObjC/NSObject+RACKVOWrapper.m
+++ b/ReactiveObjC/NSObject+RACKVOWrapper.m
@@ -7,8 +7,16 @@
//
#import "NSObject+RACKVOWrapper.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTRuntimeExtensions.h"
+#else
#import <ReactiveObjC/EXTRuntimeExtensions.h>
+#endif
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTScope.h"
+#else
#import <ReactiveObjC/EXTScope.h>
+#endif
#import "NSObject+RACDeallocating.h"
#import "NSString+RACKeyPathUtilities.h"
#import "RACCompoundDisposable.h"
diff --git a/ReactiveObjC/NSObject+RACLifting.m b/ReactiveObjC/NSObject+RACLifting.m
index a0c09d5c08b6b35b411d305f17326268d41a30b6..e2b01c13a1e858378a4f2e983f2487ace6b5a445 100644
--- a/ReactiveObjC/NSObject+RACLifting.m
+++ b/ReactiveObjC/NSObject+RACLifting.m
@@ -7,7 +7,11 @@
//
#import "NSObject+RACLifting.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTScope.h"
+#else
#import <ReactiveObjC/EXTScope.h>
+#endif
#import "NSInvocation+RACTypeParsing.h"
#import "NSObject+RACDeallocating.h"
#import "NSObject+RACDescription.h"
diff --git a/ReactiveObjC/NSObject+RACPropertySubscribing.h b/ReactiveObjC/NSObject+RACPropertySubscribing.h
index 430c066d4e1f9110b60e877fbff2254de9f56d58..cbbaa5ac9cf1942eb460d172ef41eaa2d8c387ee 100644
--- a/ReactiveObjC/NSObject+RACPropertySubscribing.h
+++ b/ReactiveObjC/NSObject+RACPropertySubscribing.h
@@ -7,7 +7,11 @@
//
#import <Foundation/Foundation.h>
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTKeyPathCoding.h"
+#else
#import <ReactiveObjC/EXTKeyPathCoding.h>
+#endif
#import "metamacros.h"
/// Creates a signal which observes `KEYPATH` on `TARGET` for changes.
diff --git a/ReactiveObjC/NSObject+RACPropertySubscribing.m b/ReactiveObjC/NSObject+RACPropertySubscribing.m
index 29e3df89e47b4d28b1c789181b2a6993c56a0f88..61a5929aa892a948b24b9f4403cb71272a1ca071 100644
--- a/ReactiveObjC/NSObject+RACPropertySubscribing.m
+++ b/ReactiveObjC/NSObject+RACPropertySubscribing.m
@@ -7,7 +7,11 @@
//
#import "NSObject+RACPropertySubscribing.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTScope.h"
+#else
#import <ReactiveObjC/EXTScope.h>
+#endif
#import "NSObject+RACDeallocating.h"
#import "NSObject+RACDescription.h"
#import "NSObject+RACKVOWrapper.h"
diff --git a/ReactiveObjC/NSObject+RACSelectorSignal.m b/ReactiveObjC/NSObject+RACSelectorSignal.m
index ed809e2efefbfd48754294bfe6dbb32b7e01c8c6..7e8a9522d449bba2b08b560782661b424bfd3417 100644
--- a/ReactiveObjC/NSObject+RACSelectorSignal.m
+++ b/ReactiveObjC/NSObject+RACSelectorSignal.m
@@ -7,7 +7,11 @@
//
#import "NSObject+RACSelectorSignal.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTRuntimeExtensions.h"
+#else
#import <ReactiveObjC/EXTRuntimeExtensions.h>
+#endif
#import "NSInvocation+RACTypeParsing.h"
#import "NSObject+RACDeallocating.h"
#import "RACCompoundDisposable.h"
diff --git a/ReactiveObjC/NSText+RACSignalSupport.m b/ReactiveObjC/NSText+RACSignalSupport.m
index dfeff1ee23c3d560581c8b66a1e52b87474e4c5d..a83d271234e1a66452588e48422f5ecca0b298c6 100644
--- a/ReactiveObjC/NSText+RACSignalSupport.m
+++ b/ReactiveObjC/NSText+RACSignalSupport.m
@@ -7,7 +7,11 @@
//
#import "NSText+RACSignalSupport.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTScope.h"
+#else
#import <ReactiveObjC/EXTScope.h>
+#endif
#import "NSObject+RACDescription.h"
#import "RACDisposable.h"
#import "RACSignal.h"
diff --git a/ReactiveObjC/NSUserDefaults+RACSupport.m b/ReactiveObjC/NSUserDefaults+RACSupport.m
index 203d60ea44c5009bad48d6255f3bd6079b3c29d3..c55198bac675e7a5bd67ec3e0442cfef366a9db6 100644
--- a/ReactiveObjC/NSUserDefaults+RACSupport.m
+++ b/ReactiveObjC/NSUserDefaults+RACSupport.m
@@ -7,7 +7,11 @@
//
#import "NSUserDefaults+RACSupport.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTScope.h"
+#else
#import <ReactiveObjC/EXTScope.h>
+#endif
#import "NSNotificationCenter+RACSupport.h"
#import "NSObject+RACDeallocating.h"
#import "RACChannel.h"
diff --git a/ReactiveObjC/RACCommand.m b/ReactiveObjC/RACCommand.m
index 4342f80ba8cc1afef7bed952551cbd93486cf2db..30c684fe9c07845cc695fd641133bb4d9c4954ba 100644
--- a/ReactiveObjC/RACCommand.m
+++ b/ReactiveObjC/RACCommand.m
@@ -7,7 +7,11 @@
//
#import "RACCommand.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTScope.h"
+#else
#import <ReactiveObjC/EXTScope.h>
+#endif
#import "NSArray+RACSequenceAdditions.h"
#import "NSObject+RACDeallocating.h"
#import "NSObject+RACDescription.h"
diff --git a/ReactiveObjC/RACDynamicSignal.m b/ReactiveObjC/RACDynamicSignal.m
index 3bee2f7c2b9f441f4dfa89e7c6e716e80b99f36e..6069b0b747f5742e196e464d4b32fa5ff4781126 100644
--- a/ReactiveObjC/RACDynamicSignal.m
+++ b/ReactiveObjC/RACDynamicSignal.m
@@ -7,7 +7,11 @@
//
#import "RACDynamicSignal.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTScope.h"
+#else
#import <ReactiveObjC/EXTScope.h>
+#endif
#import "RACCompoundDisposable.h"
#import "RACPassthroughSubscriber.h"
#import "RACScheduler+Private.h"
diff --git a/ReactiveObjC/RACKVOChannel.h b/ReactiveObjC/RACKVOChannel.h
index f1bd971085d6f403d8d0d304666e91d5f4beba62..9d1b74df0432c0593d488936d74b920f4b6f1eec 100644
--- a/ReactiveObjC/RACKVOChannel.h
+++ b/ReactiveObjC/RACKVOChannel.h
@@ -7,7 +7,11 @@
//
#import "RACChannel.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTKeyPathCoding.h"
+#else
#import <ReactiveObjC/EXTKeyPathCoding.h>
+#endif
#import "metamacros.h"
/// Creates a RACKVOChannel to the given key path. When the targeted object
diff --git a/ReactiveObjC/RACKVOChannel.m b/ReactiveObjC/RACKVOChannel.m
index c9e89d93472849917e21df0f8627300c216d494d..1df7ca105f77714b760294aacc5f8aaa279d30f8 100644
--- a/ReactiveObjC/RACKVOChannel.m
+++ b/ReactiveObjC/RACKVOChannel.m
@@ -7,7 +7,11 @@
//
#import "RACKVOChannel.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTScope.h"
+#else
#import <ReactiveObjC/EXTScope.h>
+#endif
#import "NSObject+RACDeallocating.h"
#import "NSObject+RACKVOWrapper.h"
#import "NSString+RACKeyPathUtilities.h"
diff --git a/ReactiveObjC/RACSubject.m b/ReactiveObjC/RACSubject.m
index 8ea052fd27d554ef00b76f3a06e8091ecf26a0d3..3d5b038a37e03fe74427e6d6f8c5c428b23d2777 100644
--- a/ReactiveObjC/RACSubject.m
+++ b/ReactiveObjC/RACSubject.m
@@ -7,7 +7,11 @@
//
#import "RACSubject.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTScope.h"
+#else
#import <ReactiveObjC/EXTScope.h>
+#endif
#import "RACCompoundDisposable.h"
#import "RACPassthroughSubscriber.h"
diff --git a/ReactiveObjC/RACSubscriber.m b/ReactiveObjC/RACSubscriber.m
index c0ee3021b3a84cbff2e2278e110fa2253eb9a6a7..89dca6ca5a4fa5d35657c417a2a232f3fe713c53 100644
--- a/ReactiveObjC/RACSubscriber.m
+++ b/ReactiveObjC/RACSubscriber.m
@@ -8,7 +8,11 @@
#import "RACSubscriber.h"
#import "RACSubscriber+Private.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTScope.h"
+#else
#import <ReactiveObjC/EXTScope.h>
+#endif
#import "RACCompoundDisposable.h"
@interface RACSubscriber ()
diff --git a/ReactiveObjC/RACSubscriptingAssignmentTrampoline.h b/ReactiveObjC/RACSubscriptingAssignmentTrampoline.h
index 5242ea2d9c2f1e8395a4d5634ae5f67b29b93368..7d63975e2a14987ab52bcfdbaf6e5e42f44f31fa 100644
--- a/ReactiveObjC/RACSubscriptingAssignmentTrampoline.h
+++ b/ReactiveObjC/RACSubscriptingAssignmentTrampoline.h
@@ -7,7 +7,11 @@
//
#import <Foundation/Foundation.h>
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTKeyPathCoding.h"
+#else
#import <ReactiveObjC/EXTKeyPathCoding.h>
+#endif
@class RACSignal<__covariant ValueType>;
diff --git a/ReactiveObjC/RACTestScheduler.m b/ReactiveObjC/RACTestScheduler.m
index 621f40e4f376bbf5e53ed9b55b7d1c46369aecbc..936bd6050ea1c46064c9f698ae2564cdfcc91c3b 100644
--- a/ReactiveObjC/RACTestScheduler.m
+++ b/ReactiveObjC/RACTestScheduler.m
@@ -7,7 +7,11 @@
//
#import "RACTestScheduler.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTScope.h"
+#else
#import <ReactiveObjC/EXTScope.h>
+#endif
#import "RACCompoundDisposable.h"
#import "RACDisposable.h"
#import "RACScheduler+Private.h"
diff --git a/ReactiveObjC/RACTuple.m b/ReactiveObjC/RACTuple.m
index 7f67625c8466ececb2a305554a115460576d52fb..b2f7120d42f03f3933b79b474b240c0f2d9e11d3 100644
--- a/ReactiveObjC/RACTuple.m
+++ b/ReactiveObjC/RACTuple.m
@@ -7,7 +7,11 @@
//
#import "RACTuple.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTKeyPathCoding.h"
+#else
#import <ReactiveObjC/EXTKeyPathCoding.h>
+#endif
#import "RACTupleSequence.h"
@implementation RACTupleNil
diff --git a/ReactiveObjC/RACUnarySequence.m b/ReactiveObjC/RACUnarySequence.m
index 76ce0bd29738a75f3f916b92a30f586d746132fd..5d54674ed63cc4235678379fb67b4fcf441bc78a 100644
--- a/ReactiveObjC/RACUnarySequence.m
+++ b/ReactiveObjC/RACUnarySequence.m
@@ -7,7 +7,11 @@
//
#import "RACUnarySequence.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTKeyPathCoding.h"
+#else
#import <ReactiveObjC/EXTKeyPathCoding.h>
+#endif
#import "NSObject+RACDescription.h"
@interface RACUnarySequence ()
diff --git a/ReactiveObjC/UIBarButtonItem+RACCommandSupport.m b/ReactiveObjC/UIBarButtonItem+RACCommandSupport.m
index 225e8b751a52cfd35759536efd3b085dcafae84c..7f33a9f2fba8f2aab9abd948ebedce4184e65145 100644
--- a/ReactiveObjC/UIBarButtonItem+RACCommandSupport.m
+++ b/ReactiveObjC/UIBarButtonItem+RACCommandSupport.m
@@ -7,7 +7,11 @@
//
#import "UIBarButtonItem+RACCommandSupport.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTKeyPathCoding.h"
+#else
#import <ReactiveObjC/EXTKeyPathCoding.h>
+#endif
#import "RACCommand.h"
#import "RACDisposable.h"
#import "RACSignal+Operations.h"
diff --git a/ReactiveObjC/UIButton+RACCommandSupport.m b/ReactiveObjC/UIButton+RACCommandSupport.m
index 6b11dad2766b525ca977a75daee3614d37afe872..1a4920721e8a7de078d2cb26382512021f306543 100644
--- a/ReactiveObjC/UIButton+RACCommandSupport.m
+++ b/ReactiveObjC/UIButton+RACCommandSupport.m
@@ -7,7 +7,11 @@
//
#import "UIButton+RACCommandSupport.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTKeyPathCoding.h"
+#else
#import <ReactiveObjC/EXTKeyPathCoding.h>
+#endif
#import "RACCommand.h"
#import "RACDisposable.h"
#import "RACSignal+Operations.h"
diff --git a/ReactiveObjC/UIControl+RACSignalSupport.m b/ReactiveObjC/UIControl+RACSignalSupport.m
index df3108eb71cf0245ee5fddddfb667ee76e3dd05e..831036a1297fd1230b60195190f147b87cdc582c 100644
--- a/ReactiveObjC/UIControl+RACSignalSupport.m
+++ b/ReactiveObjC/UIControl+RACSignalSupport.m
@@ -7,7 +7,11 @@
//
#import "UIControl+RACSignalSupport.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTScope.h"
+#else
#import <ReactiveObjC/EXTScope.h>
+#endif
#import "RACCompoundDisposable.h"
#import "RACDisposable.h"
#import "RACSignal.h"
diff --git a/ReactiveObjC/UIDatePicker+RACSignalSupport.m b/ReactiveObjC/UIDatePicker+RACSignalSupport.m
index 5c815c2f24756a95e6db6b30651d4860648fd497..dc06b2e7badade089477326d4677058b6c0e7d8e 100644
--- a/ReactiveObjC/UIDatePicker+RACSignalSupport.m
+++ b/ReactiveObjC/UIDatePicker+RACSignalSupport.m
@@ -7,7 +7,11 @@
//
#import "UIDatePicker+RACSignalSupport.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTKeyPathCoding.h"
+#else
#import <ReactiveObjC/EXTKeyPathCoding.h>
+#endif
#import "UIControl+RACSignalSupportPrivate.h"
@implementation UIDatePicker (RACSignalSupport)
diff --git a/ReactiveObjC/UIGestureRecognizer+RACSignalSupport.m b/ReactiveObjC/UIGestureRecognizer+RACSignalSupport.m
index 4f816eb8e67115352eaa3fafd592d86fb09bf46b..bbbf22b54be5539397c549008631dcb56abbdbe9 100644
--- a/ReactiveObjC/UIGestureRecognizer+RACSignalSupport.m
+++ b/ReactiveObjC/UIGestureRecognizer+RACSignalSupport.m
@@ -7,7 +7,11 @@
//
#import "UIGestureRecognizer+RACSignalSupport.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTScope.h"
+#else
#import <ReactiveObjC/EXTScope.h>
+#endif
#import "NSObject+RACDeallocating.h"
#import "NSObject+RACDescription.h"
#import "RACCompoundDisposable.h"
diff --git a/ReactiveObjC/UIRefreshControl+RACCommandSupport.m b/ReactiveObjC/UIRefreshControl+RACCommandSupport.m
index 3301ca194b7e0bc9bc5a05658487e1cf588c979e..53eec9931841a9be3baca6603181a88702ff2682 100644
--- a/ReactiveObjC/UIRefreshControl+RACCommandSupport.m
+++ b/ReactiveObjC/UIRefreshControl+RACCommandSupport.m
@@ -7,7 +7,11 @@
//
#import "UIRefreshControl+RACCommandSupport.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTKeyPathCoding.h"
+#else
#import <ReactiveObjC/EXTKeyPathCoding.h>
+#endif
#import "RACCommand.h"
#import "RACCompoundDisposable.h"
#import "RACDisposable.h"
diff --git a/ReactiveObjC/UISegmentedControl+RACSignalSupport.m b/ReactiveObjC/UISegmentedControl+RACSignalSupport.m
index 782cabca08697062c72eea148f846add3fcea7c4..1aeddfc20fa09ef7744d400b496e0d3131271242 100644
--- a/ReactiveObjC/UISegmentedControl+RACSignalSupport.m
+++ b/ReactiveObjC/UISegmentedControl+RACSignalSupport.m
@@ -7,7 +7,11 @@
//
#import "UISegmentedControl+RACSignalSupport.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTKeyPathCoding.h"
+#else
#import <ReactiveObjC/EXTKeyPathCoding.h>
+#endif
#import "UIControl+RACSignalSupportPrivate.h"
@implementation UISegmentedControl (RACSignalSupport)
diff --git a/ReactiveObjC/UISlider+RACSignalSupport.m b/ReactiveObjC/UISlider+RACSignalSupport.m
index 3583d843c5732cdbcb37bdf888cfd59dcd075868..d27160043099339ac0d6a55cda57f01fc5533ed8 100644
--- a/ReactiveObjC/UISlider+RACSignalSupport.m
+++ b/ReactiveObjC/UISlider+RACSignalSupport.m
@@ -7,7 +7,11 @@
//
#import "UISlider+RACSignalSupport.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTKeyPathCoding.h"
+#else
#import <ReactiveObjC/EXTKeyPathCoding.h>
+#endif
#import "UIControl+RACSignalSupportPrivate.h"
@implementation UISlider (RACSignalSupport)
diff --git a/ReactiveObjC/UIStepper+RACSignalSupport.m b/ReactiveObjC/UIStepper+RACSignalSupport.m
index 5eee8f8534e9866e8082f24f23c4aa960b4235f7..a846cbf00a5d14a13aa5914cb0dc81596a44cdb5 100644
--- a/ReactiveObjC/UIStepper+RACSignalSupport.m
+++ b/ReactiveObjC/UIStepper+RACSignalSupport.m
@@ -7,7 +7,11 @@
//
#import "UIStepper+RACSignalSupport.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTKeyPathCoding.h"
+#else
#import <ReactiveObjC/EXTKeyPathCoding.h>
+#endif
#import "UIControl+RACSignalSupportPrivate.h"
@implementation UIStepper (RACSignalSupport)
diff --git a/ReactiveObjC/UISwitch+RACSignalSupport.m b/ReactiveObjC/UISwitch+RACSignalSupport.m
index a5f847d805aecebadf3b27991749fcc2e7c79fd8..df62bcdae01bc4c497e2021857428129b1b64515 100644
--- a/ReactiveObjC/UISwitch+RACSignalSupport.m
+++ b/ReactiveObjC/UISwitch+RACSignalSupport.m
@@ -7,7 +7,11 @@
//
#import "UISwitch+RACSignalSupport.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTKeyPathCoding.h"
+#else
#import <ReactiveObjC/EXTKeyPathCoding.h>
+#endif
#import "UIControl+RACSignalSupportPrivate.h"
@implementation UISwitch (RACSignalSupport)
diff --git a/ReactiveObjC/UITextField+RACSignalSupport.m b/ReactiveObjC/UITextField+RACSignalSupport.m
index b02444858f7adc900d02efbeb49c6b9197a31adc..9da162b06d6541c1cb2ac1a8e4606b49df74c968 100644
--- a/ReactiveObjC/UITextField+RACSignalSupport.m
+++ b/ReactiveObjC/UITextField+RACSignalSupport.m
@@ -7,8 +7,16 @@
//
#import "UITextField+RACSignalSupport.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTKeyPathCoding.h"
+#else
#import <ReactiveObjC/EXTKeyPathCoding.h>
+#endif
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTScope.h"
+#else
#import <ReactiveObjC/EXTScope.h>
+#endif
#import "NSObject+RACDeallocating.h"
#import "NSObject+RACDescription.h"
#import "RACSignal+Operations.h"
diff --git a/ReactiveObjC/UITextView+RACSignalSupport.m b/ReactiveObjC/UITextView+RACSignalSupport.m
index d47f6e59c6b070f6b00de294f8dc455726b3a386..9c6c36c6ec9e0a1fcddd5db9ecf62565bb9c5724 100644
--- a/ReactiveObjC/UITextView+RACSignalSupport.m
+++ b/ReactiveObjC/UITextView+RACSignalSupport.m
@@ -7,7 +7,11 @@
//
#import "UITextView+RACSignalSupport.h"
+#if defined(BUILDING_RAC_FRAMEWORK)
+#import "extobjc/EXTScope.h"
+#else
#import <ReactiveObjC/EXTScope.h>
+#endif
#import "NSObject+RACDeallocating.h"
#import "NSObject+RACDescription.h"
#import "RACDelegateProxy.h"

View file

@ -5,5 +5,9 @@
"src/electron/patches/v8": "src/v8", "src/electron/patches/v8": "src/v8",
"src/electron/patches/node": "src/third_party/electron_node" "src/electron/patches/node": "src/third_party/electron_node",
"src/electron/patches/squirrel.mac": "src/third_party/squirrel.mac",
"src/electron/patches/ReactiveObjC": "src/third_party/squirrel.mac/vendor/ReactiveObjC"
} }

View file

@ -0,0 +1,2 @@
build_add_gn_config.patch
fix_ensure_that_self_is_retained_until_the_racsignal_is_complete.patch

View file

@ -0,0 +1,779 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Samuel Attard <samuel.r.attard@gmail.com>
Date: Thu, 25 Jun 2020 14:39:52 -0700
Subject: build: add GN config
Adds BUILD.gn file and upgrades from ReactiveCocoa to ReactiveObjC
diff --git a/.gitignore b/.gitignore
index 89c499e451ecb48655cfd42b01ffa1da56998c2e..98f80aad43a87ed75ca1660ad6a178db9a644a3a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,5 @@
# Xcode
.DS_Store
-build/
*.pbxuser
!default.pbxuser
*.mode1v3
@@ -16,3 +15,4 @@ profile
*.moved-aside
DerivedData
.idea/
+vendor
diff --git a/BUILD.gn b/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..a259f5d9a70686f01b32e08c1d8337c46d3a4704
--- /dev/null
+++ b/BUILD.gn
@@ -0,0 +1,236 @@
+assert(is_mac)
+
+import("//build/config/mac/rules.gni")
+import("build/xcrun.gni")
+import("filenames.gni")
+
+bundle_data("mantle_headers") {
+ sources = []
+ public_deps = []
+ sources += mantle_filenames.headers
+ outputs = [ "{{bundle_contents_dir}}/Headers/{{source_file_part}}" ]
+}
+
+mac_framework_bundle("mantle_framework") {
+ output_name = "Mantle"
+ framework_version = "A"
+ framework_contents = [
+ "Headers",
+ "Resources",
+ ]
+ info_plist = "vendor/Mantle/Mantle/Info.plist"
+ extra_substitutions = [ "CURRENT_PROJECT_VERSION=0.0.0" ]
+
+ configs -= [
+ "//build/config/compiler:chromium_code",
+ "//build/config/gcc:symbol_visibility_hidden",
+ ]
+ configs += [ "//build/config/compiler:no_chromium_code" ]
+ public_deps = [ ":mantle_headers" ]
+ deps = []
+ libs = [
+ "CoreData.framework",
+ "Foundation.framework",
+ ]
+ sources = mantle_filenames.headers + mantle_filenames.sources
+
+ include_dirs = [
+ "vendor/Mantle/Mantle",
+ "vendor/Mantle/Mantle/extobjc",
+ ]
+
+ cflags_objc = [
+ "-fobjc-arc",
+ "-Wno-block-capture-autoreleasing",
+ ]
+
+ ldflags = [ "-Wl,-install_name,@rpath/$output_name.framework/$output_name" ]
+}
+
+dtrace_header_dir = "$target_gen_dir/dtrace"
+
+xcrun_action("reactiveobjc_signalprovider_dtrace") {
+ cmd = "dtrace"
+ inputs = [ "vendor/ReactiveObjC/ReactiveObjC/RACSignalProvider.d" ]
+ outputs = [ "$dtrace_header_dir/RACSignalProvider.h" ]
+ args = [
+ "-h",
+ "-s",
+ ] + rebase_path(inputs) + [ "-o" ] + rebase_path(outputs)
+}
+
+xcrun_action("reactiveobjc_disposableprovider_dtrace") {
+ cmd = "dtrace"
+ inputs =
+ [ "vendor/ReactiveObjC/ReactiveObjC/RACCompoundDisposableProvider.d" ]
+ outputs = [ "$dtrace_header_dir/RACCompoundDisposableProvider.h" ]
+ args = [
+ "-h",
+ "-s",
+ ] + rebase_path(inputs) + [ "-o" ] + rebase_path(outputs)
+}
+
+bundle_data("reactiveobjc_headers") {
+ sources = []
+ public_deps = []
+ sources += reactiveobjc_filenames.public_headers
+ outputs = [ "{{bundle_contents_dir}}/Headers/{{source_file_part}}" ]
+}
+
+mac_framework_bundle("reactiveobjc_framework") {
+ output_name = "ReactiveObjC"
+ framework_version = "A"
+ framework_contents = [
+ "Headers",
+ "Resources",
+ ]
+ info_plist = "vendor/ReactiveObjC/ReactiveObjC/Info.plist"
+ extra_substitutions = [
+ "CURRENT_PROJECT_VERSION=0.0.0",
+ "PRODUCT_BUNDLE_IDENTIFIER=com.electron.reactive",
+ ]
+ defines = [ "BUILDING_RAC_FRAMEWORK=1" ]
+
+ configs -= [
+ "//build/config/compiler:chromium_code",
+ "//build/config/gcc:symbol_visibility_hidden",
+ ]
+ configs += [ "//build/config/compiler:no_chromium_code" ]
+ deps = [
+ ":reactiveobjc_disposableprovider_dtrace",
+ ":reactiveobjc_headers",
+ ":reactiveobjc_headers",
+ ":reactiveobjc_signalprovider_dtrace",
+ ]
+ libs = [
+ "AppKit.framework",
+ "Foundation.framework",
+ ]
+ sources =
+ reactiveobjc_filenames.public_headers +
+ reactiveobjc_filenames.private_headers + reactiveobjc_filenames.sources
+
+ include_dirs = [
+ "vendor/ReactiveObjC/ReactiveObjC",
+ "vendor/ReactiveObjC/ReactiveObjC/extobjc",
+ "$dtrace_header_dir",
+ ]
+
+ cflags_objc = [ "-fobjc-arc" ]
+
+ ldflags = [ "-Wl,-install_name,@rpath/$output_name.framework/$output_name" ]
+}
+
+executable("squirrel_shipit") {
+ output_name = "ShipIt"
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [ "//build/config/compiler:no_chromium_code" ]
+ sources = [
+ "Squirrel/NSBundle+SQRLVersionExtensions.h",
+ "Squirrel/NSBundle+SQRLVersionExtensions.m",
+ "Squirrel/NSError+SQRLVerbosityExtensions.h",
+ "Squirrel/NSError+SQRLVerbosityExtensions.m",
+ "Squirrel/NSProcessInfo+SQRLVersionExtensions.h",
+ "Squirrel/NSProcessInfo+SQRLVersionExtensions.m",
+ "Squirrel/RACSignal+SQRLTransactionExtensions.h",
+ "Squirrel/RACSignal+SQRLTransactionExtensions.m",
+ "Squirrel/SQRLCodeSignature.h",
+ "Squirrel/SQRLCodeSignature.m",
+ "Squirrel/SQRLInstaller+Private.h",
+ "Squirrel/SQRLInstaller.h",
+ "Squirrel/SQRLInstaller.m",
+ "Squirrel/SQRLInstallerOwnedBundle.h",
+ "Squirrel/SQRLInstallerOwnedBundle.m",
+ "Squirrel/SQRLShipItRequest.h",
+ "Squirrel/SQRLShipItRequest.m",
+ "Squirrel/SQRLTerminationListener.h",
+ "Squirrel/SQRLTerminationListener.m",
+ "Squirrel/ShipIt-main.m",
+ ]
+ deps = [
+ ":mantle_framework+link",
+ ":reactiveobjc_framework+link",
+ ]
+ libs = [
+ "AppKit.framework",
+ "Foundation.framework",
+ "IOKit.framework",
+ "Security.framework",
+ ]
+
+ cflags_objc = [
+ "-fobjc-weak",
+ "-Wno-unknown-warning-option",
+ "-Wno-block-capture-autoreleasing",
+ "-fobjc-arc",
+ ]
+
+ ldflags = [
+ "-rpath",
+ "@executable_path/../..",
+ "-rpath",
+ "@executable_path/../../../..",
+ ]
+
+ include_dirs = [ "vendor/ReactiveObjC/ReactiveObjC/extobjc" ]
+}
+
+bundle_data("squirrel_framework_shipit") {
+ sources = []
+ public_deps = [ ":squirrel_shipit" ]
+ sources += [ "$root_out_dir/ShipIt" ]
+ outputs = [ "{{bundle_contents_dir}}/Resources/{{source_file_part}}" ]
+}
+
+bundle_data("squirrel_framework_headers") {
+ sources = []
+ public_deps = []
+ sources += squirrel_filenames.headers
+ outputs = [ "{{bundle_contents_dir}}/Headers/{{source_file_part}}" ]
+}
+
+mac_framework_bundle("squirrel_framework") {
+ output_name = "Squirrel"
+ framework_version = "A"
+ framework_contents = [
+ "Headers",
+ "Resources",
+ ]
+ info_plist = "Squirrel/Squirrel-Info.plist"
+ extra_substitutions = [
+ "CURRENT_PROJECT_VERSION=0.0.0",
+ "PRODUCT_BUNDLE_IDENTIFIER=com.github.Squirrel",
+ ]
+
+ configs -= [
+ "//build/config/compiler:chromium_code",
+ "//build/config/gcc:symbol_visibility_hidden",
+ ]
+ configs += [ "//build/config/compiler:no_chromium_code" ]
+ public_deps = [
+ ":squirrel_framework_headers",
+ ":squirrel_framework_shipit",
+ ]
+ deps = [
+ ":mantle_framework+link",
+ ":reactiveobjc_framework+link",
+ ]
+ libs = [
+ "AppKit.framework",
+ "Foundation.framework",
+ "IOKit.framework",
+ "Security.framework",
+ "ServiceManagement.framework",
+ ]
+ sources = squirrel_filenames.headers + squirrel_filenames.sources
+
+ cflags_objc = [
+ "-fobjc-weak",
+ "-fobjc-arc",
+ "-Wno-block-capture-autoreleasing",
+ ]
+
+ ldflags = [ "-Wl,-install_name,@rpath/$output_name.framework/$output_name" ]
+
+ include_dirs = [ "vendor/ReactiveObjC/ReactiveObjC/extobjc" ]
+}
diff --git a/Squirrel/RACSignal+SQRLTransactionExtensions.h b/Squirrel/RACSignal+SQRLTransactionExtensions.h
index 6b98d968e794d7ef4fc08c898142e03dd08e33b3..63cdfeb963e57fe9c1c25b909e0d396f76143e52 100644
--- a/Squirrel/RACSignal+SQRLTransactionExtensions.h
+++ b/Squirrel/RACSignal+SQRLTransactionExtensions.h
@@ -6,7 +6,7 @@
// Copyright (c) 2013 GitHub. All rights reserved.
//
-#import <ReactiveCocoa/RACSignal.h>
+#import <ReactiveObjC/RACSignal.h>
@interface RACSignal (SQRLTransactionExtensions)
diff --git a/Squirrel/RACSignal+SQRLTransactionExtensions.m b/Squirrel/RACSignal+SQRLTransactionExtensions.m
index 8293acffd9215131839b82824c740d28c44cc995..4636e00cb6ccd6a200295f3bb2758e6f6e6bd2b0 100644
--- a/Squirrel/RACSignal+SQRLTransactionExtensions.m
+++ b/Squirrel/RACSignal+SQRLTransactionExtensions.m
@@ -8,7 +8,7 @@
#import "RACSignal+SQRLTransactionExtensions.h"
-#import <ReactiveCocoa/RACDisposable.h>
+#import <ReactiveObjC/RACDisposable.h>
#import <IOKit/pwr_mgt/IOPMLib.h>
// How long before power assertions time out.
diff --git a/Squirrel/SQRLCodeSignature.m b/Squirrel/SQRLCodeSignature.m
index e42332ab13fb01000c73cf0b3b757d1f7141da6f..f8754dbd6a1490d2b50f1014e2daa5c1f71b2103 100644
--- a/Squirrel/SQRLCodeSignature.m
+++ b/Squirrel/SQRLCodeSignature.m
@@ -10,8 +10,8 @@
#import "EXTKeyPathCoding.h"
#import "EXTScope.h"
-#import <ReactiveCocoa/RACSignal+Operations.h>
-#import <ReactiveCocoa/RACSubscriber.h>
+#import <ReactiveObjC/RACSignal+Operations.h>
+#import <ReactiveObjC/RACSubscriber.h>
#import <Security/Security.h>
NSString * const SQRLCodeSignatureErrorDomain = @"SQRLCodeSignatureErrorDomain";
diff --git a/Squirrel/SQRLDirectoryManager.m b/Squirrel/SQRLDirectoryManager.m
index 34f321077f0bf59de98a41dea2cea95eff72486d..200891ca73ac67754219204340881ef85aff4845 100644
--- a/Squirrel/SQRLDirectoryManager.m
+++ b/Squirrel/SQRLDirectoryManager.m
@@ -8,7 +8,7 @@
#import "SQRLDirectoryManager.h"
-#import <ReactiveCocoa/RACSignal+Operations.h>
+#import <ReactiveObjC/RACSignal+Operations.h>
@implementation SQRLDirectoryManager
diff --git a/Squirrel/SQRLDownloadedUpdate.m b/Squirrel/SQRLDownloadedUpdate.m
index 43c64f14d4bcd1760b68ef307b90a0fac12a3c26..038b24c25f3fc90a77b7813c66064bb3c605c6a2 100644
--- a/Squirrel/SQRLDownloadedUpdate.m
+++ b/Squirrel/SQRLDownloadedUpdate.m
@@ -7,7 +7,7 @@
//
#import "SQRLDownloadedUpdate.h"
-#import <ReactiveCocoa/ReactiveCocoa.h>
+#import <ReactiveObjC/ReactiveObjC.h>
@interface SQRLDownloadedUpdate ()
diff --git a/Squirrel/SQRLInstaller.m b/Squirrel/SQRLInstaller.m
index 9c4f6155fdc48e54190f189f005db25b34e8b5d4..7dd98ddee4ae0f4e01fd7aaa3486083bff7d0da1 100644
--- a/Squirrel/SQRLInstaller.m
+++ b/Squirrel/SQRLInstaller.m
@@ -9,13 +9,13 @@
#import "SQRLInstaller.h"
#import <libkern/OSAtomic.h>
-#import "EXTScope.h"
-#import <ReactiveCocoa/NSEnumerator+RACSequenceAdditions.h>
-#import <ReactiveCocoa/NSObject+RACPropertySubscribing.h>
-#import <ReactiveCocoa/RACCommand.h>
-#import <ReactiveCocoa/RACSequence.h>
-#import <ReactiveCocoa/RACSignal+Operations.h>
-#import <ReactiveCocoa/RACSubscriber.h>
+#import <ReactiveObjC/EXTScope.h>
+#import <ReactiveObjC/NSEnumerator+RACSequenceAdditions.h>
+#import <ReactiveObjC/NSObject+RACPropertySubscribing.h>
+#import <ReactiveObjC/RACCommand.h>
+#import <ReactiveObjC/RACSequence.h>
+#import <ReactiveObjC/RACSignal+Operations.h>
+#import <ReactiveObjC/RACSubscriber.h>
#import <sys/xattr.h>
#import "NSBundle+SQRLVersionExtensions.h"
diff --git a/Squirrel/SQRLShipItLauncher.m b/Squirrel/SQRLShipItLauncher.m
index 2870f52510ec0993e84c6508f8e67912928b7e57..6a9151d92f399184fff9854eb00ea506165bbbe2 100644
--- a/Squirrel/SQRLShipItLauncher.m
+++ b/Squirrel/SQRLShipItLauncher.m
@@ -7,9 +7,9 @@
//
#import "SQRLShipItLauncher.h"
-#import "EXTScope.h"
+#import <ReactiveObjC/EXTScope.h>
#import "SQRLDirectoryManager.h"
-#import <ReactiveCocoa/ReactiveCocoa.h>
+#import <ReactiveObjC/ReactiveObjC.h>
#import <Security/Security.h>
#import <ServiceManagement/ServiceManagement.h>
#import <launch.h>
diff --git a/Squirrel/SQRLShipItRequest.m b/Squirrel/SQRLShipItRequest.m
index f6fd03cdbe2651c52db4cae05a442e4e53b837bf..726f91d01524e3812cb3a769db2416f6638dbca6 100644
--- a/Squirrel/SQRLShipItRequest.m
+++ b/Squirrel/SQRLShipItRequest.m
@@ -9,7 +9,7 @@
#import "SQRLShipItRequest.h"
#import "EXTKeyPathCoding.h"
-#import <ReactiveCocoa/RACSignal+Operations.h>
+#import <ReactiveObjC/RACSignal+Operations.h>
NSString * const SQRLShipItRequestErrorDomain = @"SQRLShipItRequestErrorDomain";
diff --git a/Squirrel/SQRLTerminationListener.m b/Squirrel/SQRLTerminationListener.m
index d75970e19cdb661d359d077b657118da26bc336a..4ded7ebbd0cd63c1e3f319f23e0b51e03d4fd5ca 100644
--- a/Squirrel/SQRLTerminationListener.m
+++ b/Squirrel/SQRLTerminationListener.m
@@ -9,12 +9,12 @@
#import "SQRLTerminationListener.h"
#import "EXTKeyPathCoding.h"
-#import <ReactiveCocoa/NSArray+RACSequenceAdditions.h>
-#import <ReactiveCocoa/RACDisposable.h>
-#import <ReactiveCocoa/RACScheduler.h>
-#import <ReactiveCocoa/RACSequence.h>
-#import <ReactiveCocoa/RACSignal+Operations.h>
-#import <ReactiveCocoa/RACSubscriber.h>
+#import <ReactiveObjC/NSArray+RACSequenceAdditions.h>
+#import <ReactiveObjC/RACDisposable.h>
+#import <ReactiveObjC/RACScheduler.h>
+#import <ReactiveObjC/RACSequence.h>
+#import <ReactiveObjC/RACSignal+Operations.h>
+#import <ReactiveObjC/RACSubscriber.h>
@interface SQRLTerminationListener ()
diff --git a/Squirrel/SQRLUpdate.m b/Squirrel/SQRLUpdate.m
index 16ad4b6ef995e918d301cb36eda5f1f3aed86105..72ad3a3dee50c2832dd0e6063767e2ffe3cd21f5 100644
--- a/Squirrel/SQRLUpdate.m
+++ b/Squirrel/SQRLUpdate.m
@@ -7,7 +7,7 @@
//
#import "SQRLUpdate.h"
-#import <ReactiveCocoa/ReactiveCocoa.h>
+#import <ReactiveObjC/ReactiveObjC.h>
NSString * const SQRLUpdateJSONURLKey = @"url";
NSString * const SQRLUpdateJSONReleaseNotesKey = @"notes";
diff --git a/Squirrel/SQRLUpdater.h b/Squirrel/SQRLUpdater.h
index 4ca4a1241e9e6fd027ed35ea147feb05b9e18914..b3526b246b3729a7556ca0ec348fdc08825c89ed 100644
--- a/Squirrel/SQRLUpdater.h
+++ b/Squirrel/SQRLUpdater.h
@@ -7,7 +7,7 @@
//
#import <Foundation/Foundation.h>
-#import <ReactiveCocoa/ReactiveCocoa.h>
+#import <ReactiveObjC/ReactiveObjC.h>
// Represents the current state of the updater.
//
diff --git a/Squirrel/SQRLUpdater.m b/Squirrel/SQRLUpdater.m
index 85073b2f5d58d3e071fb6ef30598973b4d00eda8..c81c820d61da3c7d1cfd2c516147c954a5773a0c 100644
--- a/Squirrel/SQRLUpdater.m
+++ b/Squirrel/SQRLUpdater.m
@@ -18,8 +18,8 @@
#import "SQRLUpdate.h"
#import "SQRLZipArchiver.h"
#import "SQRLShipItRequest.h"
-#import <ReactiveCocoa/EXTScope.h>
-#import <ReactiveCocoa/ReactiveCocoa.h>
+#import <ReactiveObjC/EXTScope.h>
+#import <ReactiveObjC/ReactiveObjC.h>
#import <sys/mount.h>
NSString * const SQRLUpdaterErrorDomain = @"SQRLUpdaterErrorDomain";
diff --git a/Squirrel/SQRLZipArchiver.m b/Squirrel/SQRLZipArchiver.m
index f84127f642516078249925953e97621909265deb..478509cdd528db4fcfa340c6f93fa58a446957e6 100644
--- a/Squirrel/SQRLZipArchiver.m
+++ b/Squirrel/SQRLZipArchiver.m
@@ -7,8 +7,8 @@
//
#import "SQRLZipArchiver.h"
-#import <ReactiveCocoa/EXTScope.h>
-#import <ReactiveCocoa/ReactiveCocoa.h>
+#import <ReactiveObjC/EXTScope.h>
+#import <ReactiveObjC/ReactiveObjC.h>
NSString * const SQRLZipArchiverErrorDomain = @"SQRLZipArchiverErrorDomain";
NSString * const SQRLZipArchiverExitCodeErrorKey = @"SQRLZipArchiverExitCodeErrorKey";
diff --git a/Squirrel/ShipIt-main.m b/Squirrel/ShipIt-main.m
index 9db530f3642585154057143d590bb393b86dc063..b6047ea61a71b7f8c7b4d33e47adc23e2baadcee 100644
--- a/Squirrel/ShipIt-main.m
+++ b/Squirrel/ShipIt-main.m
@@ -8,10 +8,10 @@
#import <Foundation/Foundation.h>
-#import "EXTScope.h"
-#import <ReactiveCocoa/RACCommand.h>
-#import <ReactiveCocoa/RACSignal+Operations.h>
-#import <ReactiveCocoa/RACScheduler.h>
+#import <ReactiveObjC/EXTScope.h>
+#import <ReactiveObjC/RACCommand.h>
+#import <ReactiveObjC/RACSignal+Operations.h>
+#import <ReactiveObjC/RACScheduler.h>
#import "NSError+SQRLVerbosityExtensions.h"
#import "RACSignal+SQRLTransactionExtensions.h"
diff --git a/build/xcrun.gni b/build/xcrun.gni
new file mode 100644
index 0000000000000000000000000000000000000000..bdfaf95f3eca65b3e0831db1b66f651dfb3c1c67
--- /dev/null
+++ b/build/xcrun.gni
@@ -0,0 +1,18 @@
+template("xcrun_action") {
+ assert(defined(invoker.cmd), "Need cmd name to run")
+ assert(defined(invoker.args), "Need cmd argumets")
+ assert(defined(invoker.inputs), "Need inputs")
+ assert(defined(invoker.outputs), "Need outputs")
+
+ action(target_name) {
+ forward_variables_from(invoker,
+ [
+ "deps",
+ "public_deps",
+ "inputs",
+ "outputs",
+ ])
+ script = "//third_party/squirrel.mac/build/xcrun.py"
+ args = [ invoker.cmd ] + invoker.args
+ }
+}
diff --git a/build/xcrun.py b/build/xcrun.py
new file mode 100644
index 0000000000000000000000000000000000000000..20d0cdb51cc933f56b7a7193c195457e82500870
--- /dev/null
+++ b/build/xcrun.py
@@ -0,0 +1,14 @@
+#!/usr/bin/env python
+from __future__ import print_function
+import os
+import subprocess
+import sys
+
+SOURCE_ROOT = os.path.dirname(os.path.dirname(__file__))
+cmd = "xcrun"
+args = [cmd] + sys.argv[1:]
+try:
+ subprocess.check_output(args, stderr=subprocess.STDOUT)
+except subprocess.CalledProcessError as e:
+ print("xcrun script '" + sys.argv[2] + "' failed with code '" + str(e.returncode) + "':\n" + e.output)
+ sys.exit(e.returncode)
diff --git a/filenames.gni b/filenames.gni
new file mode 100644
index 0000000000000000000000000000000000000000..3c224342a31f52fa2ba432983291340767d60ff7
--- /dev/null
+++ b/filenames.gni
@@ -0,0 +1,245 @@
+squirrel_filenames = {
+ headers = [
+ "Squirrel/NSBundle+SQRLVersionExtensions.h",
+ "Squirrel/NSError+SQRLVerbosityExtensions.h",
+ "Squirrel/NSProcessInfo+SQRLVersionExtensions.h",
+ "Squirrel/RACSignal+SQRLTransactionExtensions.h",
+ "Squirrel/SQRLAuthorization.h",
+ "Squirrel/SQRLCodeSignature.h",
+ "Squirrel/SQRLDirectoryManager.h",
+ "Squirrel/SQRLDownloadedUpdate.h",
+ "Squirrel/SQRLShipItLauncher.h",
+ "Squirrel/SQRLShipItRequest.h",
+ "Squirrel/SQRLUpdate.h",
+ "Squirrel/SQRLUpdater.h",
+ "Squirrel/SQRLZipArchiver.h",
+ "Squirrel/Squirrel.h",
+ ]
+
+ sources = [
+ "Squirrel/NSBundle+SQRLVersionExtensions.m",
+ "Squirrel/NSError+SQRLVerbosityExtensions.m",
+ "Squirrel/NSProcessInfo+SQRLVersionExtensions.m",
+ "Squirrel/RACSignal+SQRLTransactionExtensions.m",
+ "Squirrel/SQRLAuthorization.m",
+ "Squirrel/SQRLCodeSignature.m",
+ "Squirrel/SQRLDirectoryManager.m",
+ "Squirrel/SQRLDownloadedUpdate.h",
+ "Squirrel/SQRLDownloadedUpdate.m",
+ "Squirrel/SQRLShipItLauncher.h",
+ "Squirrel/SQRLShipItLauncher.m",
+ "Squirrel/SQRLShipItRequest.h",
+ "Squirrel/SQRLShipItRequest.m",
+ "Squirrel/SQRLUpdate.h",
+ "Squirrel/SQRLUpdate.m",
+ "Squirrel/SQRLUpdater.h",
+ "Squirrel/SQRLUpdater.m",
+ "Squirrel/SQRLZipArchiver.h",
+ "Squirrel/SQRLZipArchiver.m",
+ "Squirrel/Squirrel.h",
+ ]
+}
+
+mantle_filenames = {
+ headers = [
+ "vendor/Mantle/Mantle/MTLJSONAdapter.h",
+ "vendor/Mantle/Mantle/MTLManagedObjectAdapter.h",
+ "vendor/Mantle/Mantle/MTLModel+NSCoding.h",
+ "vendor/Mantle/Mantle/MTLModel.h",
+ "vendor/Mantle/Mantle/MTLReflection.h",
+ "vendor/Mantle/Mantle/MTLValueTransformer.h",
+ "vendor/Mantle/Mantle/Mantle.h",
+ "vendor/Mantle/Mantle/NSArray+MTLManipulationAdditions.h",
+ "vendor/Mantle/Mantle/NSDictionary+MTLManipulationAdditions.h",
+ "vendor/Mantle/Mantle/NSError+MTLModelException.h",
+ "vendor/Mantle/Mantle/NSObject+MTLComparisonAdditions.h",
+ "vendor/Mantle/Mantle/NSValueTransformer+MTLInversionAdditions.h",
+ "vendor/Mantle/Mantle/NSValueTransformer+MTLPredefinedTransformerAdditions.h",
+ "vendor/Mantle/Mantle/extobjc/MTLEXTKeyPathCoding.h",
+ "vendor/Mantle/Mantle/extobjc/MTLEXTRuntimeExtensions.h",
+ "vendor/Mantle/Mantle/extobjc/MTLEXTScope.h",
+ "vendor/Mantle/Mantle/extobjc/metamacros.h",
+ ]
+
+ sources = [
+ "vendor/Mantle/Mantle/MTLJSONAdapter.m",
+ "vendor/Mantle/Mantle/MTLManagedObjectAdapter.m",
+ "vendor/Mantle/Mantle/MTLModel+NSCoding.m",
+ "vendor/Mantle/Mantle/MTLModel.m",
+ "vendor/Mantle/Mantle/MTLReflection.m",
+ "vendor/Mantle/Mantle/MTLValueTransformer.m",
+ "vendor/Mantle/Mantle/NSArray+MTLManipulationAdditions.m",
+ "vendor/Mantle/Mantle/NSDictionary+MTLManipulationAdditions.m",
+ "vendor/Mantle/Mantle/NSError+MTLModelException.m",
+ "vendor/Mantle/Mantle/NSObject+MTLComparisonAdditions.m",
+ "vendor/Mantle/Mantle/NSValueTransformer+MTLInversionAdditions.m",
+ "vendor/Mantle/Mantle/NSValueTransformer+MTLPredefinedTransformerAdditions.m",
+ "vendor/Mantle/Mantle/extobjc/MTLEXTRuntimeExtensions.m",
+ "vendor/Mantle/Mantle/extobjc/MTLEXTScope.m",
+ ]
+}
+
+reactiveobjc_filenames = {
+ public_headers = [
+ "vendor/ReactiveObjC/ReactiveObjC/NSArray+RACSequenceAdditions.h",
+ "vendor/ReactiveObjC/ReactiveObjC/NSControl+RACCommandSupport.h",
+ "vendor/ReactiveObjC/ReactiveObjC/NSControl+RACTextSignalSupport.h",
+ "vendor/ReactiveObjC/ReactiveObjC/NSData+RACSupport.h",
+ "vendor/ReactiveObjC/ReactiveObjC/NSDictionary+RACSequenceAdditions.h",
+ "vendor/ReactiveObjC/ReactiveObjC/NSEnumerator+RACSequenceAdditions.h",
+ "vendor/ReactiveObjC/ReactiveObjC/NSFileHandle+RACSupport.h",
+ "vendor/ReactiveObjC/ReactiveObjC/NSIndexSet+RACSequenceAdditions.h",
+ "vendor/ReactiveObjC/ReactiveObjC/NSInvocation+RACTypeParsing.h",
+ "vendor/ReactiveObjC/ReactiveObjC/NSNotificationCenter+RACSupport.h",
+ "vendor/ReactiveObjC/ReactiveObjC/NSObject+RACAppKitBindings.h",
+ "vendor/ReactiveObjC/ReactiveObjC/NSObject+RACDeallocating.h",
+ "vendor/ReactiveObjC/ReactiveObjC/NSObject+RACDescription.h",
+ "vendor/ReactiveObjC/ReactiveObjC/NSObject+RACKVOWrapper.h",
+ "vendor/ReactiveObjC/ReactiveObjC/NSObject+RACLifting.h",
+ "vendor/ReactiveObjC/ReactiveObjC/NSObject+RACPropertySubscribing.h",
+ "vendor/ReactiveObjC/ReactiveObjC/NSObject+RACSelectorSignal.h",
+ "vendor/ReactiveObjC/ReactiveObjC/NSOrderedSet+RACSequenceAdditions.h",
+ "vendor/ReactiveObjC/ReactiveObjC/NSSet+RACSequenceAdditions.h",
+ "vendor/ReactiveObjC/ReactiveObjC/NSString+RACKeyPathUtilities.h",
+ "vendor/ReactiveObjC/ReactiveObjC/NSString+RACSequenceAdditions.h",
+ "vendor/ReactiveObjC/ReactiveObjC/NSString+RACSupport.h",
+ "vendor/ReactiveObjC/ReactiveObjC/NSText+RACSignalSupport.h",
+ "vendor/ReactiveObjC/ReactiveObjC/NSURLConnection+RACSupport.h",
+ "vendor/ReactiveObjC/ReactiveObjC/NSUserDefaults+RACSupport.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACAnnotations.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACArraySequence.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACBehaviorSubject.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACBlockTrampoline.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACChannel.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACCommand.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACCompoundDisposable.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACDelegateProxy.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACDisposable.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACDynamicSequence.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACDynamicSignal.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACEagerSequence.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACEmptySequence.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACEmptySignal.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACErrorSignal.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACEvent.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACGroupedSignal.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACImmediateScheduler.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACIndexSetSequence.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACKVOChannel.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACKVOProxy.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACKVOTrampoline.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACMulticastConnection+Private.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACMulticastConnection.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACPassthroughSubscriber.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACQueueScheduler+Subclass.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACQueueScheduler.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACReplaySubject.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACReturnSignal.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACScheduler+Private.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACScheduler+Subclass.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACScheduler.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACScopedDisposable.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACSequence.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACSerialDisposable.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACSignal+Operations.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACSignal.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACSignalSequence.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACStream+Private.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACStream.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACStringSequence.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACSubject.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACSubscriber+Private.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACSubscriber.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACSubscriptingAssignmentTrampoline.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACSubscriptionScheduler.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACTargetQueueScheduler.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACTestScheduler.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACTuple.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACTupleSequence.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACUnarySequence.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACUnit.h",
+ "vendor/ReactiveObjC/ReactiveObjC/RACValueTransformer.h",
+ "vendor/ReactiveObjC/ReactiveObjC/ReactiveObjC.h",
+ "vendor/ReactiveObjC/ReactiveObjC/extobjc/EXTKeyPathCoding.h",
+ "vendor/ReactiveObjC/ReactiveObjC/extobjc/EXTRuntimeExtensions.h",
+ "vendor/ReactiveObjC/ReactiveObjC/extobjc/EXTScope.h",
+ "vendor/ReactiveObjC/ReactiveObjC/extobjc/metamacros.h",
+ ]
+
+ private_headers = []
+
+ sources = [
+ "vendor/ReactiveObjC/ReactiveObjC/NSArray+RACSequenceAdditions.m",
+ "vendor/ReactiveObjC/ReactiveObjC/NSControl+RACCommandSupport.m",
+ "vendor/ReactiveObjC/ReactiveObjC/NSControl+RACTextSignalSupport.m",
+ "vendor/ReactiveObjC/ReactiveObjC/NSData+RACSupport.m",
+ "vendor/ReactiveObjC/ReactiveObjC/NSDictionary+RACSequenceAdditions.m",
+ "vendor/ReactiveObjC/ReactiveObjC/NSEnumerator+RACSequenceAdditions.m",
+ "vendor/ReactiveObjC/ReactiveObjC/NSFileHandle+RACSupport.m",
+ "vendor/ReactiveObjC/ReactiveObjC/NSIndexSet+RACSequenceAdditions.m",
+ "vendor/ReactiveObjC/ReactiveObjC/NSInvocation+RACTypeParsing.m",
+ "vendor/ReactiveObjC/ReactiveObjC/NSNotificationCenter+RACSupport.m",
+ "vendor/ReactiveObjC/ReactiveObjC/NSObject+RACAppKitBindings.m",
+ "vendor/ReactiveObjC/ReactiveObjC/NSObject+RACDeallocating.m",
+ "vendor/ReactiveObjC/ReactiveObjC/NSObject+RACDescription.m",
+ "vendor/ReactiveObjC/ReactiveObjC/NSObject+RACKVOWrapper.m",
+ "vendor/ReactiveObjC/ReactiveObjC/NSObject+RACLifting.m",
+ "vendor/ReactiveObjC/ReactiveObjC/NSObject+RACPropertySubscribing.m",
+ "vendor/ReactiveObjC/ReactiveObjC/NSObject+RACSelectorSignal.m",
+ "vendor/ReactiveObjC/ReactiveObjC/NSOrderedSet+RACSequenceAdditions.m",
+ "vendor/ReactiveObjC/ReactiveObjC/NSSet+RACSequenceAdditions.m",
+ "vendor/ReactiveObjC/ReactiveObjC/NSString+RACKeyPathUtilities.m",
+ "vendor/ReactiveObjC/ReactiveObjC/NSString+RACSequenceAdditions.m",
+ "vendor/ReactiveObjC/ReactiveObjC/NSString+RACSupport.m",
+ "vendor/ReactiveObjC/ReactiveObjC/NSText+RACSignalSupport.m",
+ "vendor/ReactiveObjC/ReactiveObjC/NSURLConnection+RACSupport.m",
+ "vendor/ReactiveObjC/ReactiveObjC/NSUserDefaults+RACSupport.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACArraySequence.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACBehaviorSubject.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACBlockTrampoline.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACChannel.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACCommand.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACCompoundDisposable.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACDelegateProxy.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACDisposable.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACDynamicSequence.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACDynamicSignal.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACEagerSequence.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACEmptySequence.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACEmptySignal.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACErrorSignal.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACEvent.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACGroupedSignal.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACImmediateScheduler.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACIndexSetSequence.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACKVOChannel.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACKVOProxy.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACKVOTrampoline.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACMulticastConnection.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACPassthroughSubscriber.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACQueueScheduler.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACReplaySubject.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACReturnSignal.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACScheduler.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACScopedDisposable.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACSequence.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACSerialDisposable.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACSignal+Operations.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACSignal.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACSignalSequence.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACStream.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACStringSequence.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACSubject.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACSubscriber.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACSubscriptingAssignmentTrampoline.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACSubscriptionScheduler.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACTargetQueueScheduler.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACTestScheduler.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACTuple.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACTupleSequence.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACUnarySequence.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACUnit.m",
+ "vendor/ReactiveObjC/ReactiveObjC/RACValueTransformer.m",
+ "vendor/ReactiveObjC/ReactiveObjC/extobjc/EXTRuntimeExtensions.m",
+ ]
+}

View file

@ -0,0 +1,20 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Samuel Attard <samuel.r.attard@gmail.com>
Date: Tue, 30 Jun 2020 15:38:50 -0700
Subject: fix: ensure that self is retained until the RACSignal is complete
Looks like the clang that Chromium uses is slightly smarter with ARC than whatever Squirrel was built with previously. We now need to keep a reference to self to keep it alive into the "then" of the RACSignal.
diff --git a/Squirrel/SQRLZipArchiver.m b/Squirrel/SQRLZipArchiver.m
index 478509cdd528db4fcfa340c6f93fa58a446957e6..7c279bf73c368453bff4f922d76908c06dc378cd 100644
--- a/Squirrel/SQRLZipArchiver.m
+++ b/Squirrel/SQRLZipArchiver.m
@@ -134,7 +134,7 @@ const NSInteger SQRLZipArchiverShellTaskFailed = 1;
return [RACSignal
zip:@[ self.taskTerminated, self.standardErrorData ]
reduce:^(NSNumber *exitStatus, NSData *errorData) {
- if (exitStatus.intValue == 0) return [RACSignal empty];
+ if (exitStatus.intValue == 0) return [RACSignal return:self];
NSMutableDictionary *userInfo = [NSMutableDictionary dictionary];
userInfo[SQRLZipArchiverExitCodeErrorKey] = exitStatus;

View file

@ -1,21 +1,6 @@
{ {
"baseUrl": "https://electron-build-tools.s3-us-west-2.amazonaws.com/build-dependencies", "baseUrl": "https://electron-build-tools.s3-us-west-2.amazonaws.com/build-dependencies",
"files": [ "files": [
{
"name": "Mantle.zip",
"platform": "darwin",
"sha": "f9865e115c03871b45d3a2d8734220cb147a02dace46c92f766ca5d3059281dd"
},
{
"name": "ReactiveCocoa.zip",
"platform": "darwin",
"sha": "8ae85cd226fa4076472bfdfcda4745b5c7edf31fbe695868068eeaf62e7fa962"
},
{
"name": "Squirrel.zip",
"platform": "darwin",
"sha": "e516fd5c24c0ad267fd854848b04be0552be977aa846fa7f3c65ef4618699511"
},
{ {
"name": "sccache-darwin-x64.zip", "name": "sccache-darwin-x64.zip",
"platform": "darwin", "platform": "darwin",

View file

@ -159,113 +159,28 @@ Electron.app/Contents/Frameworks/Electron Helper (Renderer).app/Contents/MacOS/
Electron.app/Contents/Frameworks/Electron Helper (Renderer).app/Contents/MacOS/Electron Helper (Renderer) Electron.app/Contents/Frameworks/Electron Helper (Renderer).app/Contents/MacOS/Electron Helper (Renderer)
Electron.app/Contents/Frameworks/Electron Helper (Renderer).app/Contents/PkgInfo Electron.app/Contents/Frameworks/Electron Helper (Renderer).app/Contents/PkgInfo
Electron.app/Contents/Frameworks/Mantle.framework/ Electron.app/Contents/Frameworks/Mantle.framework/
Electron.app/Contents/Frameworks/Mantle.framework/Headers
Electron.app/Contents/Frameworks/Mantle.framework/Mantle Electron.app/Contents/Frameworks/Mantle.framework/Mantle
Electron.app/Contents/Frameworks/Mantle.framework/Modules
Electron.app/Contents/Frameworks/Mantle.framework/Resources Electron.app/Contents/Frameworks/Mantle.framework/Resources
Electron.app/Contents/Frameworks/Mantle.framework/Versions/ Electron.app/Contents/Frameworks/Mantle.framework/Versions/
Electron.app/Contents/Frameworks/Mantle.framework/Versions/A/ Electron.app/Contents/Frameworks/Mantle.framework/Versions/A/
Electron.app/Contents/Frameworks/Mantle.framework/Versions/A/Headers/
Electron.app/Contents/Frameworks/Mantle.framework/Versions/A/Headers/MTLJSONAdapter.h
Electron.app/Contents/Frameworks/Mantle.framework/Versions/A/Headers/MTLManagedObjectAdapter.h
Electron.app/Contents/Frameworks/Mantle.framework/Versions/A/Headers/MTLModel+NSCoding.h
Electron.app/Contents/Frameworks/Mantle.framework/Versions/A/Headers/MTLModel.h
Electron.app/Contents/Frameworks/Mantle.framework/Versions/A/Headers/MTLValueTransformer.h
Electron.app/Contents/Frameworks/Mantle.framework/Versions/A/Headers/Mantle.h
Electron.app/Contents/Frameworks/Mantle.framework/Versions/A/Headers/NSArray+MTLManipulationAdditions.h
Electron.app/Contents/Frameworks/Mantle.framework/Versions/A/Headers/NSDictionary+MTLManipulationAdditions.h
Electron.app/Contents/Frameworks/Mantle.framework/Versions/A/Headers/NSObject+MTLComparisonAdditions.h
Electron.app/Contents/Frameworks/Mantle.framework/Versions/A/Headers/NSValueTransformer+MTLInversionAdditions.h
Electron.app/Contents/Frameworks/Mantle.framework/Versions/A/Headers/NSValueTransformer+MTLPredefinedTransformerAdditions.h
Electron.app/Contents/Frameworks/Mantle.framework/Versions/A/Mantle Electron.app/Contents/Frameworks/Mantle.framework/Versions/A/Mantle
Electron.app/Contents/Frameworks/Mantle.framework/Versions/A/Modules/
Electron.app/Contents/Frameworks/Mantle.framework/Versions/A/Modules/module.modulemap
Electron.app/Contents/Frameworks/Mantle.framework/Versions/A/Resources/ Electron.app/Contents/Frameworks/Mantle.framework/Versions/A/Resources/
Electron.app/Contents/Frameworks/Mantle.framework/Versions/A/Resources/Info.plist Electron.app/Contents/Frameworks/Mantle.framework/Versions/A/Resources/Info.plist
Electron.app/Contents/Frameworks/Mantle.framework/Versions/Current Electron.app/Contents/Frameworks/Mantle.framework/Versions/Current
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/ Electron.app/Contents/Frameworks/ReactiveObjC.framework/
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Headers Electron.app/Contents/Frameworks/ReactiveObjC.framework/ReactiveObjC
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Modules Electron.app/Contents/Frameworks/ReactiveObjC.framework/Resources
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/ReactiveCocoa Electron.app/Contents/Frameworks/ReactiveObjC.framework/Versions/
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Resources Electron.app/Contents/Frameworks/ReactiveObjC.framework/Versions/A/
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/ Electron.app/Contents/Frameworks/ReactiveObjC.framework/Versions/A/ReactiveObjC
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/ Electron.app/Contents/Frameworks/ReactiveObjC.framework/Versions/A/Resources/
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/ Electron.app/Contents/Frameworks/ReactiveObjC.framework/Versions/A/Resources/Info.plist
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/EXTKeyPathCoding.h Electron.app/Contents/Frameworks/ReactiveObjC.framework/Versions/Current
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/EXTScope.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSArray+RACSequenceAdditions.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSControl+RACCommandSupport.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSControl+RACTextSignalSupport.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSData+RACSupport.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSDictionary+RACSequenceAdditions.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSEnumerator+RACSequenceAdditions.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSFileHandle+RACSupport.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSIndexSet+RACSequenceAdditions.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSNotificationCenter+RACSupport.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSObject+RACAppKitBindings.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSObject+RACDeallocating.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSObject+RACLifting.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSObject+RACPropertySubscribing.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSObject+RACSelectorSignal.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSOrderedSet+RACSequenceAdditions.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSSet+RACSequenceAdditions.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSString+RACSequenceAdditions.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSString+RACSupport.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSText+RACSignalSupport.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSURLConnection+RACSupport.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/NSUserDefaults+RACSupport.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACBacktrace.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACBehaviorSubject.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACChannel.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACCommand.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACCompoundDisposable.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACDisposable.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACEvent.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACGroupedSignal.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACKVOChannel.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACMulticastConnection.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACQueueScheduler+Subclass.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACQueueScheduler.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACReplaySubject.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACScheduler+Subclass.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACScheduler.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACScopedDisposable.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACSequence.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACSerialDisposable.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACSignal+Operations.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACSignal.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACStream.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACSubject.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACSubscriber.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACSubscriptingAssignmentTrampoline.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACTargetQueueScheduler.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACTestScheduler.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACTuple.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/RACUnit.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/ReactiveCocoa.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Headers/metamacros.h
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Modules/
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Modules/module.modulemap
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/ReactiveCocoa
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Resources/
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/A/Resources/Info.plist
Electron.app/Contents/Frameworks/ReactiveCocoa.framework/Versions/Current
Electron.app/Contents/Frameworks/Squirrel.framework/ Electron.app/Contents/Frameworks/Squirrel.framework/
Electron.app/Contents/Frameworks/Squirrel.framework/Headers
Electron.app/Contents/Frameworks/Squirrel.framework/Modules
Electron.app/Contents/Frameworks/Squirrel.framework/Resources Electron.app/Contents/Frameworks/Squirrel.framework/Resources
Electron.app/Contents/Frameworks/Squirrel.framework/Squirrel Electron.app/Contents/Frameworks/Squirrel.framework/Squirrel
Electron.app/Contents/Frameworks/Squirrel.framework/Versions/ Electron.app/Contents/Frameworks/Squirrel.framework/Versions/
Electron.app/Contents/Frameworks/Squirrel.framework/Versions/A/ Electron.app/Contents/Frameworks/Squirrel.framework/Versions/A/
Electron.app/Contents/Frameworks/Squirrel.framework/Versions/A/Headers/
Electron.app/Contents/Frameworks/Squirrel.framework/Versions/A/Headers/NSBundle+SQRLVersionExtensions.h
Electron.app/Contents/Frameworks/Squirrel.framework/Versions/A/Headers/NSProcessInfo+SQRLVersionExtensions.h
Electron.app/Contents/Frameworks/Squirrel.framework/Versions/A/Headers/SQRLDownloadedUpdate.h
Electron.app/Contents/Frameworks/Squirrel.framework/Versions/A/Headers/SQRLUpdate.h
Electron.app/Contents/Frameworks/Squirrel.framework/Versions/A/Headers/SQRLUpdater.h
Electron.app/Contents/Frameworks/Squirrel.framework/Versions/A/Headers/Squirrel.h
Electron.app/Contents/Frameworks/Squirrel.framework/Versions/A/Modules/
Electron.app/Contents/Frameworks/Squirrel.framework/Versions/A/Modules/module.modulemap
Electron.app/Contents/Frameworks/Squirrel.framework/Versions/A/Resources/ Electron.app/Contents/Frameworks/Squirrel.framework/Versions/A/Resources/
Electron.app/Contents/Frameworks/Squirrel.framework/Versions/A/Resources/Info.plist Electron.app/Contents/Frameworks/Squirrel.framework/Versions/A/Resources/Info.plist
Electron.app/Contents/Frameworks/Squirrel.framework/Versions/A/Resources/ShipIt Electron.app/Contents/Frameworks/Squirrel.framework/Versions/A/Resources/ShipIt

View file

@ -6,9 +6,9 @@
#include <string> #include <string>
#import <ReactiveCocoa/NSObject+RACPropertySubscribing.h> #import <ReactiveObjC/NSObject+RACPropertySubscribing.h>
#import <ReactiveCocoa/RACCommand.h> #import <ReactiveObjC/RACCommand.h>
#import <ReactiveCocoa/RACSignal.h> #import <ReactiveObjC/RACSignal.h>
#import <Squirrel/Squirrel.h> #import <Squirrel/Squirrel.h>
#include "base/bind.h" #include "base/bind.h"