1#!/usr/bin/env bash
2
3set -x
4
5if [[ "$(uname)" == 'Linux' ]]; then
6    _os_name=linux
7
8    install -D /bin/sed $BUILD_PREFIX/bin/sed
9
10    # Install gtk-sharp2
11    install -D /usr/lib/cli/gtk-sharp-2.0/gtk-sharp.dll* $BUILD_PREFIX/lib/mono/4.5-api/
12    install -D /usr/lib/cli/glib-sharp-2.0/glib-sharp.dll* $BUILD_PREFIX/lib/mono/4.5-api/
13    install -D /usr/lib/cli/atk-sharp-2.0/atk-sharp.dll* $BUILD_PREFIX/lib/mono/4.5-api/
14    install -D /usr/lib/cli/gdk-sharp-2.0/gdk-sharp.dll* $BUILD_PREFIX/lib/mono/4.5-api/
15    install -D /usr/lib/cli/pango-sharp-2.0/pango-sharp.dll* $BUILD_PREFIX/lib/mono/4.5-api/
16
17
18    mkdir -p $PREFIX/opt/renode/bin
19    cp /usr/lib/cli/gtk-sharp-2.0/gtk-sharp.dll* $PREFIX/opt/renode/bin/
20    cp /usr/lib/cli/glib-sharp-2.0/glib-sharp.dll* $PREFIX/opt/renode/bin/
21    cp /usr/lib/cli/atk-sharp-2.0/atk-sharp.dll* $PREFIX/opt/renode/bin/
22    cp /usr/lib/cli/gdk-sharp-2.0/gdk-sharp.dll* $PREFIX/opt/renode/bin/
23    cp /usr/lib/cli/pango-sharp-2.0/pango-sharp.dll* $PREFIX/opt/renode/bin/
24
25    mkdir -p $PREFIX/lib/
26    install -D /usr/lib/cli/gtk-sharp-2.0/libgtksharpglue-2.so $PREFIX/lib/libgtksharpglue-2.so
27    install -D /usr/lib/cli/gdk-sharp-2.0/libgdksharpglue-2.so $PREFIX/lib/libgdksharpglue-2.so
28    install -D /usr/lib/cli/glib-sharp-2.0/libglibsharpglue-2.so $PREFIX/lib/libglibsharpglue-2.so
29    install -D /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libatk-bridge.so $PREFIX/lib/libatk-bridge.so
30
31    sed -i 's/\/usr\/lib\/cli\/.*-sharp-2.0\///g' $PREFIX/opt/renode/bin/*.dll.config
32else
33    _os_name=macos
34
35    cp /Library/Frameworks/Mono.framework/Libraries/libatksharpglue-2* $PREFIX/lib/
36    cp /Library/Frameworks/Mono.framework/Libraries/libgtksharpglue-2* $PREFIX/lib/
37    cp /Library/Frameworks/Mono.framework/Libraries/libgdksharpglue-2* $PREFIX/lib/
38    cp /Library/Frameworks/Mono.framework/Libraries/libglibsharpglue-2* $PREFIX/lib/
39
40    mkdir -p $BUILD_PREFIX/lib/mono/4.5-api/
41    find /Library/Frameworks/Mono.framework/Versions/5*/lib/mono/* -name 'gtk-sharp.dll*' -exec cp '{}' $BUILD_PREFIX/lib/mono/4.5-api/ ';'
42    find /Library/Frameworks/Mono.framework/Versions/5*/lib/mono/* -name 'gdk-sharp.dll*' -exec cp '{}' $BUILD_PREFIX/lib/mono/4.5-api/ ';'
43    find /Library/Frameworks/Mono.framework/Versions/5*/lib/mono/* -name 'atk-sharp.dll*' -exec cp '{}' $BUILD_PREFIX/lib/mono/4.5-api/ ';'
44    find /Library/Frameworks/Mono.framework/Versions/5*/lib/mono/* -name 'glib-sharp.dll*' -exec cp '{}' $BUILD_PREFIX/lib/mono/4.5-api/ ';'
45    find /Library/Frameworks/Mono.framework/Versions/5*/lib/mono/* -name 'pango-sharp.dll*' -exec cp '{}' $BUILD_PREFIX/lib/mono/4.5-api/ ';'
46    cp /usr/lib/libc.dylib $PREFIX/lib/
47fi
48
49./build.sh
50
51mkdir -p $PREFIX/opt/renode/bin
52mkdir -p $PREFIX/opt/renode/scripts
53mkdir -p $PREFIX/opt/renode/platforms
54mkdir -p $PREFIX/opt/renode/tests
55mkdir -p $PREFIX/opt/renode/tools
56mkdir -p $PREFIX/opt/renode/licenses
57
58
59cp .renode-root $PREFIX/opt/renode/
60cp -r output/bin/Release/* $PREFIX/opt/renode/bin/
61cp -r scripts/* $PREFIX/opt/renode/scripts/
62cp -r platforms/* $PREFIX/opt/renode/platforms/
63cp -r tests/* $PREFIX/opt/renode/tests/
64cp -r tools/metrics_analyzer $PREFIX/opt/renode/tools
65cp -r tools/execution_tracer $PREFIX/opt/renode/tools
66cp -r tools/gdb_compare $PREFIX/opt/renode/tools
67cp -r tools/sel4_extensions $PREFIX/opt/renode/tools
68
69cp lib/resources/styles/robot.css $PREFIX/opt/renode/tests
70
71
72tools/packaging/common_copy_licenses.sh $PREFIX/opt/renode/licenses $_os_name
73
74
75sed -i.bak "s#os\.path\.join(this_path, '\.\./lib/resources/styles/robot\.css')#os.path.join(this_path,'robot.css')#g" $PREFIX/opt/renode/tests/robot_tests_provider.py
76rm $PREFIX/opt/renode/tests/robot_tests_provider.py.bak
77
78mkdir -p $PREFIX/bin/
79
80cat > $PREFIX/bin/renode <<"EOF"
81#!/usr/bin/env bash
82
83mono $MONO_OPTIONS $CONDA_PREFIX/opt/renode/bin/Renode.exe "$@"
84EOF
85
86cat > $PREFIX/bin/renode-test <<"EOF"
87#!/usr/bin/env bash
88
89STTY_CONFIG=`stty -g 2>/dev/null`
90python3 $CONDA_PREFIX/opt/renode/tests/run_tests.py --robot-framework-remote-server-full-directory $CONDA_PREFIX/opt/renode/bin "$@"
91RESULT_CODE=$?
92if [ -n "${STTY_CONFIG:-}" ]
93then
94    stty "$STTY_CONFIG"
95fi
96exit $RESULT_CODE
97EOF
98
99mkdir -p "${PREFIX}/etc/conda/activate.d"
100cp "${RECIPE_DIR}/activate.sh" "${PREFIX}/etc/conda/activate.d/${PKG_NAME}_activate.sh"
101
102