Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/facebookarchive/warp
A fast preprocessor for C and C++
https://github.com/facebookarchive/warp
Last synced: 2 months ago
JSON representation
A fast preprocessor for C and C++
- Host: GitHub
- URL: https://github.com/facebookarchive/warp
- Owner: facebookarchive
- License: bsl-1.0
- Archived: true
- Created: 2014-03-25T00:31:17.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2021-09-26T15:30:22.000Z (over 3 years ago)
- Last Synced: 2024-08-04T01:03:01.273Z (6 months ago)
- Language: D
- Size: 393 KB
- Stars: 529
- Watchers: 41
- Forks: 47
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-d - warp - A fast preprocessor for C and C++ used in Facebook infrastructure. Written by Walter Bright. (Preprocesors / Bare metal / kernel development)
README
- - -
**_This project is not actively maintained. Proceed at your own risk!_**
- - -
`warp`: Facebook's C and C++ Preprocessor
-----------------------------------------`warp` is an open-source preprocessor for the C and C++ programming
languages. We use it at Facebook as a faster replacement of `cpp`,
GNU's preprocessor.The companion program `warpdrive` drives `warp` in conjunction with
the predefined macros of a few of today's crop of compilers (gcc
4.7.1, gcc 4.8.1, clang 3.2, and clang 3.4).Currently `warp`'s build has only been tested with gcc 4.7.1 and gcc 4.8.1 on CentOS 6. More
officially supported platforms to follow.Dependencies
------------You need a D compiler installation, which can be downloaded from
[here](http://dlang.org/download.html). For maximum speed we recommend
using the gdc compiler.Building and using warp
-----------------------`warp` by itself is agnostic of the C or C++ dialect implemented by a
particular compiler. It is common for compilers to implicitly define a
number of macros that affect the precompilation process. To help with
that, warp is accompanied by `warpdrive`, a simple driver program that
invokes `warp` with the appropriate `#define`s for a few popular
compilers.To build warp, use the simple Makefile that's part of the distribution:
make -j
This will produce `warp` (the core program) and also the drivers
`warpdrive_gcc4_7_1`, `warpdrive_gcc4_8_1`, `warpdrive_clang3_2`,
`warpdrive_clang3_4`, and `warpdrive_clangdev`, each packaged for the
respective compiler and version.To invoke warp, simply use
warpdrive filename
In all likelihood you'll need to use `-I` for adding paths to included
library files (warpdrive doesn't bake those in.)