From 2b01ecad59a27fb8a756f11b54efe473d0ba24e9 Mon Sep 17 00:00:00 2001 From: James Ide Date: Tue, 17 Feb 2015 00:34:01 -0800 Subject: [PATCH] [Headers] Add an umbrella header for the library The umbrella header allows projects that link React Native using CocoaPods to import it in standard fashion: `#import `. Only some headers are included based on what I've found to be useful. Generated with `scripts/generate-umbrella-header.sh`, which is a script that scans the Base and Executors directories for all headers and also includes some handpicked Views headers as well. --- React/React.h | 49 +++++++++++++++++++++++++++ React/React.xcodeproj/project.pbxproj | 2 ++ scripts/generate-umbrella-header.sh | 49 +++++++++++++++++++++++++++ 3 files changed, 100 insertions(+) create mode 100644 React/React.h create mode 100755 scripts/generate-umbrella-header.sh diff --git a/React/React.h b/React/React.h new file mode 100644 index 00000000000000..a35e2900f113f4 --- /dev/null +++ b/React/React.h @@ -0,0 +1,49 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +#import +#import + +#import +#import + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import diff --git a/React/React.xcodeproj/project.pbxproj b/React/React.xcodeproj/project.pbxproj index 42954d36e55092..edb4fe0e8a368b 100644 --- a/React/React.xcodeproj/project.pbxproj +++ b/React/React.xcodeproj/project.pbxproj @@ -186,6 +186,7 @@ 58114A4F1AAE93D500E7D092 /* RCTAsyncLocalStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTAsyncLocalStorage.h; sourceTree = ""; }; 58C571BF1AA56C1900CDF9C8 /* RCTDatePickerManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTDatePickerManager.m; sourceTree = ""; }; 58C571C01AA56C1900CDF9C8 /* RCTDatePickerManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTDatePickerManager.h; sourceTree = ""; }; + 78BEE2481ABABC2E00F44561 /* React.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = React.h; sourceTree = ""; }; 830213F31A654E0800B993E6 /* RCTBridgeModule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RCTBridgeModule.h; sourceTree = ""; }; 830A229C1A66C68A008503DA /* RCTRootView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTRootView.h; sourceTree = ""; }; 830A229D1A66C68A008503DA /* RCTRootView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTRootView.m; sourceTree = ""; }; @@ -368,6 +369,7 @@ 83CBBA2F1A601D0F00E9B192 /* React */ = { isa = PBXGroup; children = ( + 78BEE2481ABABC2E00F44561 /* React.h */, 83CBBA491A601E3B00E9B192 /* Base */, 134FCB381A6E7F0800051CC8 /* Executors */, 13B07FC41A68125100A75B9A /* Layout */, diff --git a/scripts/generate-umbrella-header.sh b/scripts/generate-umbrella-header.sh new file mode 100755 index 00000000000000..6b9e9537a075e8 --- /dev/null +++ b/scripts/generate-umbrella-header.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +set -e + +SCRIPTS=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) +ROOT=$(dirname $SCRIPTS) + +LIBRARY_NAME="React" +UMBRELLA_HEADER_PATH="${ROOT}/React/${LIBRARY_NAME}.h" + +cd $ROOT + +LIBRARY_HEADERS="\ +$(find React/Base -name "*.h") + +$(find React/Executors -name "*.h") + +React/Modules/RCTExceptionsManager.h +React/Modules/RCTUIManager.h + +React/Views/RCTAnimationType.h +React/Views/RCTAutoInsetsProtocol.h +React/Views/RCTConvert+CoreLocation.h +React/Views/RCTConvert+MapKit.h +React/Views/RCTPointerEvents.h +React/Views/RCTScrollableProtocol.h +React/Views/RCTShadowView.h +React/Views/RCTView.h +React/Views/RCTViewControllerProtocol.h +React/Views/RCTViewManager.h +React/Views/RCTViewNodeProtocol.h +React/Views/UIView+React.h\ +" + +echo \ +"/** + * Copyright (c) 2015-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +$( + echo "${LIBRARY_HEADERS}" | + awk -v lib="${LIBRARY_NAME}" '{if (NF) print "#import <"lib"/"$0">"; else print;}' + )\ +" > "${UMBRELLA_HEADER_PATH}"