Document how to build portable, cross-platform binaries

Open
#4 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
38/100
Issue type
Documentation
Clarity
Mostly clear
Activity status
Stale
Tech stack
cpp

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.

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:

Dominant language
No language data
Stars
110
Forks
17
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from mapbox/cpp

All issues in mapbox/cpp

Similar issues

More Build System issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.