mirror of
https://github.com/github/codeql.git
synced 2026-06-03 04:40:14 +02:00
This checks in the trapgen script generating trap entries in C++. The codegen suite has been slightly reorganized, moving the templates directory up one level and chopping everything into smaller bazel packages. Running tests is now done via ``` bazel run //swift/codegen/test ``` With respect to the PoC, the nested `codeql::trap` namespace has been dropped in favour of a `Trap` prefix (or suffix in case of entries) within the `codeql` namespace. Also, generated C++ code is not checked in in git any more, and generated during build. Finally, labels get printed in hex in the trap file. `TrapLabel` is for the moment only default-constructible, so only one single label is possible. `TrapArena`, that is responsible for creating disjoint labels will come in a later commit.
Warning
The Swift codeql package is an experimental and unsupported work in progress.
Usage
Run
bazel run //swift:create-extractor-pack
which will install swift/extractor-pack.
Using --search-path=swift/extractor-pack will then pick up the Swift extractor. You can also use
--search-path=swift, as the extractor pack is mentioned in swift/.codeqlmanifest.json.
Notice you can run bazel run :create-extractor-pack if you already are in the swift directory.
Code generation
Make sure to install the pip requirements via
python3 -m pip install -r codegen/requirements.txt
Run
bazel run //swift/codegen
to update generated files. This can be shortened to
bazel run codegen if you are in the swift directory.