xref: /aosp_15_r20/external/brotli/csharp/transpile.sh (revision f4ee7fba7774faf2a30f13154332c0a06550dbc4)
1*f4ee7fbaSAndroid Build Coastguard Workerif ! which mvn >/dev/null; then
2*f4ee7fbaSAndroid Build Coastguard Worker  echo -e '\033[01;31mMaven is not installed / configured.\033[00m'
3*f4ee7fbaSAndroid Build Coastguard Worker  exit 1
4*f4ee7fbaSAndroid Build Coastguard Workerfi
5*f4ee7fbaSAndroid Build Coastguard Worker
6*f4ee7fbaSAndroid Build Coastguard Workerif ! which mono >/dev/null; then
7*f4ee7fbaSAndroid Build Coastguard Worker  echo -e '\033[01;31mMono platform is not installed / configured.\033[00m'
8*f4ee7fbaSAndroid Build Coastguard Worker  exit 1
9*f4ee7fbaSAndroid Build Coastguard Workerfi
10*f4ee7fbaSAndroid Build Coastguard Worker
11*f4ee7fbaSAndroid Build Coastguard Workerif ! which nuget >/dev/null; then
12*f4ee7fbaSAndroid Build Coastguard Worker  echo -e '\033[01;31mNuGet compiler is not installed / configured.\033[00m'
13*f4ee7fbaSAndroid Build Coastguard Worker  exit 1
14*f4ee7fbaSAndroid Build Coastguard Workerfi
15*f4ee7fbaSAndroid Build Coastguard Worker
16*f4ee7fbaSAndroid Build Coastguard Workerif ! which mcs >/dev/null; then
17*f4ee7fbaSAndroid Build Coastguard Worker  echo -e '\033[01;31mC# compiler is not installed / configured.\033[00m'
18*f4ee7fbaSAndroid Build Coastguard Worker  exit 1
19*f4ee7fbaSAndroid Build Coastguard Workerfi
20*f4ee7fbaSAndroid Build Coastguard Worker
21*f4ee7fbaSAndroid Build Coastguard Workerrm -rf build
22*f4ee7fbaSAndroid Build Coastguard Workermkdir build
23*f4ee7fbaSAndroid Build Coastguard Workercd build
24*f4ee7fbaSAndroid Build Coastguard Worker
25*f4ee7fbaSAndroid Build Coastguard Worker#-------------------------------------------------------------------------------
26*f4ee7fbaSAndroid Build Coastguard Worker
27*f4ee7fbaSAndroid Build Coastguard Workerecho -e '\033[01;33mFetching Sharpen sources.\033[00m'
28*f4ee7fbaSAndroid Build Coastguard Worker
29*f4ee7fbaSAndroid Build Coastguard Workergit clone https://github.com/stanislaw89/sharpen.git
30*f4ee7fbaSAndroid Build Coastguard Workercd sharpen
31*f4ee7fbaSAndroid Build Coastguard Workergit checkout 4f609ed42862a1f9aab1be00374ff86534a5e6d6 || exit 1
32*f4ee7fbaSAndroid Build Coastguard Worker
33*f4ee7fbaSAndroid Build Coastguard Worker#-------------------------------------------------------------------------------
34*f4ee7fbaSAndroid Build Coastguard Worker
35*f4ee7fbaSAndroid Build Coastguard Workerecho -e '\n\033[01;33mCompiling Sharpen.\033[00m'
36*f4ee7fbaSAndroid Build Coastguard Worker
37*f4ee7fbaSAndroid Build Coastguard Workermvn clean package -DskipTests
38*f4ee7fbaSAndroid Build Coastguard Workermvn dependency:copy -Dartifact=junit:junit:4.12 -DoutputDirectory=..
39*f4ee7fbaSAndroid Build Coastguard Workercd ..
40*f4ee7fbaSAndroid Build Coastguard Workercp sharpen/target/sharpencore-0.0.1-SNAPSHOT-jar-with-dependencies.jar ./sharpen.jar
41*f4ee7fbaSAndroid Build Coastguard Worker
42*f4ee7fbaSAndroid Build Coastguard Worker#-------------------------------------------------------------------------------
43*f4ee7fbaSAndroid Build Coastguard Worker
44*f4ee7fbaSAndroid Build Coastguard Workerecho -e '\n\033[01;33mTranspiling.\033[00m'
45*f4ee7fbaSAndroid Build Coastguard Worker
46*f4ee7fbaSAndroid Build Coastguard Workercd ..
47*f4ee7fbaSAndroid Build Coastguard Workerjava -jar build/sharpen.jar ../java/org/brotli/dec/ -cp build/junit-4.12.jar @sharpen.cfg
48*f4ee7fbaSAndroid Build Coastguard Worker
49*f4ee7fbaSAndroid Build Coastguard Worker#-------------------------------------------------------------------------------
50*f4ee7fbaSAndroid Build Coastguard Worker
51*f4ee7fbaSAndroid Build Coastguard Workerecho -e '\n\033[01;33mPatching.\033[00m'
52*f4ee7fbaSAndroid Build Coastguard Worker
53*f4ee7fbaSAndroid Build Coastguard Worker# TODO: detect "dead" files, that are not generated by sharpen anymore.
54*f4ee7fbaSAndroid Build Coastguard Workercp -r build/generated/* ./
55*f4ee7fbaSAndroid Build Coastguard Worker
56*f4ee7fbaSAndroid Build Coastguard Worker# Reflection does not work without Sharpen.cs
57*f4ee7fbaSAndroid Build Coastguard Workerrm org/brotli/dec/EnumTest.cs
58*f4ee7fbaSAndroid Build Coastguard Worker
59*f4ee7fbaSAndroid Build Coastguard WorkerPATTERN='\/\/ \<\{\[INJECTED CODE\]\}\>'
60*f4ee7fbaSAndroid Build Coastguard WorkerCODE=$(<org/brotli/dec/BrotliInputStream.cs)
61*f4ee7fbaSAndroid Build Coastguard WorkerREPLACEMENT=$(<injected_code.txt)
62*f4ee7fbaSAndroid Build Coastguard Workerecho "${CODE//$PATTERN/$REPLACEMENT}" > org/brotli/dec/BrotliInputStream.cs
63*f4ee7fbaSAndroid Build Coastguard Worker
64*f4ee7fbaSAndroid Build Coastguard Worker#-------------------------------------------------------------------------------
65*f4ee7fbaSAndroid Build Coastguard Worker
66*f4ee7fbaSAndroid Build Coastguard Workerecho -e '\n\033[01;33mDowloading dependencies.\033[00m'
67*f4ee7fbaSAndroid Build Coastguard Worker
68*f4ee7fbaSAndroid Build Coastguard Workercd build
69*f4ee7fbaSAndroid Build Coastguard Workernuget install NUnit -Version 3.6.1
70*f4ee7fbaSAndroid Build Coastguard Workernuget install NUnit.ConsoleRunner -Version 3.6.1
71*f4ee7fbaSAndroid Build Coastguard Workercd ..
72*f4ee7fbaSAndroid Build Coastguard Worker
73*f4ee7fbaSAndroid Build Coastguard Worker#-------------------------------------------------------------------------------
74*f4ee7fbaSAndroid Build Coastguard Worker
75*f4ee7fbaSAndroid Build Coastguard Workerecho -e '\n\033[01;33mCompiling generated code.\033[00m'
76*f4ee7fbaSAndroid Build Coastguard Worker
77*f4ee7fbaSAndroid Build Coastguard WorkerSOURCES=`find org/brotli -type file ! -path "*Test.cs"`
78*f4ee7fbaSAndroid Build Coastguard WorkerTESTS_SOURCES=`find org/brotli -type file -path "*Test.cs"`
79*f4ee7fbaSAndroid Build Coastguard Worker
80*f4ee7fbaSAndroid Build Coastguard Workermcs $SOURCES -target:library -out:build/brotlidec.dll
81*f4ee7fbaSAndroid Build Coastguard Workermcs $SOURCES $TESTS_SOURCES -target:library -out:build/brotlidec_test.dll -r:build/NUnit.3.6.1/lib/net45/nunit.framework.dll
82*f4ee7fbaSAndroid Build Coastguard Worker
83*f4ee7fbaSAndroid Build Coastguard Worker#-------------------------------------------------------------------------------
84*f4ee7fbaSAndroid Build Coastguard Worker
85*f4ee7fbaSAndroid Build Coastguard Workerecho -e '\n\033[01;33mRunning tests.\033[00m'
86*f4ee7fbaSAndroid Build Coastguard Worker
87*f4ee7fbaSAndroid Build Coastguard Workerexport MONO_PATH=$MONO_PATH:`pwd`/build/NUnit.3.6.1/lib/net45
88*f4ee7fbaSAndroid Build Coastguard Workermono --debug build/NUnit.ConsoleRunner.3.6.1/tools/nunit3-console.exe build/brotlidec_test.dll
89*f4ee7fbaSAndroid Build Coastguard Worker
90*f4ee7fbaSAndroid Build Coastguard Worker#-------------------------------------------------------------------------------
91*f4ee7fbaSAndroid Build Coastguard Worker
92*f4ee7fbaSAndroid Build Coastguard Workerecho -e '\n\033[01;33mCleanup.\033[00m'
93*f4ee7fbaSAndroid Build Coastguard Workerrm TestResult.xml
94*f4ee7fbaSAndroid Build Coastguard Workerrm -rf build
95