Skip to content

Commit 71933a4

Browse files
authored
Merge pull request github#4009 from hvitved/csharp/extractor-pack-files
C#: Add CodeQL extractor pack files
2 parents 8855ab8 + d1db7b3 commit 71933a4

File tree

10 files changed

+132
-0
lines changed

10 files changed

+132
-0
lines changed

csharp/codeql-extractor.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: "csharp"
2+
display_name: "C#"
3+
version: 1.22.1
4+
column_kind: "utf16"
5+
extra_env_vars:
6+
DOTNET_GENERATE_ASPNET_CERTIFICATE: "false"
7+
COR_ENABLE_PROFILING: "1"
8+
COR_PROFILER: "{A3C70A64-7D41-4A94-A3F6-FD47D9259997}"
9+
COR_PROFILER_PATH_64: "${env.CODEQL_EXTRACTOR_CSHARP_ROOT}/tools/${env.CODEQL_PLATFORM}/clrtracer64${env.CODEQL_PLATFORM_DLL_EXTENSION}"
10+
CORECLR_ENABLE_PROFILING: "1"
11+
CORECLR_PROFILER: "{A3C70A64-7D41-4A94-A3F6-FD47D9259997}"
12+
CORECLR_PROFILER_PATH_64: "${env.CODEQL_EXTRACTOR_CSHARP_ROOT}/tools/${env.CODEQL_PLATFORM}/clrtracer64${env.CODEQL_PLATFORM_DLL_EXTENSION}"
13+
file_types:
14+
- name: cs
15+
display_name: C# sources
16+
extensions:
17+
- .cs
18+
legacy_qltest_extraction: true

csharp/tools/autobuild.cmd

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
@echo off
2+
SETLOCAL EnableDelayedExpansion
3+
4+
rem The autobuilder is already being traced
5+
set CODEQL_AUTOBUILDER_CSHARP_NO_INDEXING=true
6+
7+
type NUL && "%CODEQL_EXTRACTOR_CSHARP_ROOT%/tools/%CODEQL_PLATFORM%/Semmle.Autobuild.CSharp.exe" || exit /b %ERRORLEVEL%
8+
9+
ENDLOCAL

csharp/tools/autobuild.sh

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/bin/sh
2+
3+
set -eu
4+
5+
if [ "$CODEQL_PLATFORM" != "linux64" ] && [ "$CODEQL_PLATFORM" != "osx64" ] ; then
6+
echo "Automatic build detection for $CODEQL_PLATFORM is not implemented."
7+
exit 1
8+
fi
9+
10+
# The autobuilder is already being traced
11+
CODEQL_AUTOBUILDER_CSHARP_NO_INDEXING="true"
12+
export CODEQL_AUTOBUILDER_CSHARP_NO_INDEXING
13+
14+
"$CODEQL_EXTRACTOR_CSHARP_ROOT/tools/$CODEQL_PLATFORM/Semmle.Autobuild.CSharp" || exit $?
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
**/mcs.exe:
2+
**/csc.exe:
3+
invoke ${config_dir}/Semmle.Extraction.CSharp.Driver
4+
prepend --compiler
5+
prepend "${compiler}"
6+
prepend --cil
7+
**/mono*:
8+
**/dotnet:
9+
invoke ${config_dir}/extract-csharp.sh
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#!/bin/bash
2+
echo extract-csharp.sh: Called with arguments: "$@"
3+
4+
extractor="$CODEQL_EXTRACTOR_CSHARP_ROOT/tools/$CODEQL_PLATFORM/Semmle.Extraction.CSharp.Driver"
5+
6+
for i in "$@"
7+
do
8+
shift
9+
if [[ `basename -- "$i"` =~ csc.exe|mcs.exe|csc.dll ]]
10+
then
11+
echo extract-csharp.sh: exec $extractor --cil $@
12+
exec "$extractor" --compiler $i --cil $@
13+
fi
14+
done
15+
16+
echo extract-csharp.sh: Not a compiler invocation
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
**/mcs.exe:
2+
**/csc.exe:
3+
invoke ${config_dir}/Semmle.Extraction.CSharp.Driver
4+
prepend --compiler
5+
prepend "${compiler}"
6+
prepend --cil
7+
**/mono*:
8+
**/dotnet:
9+
invoke ${config_dir}/extract-csharp.sh
10+
/usr/bin/codesign:
11+
replace yes
12+
invoke /usr/bin/env
13+
prepend /usr/bin/codesign
14+
trace no

csharp/tools/osx64/extract-csharp.sh

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#!/bin/bash
2+
echo extract-csharp.sh: Called with arguments: "$@"
3+
4+
extractor="$CODEQL_EXTRACTOR_CSHARP_ROOT/tools/$CODEQL_PLATFORM/Semmle.Extraction.CSharp.Driver"
5+
6+
for i in "$@"
7+
do
8+
shift
9+
if [[ `basename -- "$i"` =~ csc.exe|mcs.exe|csc.dll ]]
10+
then
11+
echo extract-csharp.sh: exec $extractor --cil $@
12+
exec "$extractor" --compiler $i --cil $@
13+
fi
14+
done
15+
16+
echo extract-csharp.sh: Not a compiler invocation

csharp/tools/pre-finalize.cmd

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
@echo off
2+
SETLOCAL EnableDelayedExpansion
3+
4+
type NUL && "%CODEQL_DIST%\codeql" database index-files ^
5+
--include-extension=.config ^
6+
--include-extension=.csproj ^
7+
--include-extension=.props ^
8+
--include-extension=.xml ^
9+
--size-limit 10m ^
10+
--language xml ^
11+
-- ^
12+
"%CODEQL_EXTRACTOR_CSHARP_WIP_DATABASE%"
13+
14+
ENDLOCAL

csharp/tools/pre-finalize.sh

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/bin/sh
2+
3+
set -eu
4+
5+
"$CODEQL_DIST/codeql" database index-files \
6+
--include-extension=.config \
7+
--include-extension=.csproj \
8+
--include-extension=.props \
9+
--include-extension=.xml \
10+
--size-limit 10m \
11+
--language xml \
12+
-- \
13+
"$CODEQL_EXTRACTOR_CSHARP_WIP_DATABASE"
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
**\fakes*.exe:
2+
**\moles*.exe:
3+
order compiler
4+
trace no
5+
**\csc*.exe:
6+
invoke ${config_dir}\Semmle.Extraction.CSharp.Driver.exe
7+
prepend --compiler
8+
prepend "${compiler}"
9+
prepend --cil

0 commit comments

Comments
 (0)