Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Pod] Add an "All" subspec that pulls in all non-test libraries #285

Closed
wants to merge 1 commit into from

Conversation

ide
Copy link
Contributor

@ide ide commented Mar 27, 2015

Some of the libraries don't have subspecs defined, and I don't think we want a subspec for each library in the long run anyway after a package manager client (like npm and CocoaPods) has been built. Adding "All" as a reasonable short-term solution.

@ide ide mentioned this pull request Mar 27, 2015
@a2
Copy link
Contributor

a2 commented Mar 27, 2015

I think all libraries should have subspecs defined if they're in the project. I think an "All" subspec is not the best solution because it will lead to bloat.

@ide
Copy link
Contributor Author

ide commented Mar 27, 2015

This is mainly a stopgap until we have a package script that works with React Native. Otherwise there needs to be a dozen or so subspecs (for example, ListView and the JS Navigator are missing). Since there's so much activity in the repo I'd rather pay the cost of bloat (and am explicitly opting in with React/All) than have to update the podspec everytime someone adds a new Libraries subdir.

@a2
Copy link
Contributor

a2 commented Mar 27, 2015

In that case do you think we should just remove the subspecs and have the default "React" pod include everything?

@ide
Copy link
Contributor Author

ide commented Mar 27, 2015

In the short term I think that'd be OK (Libraries/RCTTest should be excluded though, and the Web Socket code should be included only for development targets). Longer term something like the package system sketched out in #235 should reduce bloat and make dependencies easy to maintain.

Some of the libraries don't have subspecs defined, and I don't think we want a subspec for each library in the long run anyway after a package manager client (like npm and CocoaPods) has been built. Adding "All" as a reasonable short-term solution.
@ide
Copy link
Contributor Author

ide commented Mar 31, 2015

Closing since the root podspec pulls in all of Libraries so it's tenable to list out a couple of subspecs for now.

@ide ide closed this Mar 31, 2015
@ide ide deleted the pod branch March 31, 2015 19:52
mganandraj added a commit to mganandraj/react-native that referenced this pull request Apr 14, 2020
* Fixing DialogModule for Android SDK version before 26

* Adding a comment

Adding a comment .. as a workaround to retrigger Apple PR

Co-authored-by: Anandraj Govindan <anandrag@microsoft.com>
jfrolich pushed a commit to jfrolich/react-native that referenced this pull request Apr 22, 2020
Finalising components docs migration from rebolt to bs-react-native

issue facebook#267
ayushjainrksh referenced this pull request in MLH-Fellowship/react-native Jul 2, 2020
facebook-github-bot pushed a commit that referenced this pull request Jul 9, 2020
Summary:
Supersedes facebook/hermes#239

Currently used in our macOS fork of React Native microsoft#473. (Although we’re using a build of Hermes v0.4.1, as we’re at RN 0.62.0.)

* On Apple platforms build a [dynamic] framework bundle when `HERMES_BUILD_APPLE_FRAMEWORK` is set. When set to `FALSE` it will produce a `dylib`, like previously. Defaults to `TRUE`.
* On Apple platforms create a debugging symbols bundle.
* Add `HERMES_ENABLE_FUZZING`, which is enabled by default.
* Add `HERMES_ENABLE_TEST_SUITE`, which is enabled by default.
* Add a CocoaPods podspec that can build from source or use a binary.

A standalone macOS app that pulls in Hermes as a CocoaPods pod can be found here https://github.com/alloy/TestHermesMaster.

## Framework variant (default)

```
$ ./src/utils/build/configure.py --distribute --cmake-flags='-DCMAKE_INSTALL_PREFIX:PATH=../destroot_release' build
$ cd build && ninja install && cd ..
$ tree destroot_release/
destroot_release/
├── Library
│   └── Frameworks
│       ├── hermes.framework
│       │   ├── Headers -> Versions/Current/Headers
│       │   ├── Resources -> Versions/Current/Resources
│       │   ├── Versions
│       │   │   ├── 0
│       │   │   │   ├── Headers
│       │   │   │   │   ├── CompileJS.h
│       │   │   │   │   ├── DebuggerAPI.h
│       │   │   │   │   ├── Public
│       │   │   │   │   │   ├── Buffer.h
│       │   │   │   │   │   ├── CrashManager.h
│       │   │   │   │   │   ├── CtorConfig.h
│       │   │   │   │   │   ├── DebuggerTypes.h
│       │   │   │   │   │   ├── GCConfig.h
│       │   │   │   │   │   ├── GCTripwireContext.h
│       │   │   │   │   │   └── RuntimeConfig.h
│       │   │   │   │   ├── SynthTrace.h
│       │   │   │   │   ├── SynthTraceParser.h
│       │   │   │   │   ├── TraceInterpreter.h
│       │   │   │   │   ├── TracingRuntime.h
│       │   │   │   │   ├── hermes.h
│       │   │   │   │   └── hermes_tracing.h
│       │   │   │   ├── Resources
│       │   │   │   │   └── Info.plist
│       │   │   │   └── hermes
│       │   │   └── Current -> 0
│       │   └── hermes -> Versions/Current/hermes
│       └── hermes.framework.dSYM
│           └── Contents
│               ├── Info.plist
│               └── Resources
│                   └── DWARF
│                       └── hermes
├── bin
│   ├── hbcdump
│   ├── hdb
│   ├── hermes
│   ├── hermesc
│   └── hvm
└── include
    ├── hermes
    │   ├── CompileJS.h
    │   ├── DebuggerAPI.h
    │   ├── Public
    │   │   ├── Buffer.h
    │   │   ├── CrashManager.h
    │   │   ├── CtorConfig.h
    │   │   ├── DebuggerTypes.h
    │   │   ├── GCConfig.h
    │   │   ├── GCTripwireContext.h
    │   │   └── RuntimeConfig.h
    │   ├── SynthTrace.h
    │   ├── SynthTraceParser.h
    │   ├── TraceInterpreter.h
    │   ├── TracingRuntime.h
    │   ├── hermes.h
    │   └── hermes_tracing.h
    └── jsi
        ├── JSIDynamic.h
        ├── decorator.h
        ├── instrumentation.h
        ├── jsi-inl.h
        ├── jsi.h
        ├── jsilib.h
        └── threadsafe.h
```

# dylib variant

```
$ ./src/utils/build/configure.py --distribute --cmake-flags='-DHERMES_BUILD_APPLE_FRAMEWORK:BOOLEAN=false -DCMAKE_INSTALL_PREFIX:PATH=../destroot_release' build
$ cd build && ninja install && cd ..
$ tree destroot_release/
destroot_release/
├── bin
│   ├── hbcdump
│   ├── hdb
│   ├── hermes
│   ├── hermesc
│   └── hvm
├── include
│   ├── hermes
│   │   ├── CompileJS.h
│   │   ├── DebuggerAPI.h
│   │   ├── Public
│   │   │   ├── Buffer.h
│   │   │   ├── CrashManager.h
│   │   │   ├── CtorConfig.h
│   │   │   ├── DebuggerTypes.h
│   │   │   ├── GCConfig.h
│   │   │   ├── GCTripwireContext.h
│   │   │   └── RuntimeConfig.h
│   │   ├── SynthTrace.h
│   │   ├── SynthTraceParser.h
│   │   ├── TraceInterpreter.h
│   │   ├── TracingRuntime.h
│   │   ├── hermes.h
│   │   └── hermes_tracing.h
│   └── jsi
│       ├── JSIDynamic.h
│       ├── decorator.h
│       ├── instrumentation.h
│       ├── jsi-inl.h
│       ├── jsi.h
│       ├── jsilib.h
│       └── threadsafe.h
└── lib
    ├── libhermes.dylib
    └── libhermes.dylib.dSYM
        └── Contents
            ├── Info.plist
            └── Resources
                └── DWARF
                    └── libhermes.dylib
```

Pull Request resolved: facebook/hermes#285

Reviewed By: willholen

Differential Revision: D22398354

Pulled By: mhorowitz

fbshipit-source-id: 732524275cf273866171fc6e2ac2acb062185fbd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants