Skip to content

Commit 56e9386

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 1120769 commit 56e9386

File tree

3 files changed

+104
-0
lines changed

3 files changed

+104
-0
lines changed

React/React.h

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
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/RCTFPSGraph.h>
19+
#import <React/React/Base/RCTFrameUpdate.h>
20+
#import <React/React/Base/RCTInvalidating.h>
21+
#import <React/React/Base/RCTJavaScriptExecutor.h>
22+
#import <React/React/Base/RCTJavaScriptLoader.h>
23+
#import <React/React/Base/RCTJSMethodRegistrar.h>
24+
#import <React/React/Base/RCTKeyCommands.h>
25+
#import <React/React/Base/RCTLog.h>
26+
#import <React/React/Base/RCTPerfStats.h>
27+
#import <React/React/Base/RCTProfile.h>
28+
#import <React/React/Base/RCTRedBox.h>
29+
#import <React/React/Base/RCTRootView.h>
30+
#import <React/React/Base/RCTSparseArray.h>
31+
#import <React/React/Base/RCTTouchHandler.h>
32+
#import <React/React/Base/RCTURLRequestDelegate.h>
33+
#import <React/React/Base/RCTURLRequestHandler.h>
34+
#import <React/React/Base/RCTUtils.h>
35+
36+
#import <React/React/Executors/RCTContextExecutor.h>
37+
#import <React/React/Executors/RCTWebViewExecutor.h>
38+
39+
#import <React/React/Modules/RCTExceptionsManager.h>
40+
#import <React/React/Modules/RCTUIManager.h>
41+
42+
#import <React/React/Views/RCTAnimationType.h>
43+
#import <React/React/Views/RCTAutoInsetsProtocol.h>
44+
#import <React/React/Views/RCTConvert+CoreLocation.h>
45+
#import <React/React/Views/RCTConvert+MapKit.h>
46+
#import <React/React/Views/RCTPointerEvents.h>
47+
#import <React/React/Views/RCTScrollableProtocol.h>
48+
#import <React/React/Views/RCTShadowView.h>
49+
#import <React/React/Views/RCTView.h>
50+
#import <React/React/Views/RCTViewControllerProtocol.h>
51+
#import <React/React/Views/RCTViewManager.h>
52+
#import <React/React/Views/RCTViewNodeProtocol.h>
53+
#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
@@ -200,6 +200,7 @@
200200
58114A4F1AAE93D500E7D092 /* RCTAsyncLocalStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTAsyncLocalStorage.h; sourceTree = "<group>"; };
201201
58C571BF1AA56C1900CDF9C8 /* RCTDatePickerManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTDatePickerManager.m; sourceTree = "<group>"; };
202202
58C571C01AA56C1900CDF9C8 /* RCTDatePickerManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTDatePickerManager.h; sourceTree = "<group>"; };
203+
78BEE2481ABABC2E00F44561 /* React.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = React.h; sourceTree = "<group>"; };
203204
830213F31A654E0800B993E6 /* RCTBridgeModule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RCTBridgeModule.h; sourceTree = "<group>"; };
204205
830A229C1A66C68A008503DA /* RCTRootView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTRootView.h; sourceTree = "<group>"; };
205206
830A229D1A66C68A008503DA /* RCTRootView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTRootView.m; sourceTree = "<group>"; };
@@ -386,6 +387,7 @@
386387
83CBBA2F1A601D0F00E9B192 /* React */ = {
387388
isa = PBXGroup;
388389
children = (
390+
78BEE2481ABABC2E00F44561 /* React.h */,
389391
83CBBA491A601E3B00E9B192 /* Base */,
390392
134FCB381A6E7F0800051CC8 /* Executors */,
391393
13B07FC41A68125100A75B9A /* Layout */,

scripts/generate-umbrella-header.sh

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
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 -name "*.h")
15+
16+
$(find React/Executors -name "*.h")
17+
18+
React/Modules/RCTExceptionsManager.h
19+
React/Modules/RCTUIManager.h
20+
21+
React/Views/RCTAnimationType.h
22+
React/Views/RCTAutoInsetsProtocol.h
23+
React/Views/RCTConvert+CoreLocation.h
24+
React/Views/RCTConvert+MapKit.h
25+
React/Views/RCTPointerEvents.h
26+
React/Views/RCTScrollableProtocol.h
27+
React/Views/RCTShadowView.h
28+
React/Views/RCTView.h
29+
React/Views/RCTViewControllerProtocol.h
30+
React/Views/RCTViewManager.h
31+
React/Views/RCTViewNodeProtocol.h
32+
React/Views/UIView+React.h\
33+
"
34+
35+
echo \
36+
"/**
37+
* Copyright (c) 2015-present, Facebook, Inc.
38+
* All rights reserved.
39+
*
40+
* This source code is licensed under the BSD-style license found in the
41+
* LICENSE file in the root directory of this source tree. An additional grant
42+
* of patent rights can be found in the PATENTS file in the same directory.
43+
*/
44+
45+
$(
46+
echo "${LIBRARY_HEADERS}" |
47+
awk -v lib="${LIBRARY_NAME}" '{if (NF) print "#import <"lib"/"$0">"; else print;}'
48+
)\
49+
" > "${UMBRELLA_HEADER_PATH}"

0 commit comments

Comments
 (0)