mirror of
https://github.com/github/codeql.git
synced 2025-12-22 03:36:30 +01: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.
22 lines
631 B
Python
22 lines
631 B
Python
""" module providing useful filesystem paths """
|
|
|
|
import pathlib
|
|
import sys
|
|
import os
|
|
|
|
try:
|
|
workspace_dir = pathlib.Path(os.environ['BUILD_WORKSPACE_DIRECTORY']).resolve() # <- means we are using bazel run
|
|
swift_dir = workspace_dir / 'swift'
|
|
except KeyError:
|
|
_this_file = pathlib.Path(__file__).resolve()
|
|
swift_dir = _this_file.parents[2]
|
|
workspace_dir = swift_dir.parent
|
|
|
|
lib_dir = swift_dir / 'codegen' / 'lib'
|
|
templates_dir = swift_dir / 'codegen' / 'templates'
|
|
|
|
try:
|
|
exe_file = pathlib.Path(sys.argv[0]).resolve().relative_to(swift_dir)
|
|
except ValueError:
|
|
exe_file = pathlib.Path(sys.argv[0]).name
|