mirror of
https://github.com/compiler-explorer/compiler-explorer.git
synced 2025-12-27 09:23:52 -05:00
* 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
25 lines
1.9 KiB
Markdown
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).
|