Document how to build portable, cross-platform binaries
Nobody has claimed this yet.
- Dominant language
- No language data
- Stars
- 110
- Forks
- 17
- PR merge metrics
- No merged PRs in 30d
Description
Creating C++ binaries portable to a given platform (osx, linux, windows) or platform version (ubuntu precise or trusty) is absolutely feasible but a poorly documented topic. Often our goal at Mapbox is to support the latest C++11 and C++14 features but maintain code portable to older operating systems like Windows 7, OS X 10.8, and Ubuntu Precise, or RHEL 6/7. This is also feasible. For example its possible to run C++14 binaries on AWS lambda (built on ubuntu precise) even though you can't easily compile them on AWS Lambda.
We should document how Mapbox writes and distributes portable C?C++ code to make clear when this approach is advantageous and when it is not. And to ensure the techniques are robust and replicable.
This issue is to track:
- [ ] getting this all documented here
- [ ] Moving the content from https://github.com/mapbox/node-pre-gyp/wiki/External-libraries to this future doc
- [ ] Moving binary portability FAQ from https://github.com/mapbox/node-pre-gyp/wiki/FAQ#frequently-ask-questions-about-node-pre-gyp to here
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the node-pre-gyp External libraries wiki page and the binary portability FAQ linked in the issue. Consolidate the relevant material into the planned documentation, covering when portable C/C++ binaries are advantageous and how Mapbox writes and distributes them. Done means the topic is documented here and both linked sources have been migrated.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- build-system, documentation
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100