Skip to content

Commit 07ea8e0

Browse files
committed
[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 <React/React.h>`. 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.
1 parent b99744a commit 07ea8e0

File tree

3 files changed

+89
-0
lines changed

3 files changed

+89
-0
lines changed

React/React.h

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/**
2+
* Copyright (c) 2015-present, Facebook, Inc.
3+
* All rights reserved.
4+
*
5+
* This source code is licensed under the BSD-style license found in the
6+
* LICENSE file in the root directory of this source tree. An additional grant
7+
* of patent rights can be found in the PATENTS file in the same directory.
8+
*/
9+
10+
#import <React/React/Base/RCTAssert.h>
11+
#import <React/React/Base/RCTBridge.h>
12+
#import <React/React/Base/RCTBridgeModule.h>
13+
#import <React/React/Base/RCTCache.h>
14+
#import <React/React/Base/RCTConvert.h>
15+
#import <React/React/Base/RCTDefines.h>
16+
#import <React/React/Base/RCTDevMenu.h>
17+
#import <React/React/Base/RCTEventDispatcher.h>
18+
#import <React/React/Base/RCTFrameUpdate.h>
19+
#import <React/React/Base/RCTInvalidating.h>
20+
#import <React/React/Base/RCTJavaScriptExecutor.h>
21+
#import <React/React/Base/RCTJavaScriptLoader.h>
22+
#import <React/React/Base/RCTJSMethodRegistrar.h>
23+
#import <React/React/Base/RCTKeyCommands.h>
24+
#import <React/React/Base/RCTLog.h>
25+
#import <React/React/Base/RCTProfile.h>
26+
#import <React/React/Base/RCTRedBox.h>
27+
#import <React/React/Base/RCTRootView.h>
28+
#import <React/React/Base/RCTSparseArray.h>
29+
#import <React/React/Base/RCTTouchHandler.h>
30+
#import <React/React/Base/RCTUtils.h>
31+
#import <React/React/Executors/RCTContextExecutor.h>
32+
#import <React/React/Executors/RCTWebViewExecutor.h>
33+
#import <React/React/Views/RCTAnimationType.h>
34+
#import <React/React/Views/RCTAutoInsetsProtocol.h>
35+
#import <React/React/Views/RCTConvert+CoreLocation.h>
36+
#import <React/React/Views/RCTConvert+MapKit.h>
37+
#import <React/React/Views/RCTPointerEvents.h>
38+
#import <React/React/Views/RCTScrollableProtocol.h>
39+
#import <React/React/Views/RCTShadowView.h>
40+
#import <React/React/Views/RCTView.h>
41+
#import <React/React/Views/RCTViewControllerProtocol.h>
42+
#import <React/React/Views/RCTViewManager.h>
43+
#import <React/React/Views/RCTViewNodeProtocol.h>
44+
#import <React/React/Views/UIView+React.h>

React/React.xcodeproj/project.pbxproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@
186186
58114A4F1AAE93D500E7D092 /* RCTAsyncLocalStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTAsyncLocalStorage.h; sourceTree = "<group>"; };
187187
58C571BF1AA56C1900CDF9C8 /* RCTDatePickerManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTDatePickerManager.m; sourceTree = "<group>"; };
188188
58C571C01AA56C1900CDF9C8 /* RCTDatePickerManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTDatePickerManager.h; sourceTree = "<group>"; };
189+
78BEE2481ABABC2E00F44561 /* React.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = React.h; sourceTree = "<group>"; };
189190
830213F31A654E0800B993E6 /* RCTBridgeModule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RCTBridgeModule.h; sourceTree = "<group>"; };
190191
830A229C1A66C68A008503DA /* RCTRootView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTRootView.h; sourceTree = "<group>"; };
191192
830A229D1A66C68A008503DA /* RCTRootView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTRootView.m; sourceTree = "<group>"; };
@@ -368,6 +369,7 @@
368369
83CBBA2F1A601D0F00E9B192 /* React */ = {
369370
isa = PBXGroup;
370371
children = (
372+
78BEE2481ABABC2E00F44561 /* React.h */,
371373
83CBBA491A601E3B00E9B192 /* Base */,
372374
134FCB381A6E7F0800051CC8 /* Executors */,
373375
13B07FC41A68125100A75B9A /* Layout */,

scripts/generate-umbrella-header.sh

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
SCRIPTS=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
6+
ROOT=$(dirname $SCRIPTS)
7+
8+
LIBRARY_NAME="React"
9+
UMBRELLA_HEADER_PATH="${ROOT}/React/${LIBRARY_NAME}.h"
10+
11+
cd $ROOT
12+
13+
LIBRARY_HEADERS="\
14+
$(find React/Base React/Executors -name "*.h")
15+
React/Views/RCTAnimationType.h
16+
React/Views/RCTAutoInsetsProtocol.h
17+
React/Views/RCTConvert+CoreLocation.h
18+
React/Views/RCTConvert+MapKit.h
19+
React/Views/RCTPointerEvents.h
20+
React/Views/RCTScrollableProtocol.h
21+
React/Views/RCTShadowView.h
22+
React/Views/RCTView.h
23+
React/Views/RCTViewControllerProtocol.h
24+
React/Views/RCTViewManager.h
25+
React/Views/RCTViewNodeProtocol.h
26+
React/Views/UIView+React.h\
27+
"
28+
29+
echo \
30+
"/**
31+
* Copyright (c) 2015-present, Facebook, Inc.
32+
* All rights reserved.
33+
*
34+
* This source code is licensed under the BSD-style license found in the
35+
* LICENSE file in the root directory of this source tree. An additional grant
36+
* of patent rights can be found in the PATENTS file in the same directory.
37+
*/
38+
39+
$(
40+
echo "${LIBRARY_HEADERS}" |
41+
awk -v lib="${LIBRARY_NAME}" '{print "#import <"lib"/"$0">"}'
42+
)\
43+
" > "${UMBRELLA_HEADER_PATH}"

0 commit comments

Comments
 (0)