Files
compiler-explorer/docs/AddingCustomCompilersOverview.md
Matt Godbolt f2c1e0bd31 The Grand Reformat (#3643)
* The Grand Reformat

- everything made prettier...literally
- some tweaks to include a few more files, including documentation
- minor changes to format style
- some tiny `// prettier-ignore` changes to keep a few things the way we like them
- a couple of super minor tweaks to embedded document types to ensure they format correctly
2022-05-09 23:13:50 -05:00

25 lines
1.9 KiB
Markdown

This is an overview of what building and adding a compiler to the site looks like, using GCC as an example, but note
that the process is similar for all other types of compilers.
- Build GCC versions with the relevant magic. We build all our own GCCs using Docker from
[this repo](https://github.com/compiler-explorer/gcc-builder)
- For non-trunk builds we manually run the docker image. For trunk dailies we have a
[cron job](https://github.com/compiler-explorer/infra/blob/main/crontab.admin#L8) that runs a
[script](https://github.com/compiler-explorer/infra/blob/main/admin-daily-builds.sh) to build them.
- Built tarballs are uploaded to S3, and installed by our
[custom tool](https://github.com/compiler-explorer/infra/blob/main/bin/lib/ce_install.py) from a
[YAML configuration file](https://github.com/compiler-explorer/infra/blob/main/bin/yaml/cpp.yaml)
- The installation puts compilers on a shared NFS drive at `/opt/compiler-explorer/gcc-some-version/`
- We then configure CE to look for the compiler
[here](https://github.com/compiler-explorer/compiler-explorer/blob/main/etc/config/c%2B%2B.amazon.properties#L9).
- If we need to customise the way we execute the compiler and/or display the results, then we can change the
"[driver](https://github.com/compiler-explorer/compiler-explorer/tree/main/lib/compilers)" for the compiler. Usually
we can just override a few aspects of the driver, relying on the defaults from the
[base driver](https://github.com/compiler-explorer/compiler-explorer/blob/main/lib/base-compiler.js).
- Any UI changes are a bit more work.
More info still in
[Adding a Compiler](https://github.com/compiler-explorer/compiler-explorer/blob/main/docs/AddingACompiler.md), and if
you can bear listening to Matt, here's [a talk](https://www.youtube.com/watch?v=kIoZDUd5DKw) about some behind the
scenes stuff, with [slides online](https://www.youtube.com/watch?v=kIoZDUd5DKw).