|
2 | 2 | MY_DIR="$(dirname $0)" |
3 | 3 | HOST="$(uname | tr A-Z a-z)" |
4 | 4 |
|
5 | | -NATIVE_DIR="${MY_DIR}/../../src/native/mono" |
6 | | -MONODROID_SOURCE_DIR="${NATIVE_DIR}/pinvoke-override" |
7 | | -GENERATOR_SOURCE="${MONODROID_SOURCE_DIR}/generate-pinvoke-tables.cc" |
8 | | -GENERATOR_BINARY="${MONODROID_SOURCE_DIR}/generate-pinvoke-tables" |
9 | | -TARGET_FILE="${MONODROID_SOURCE_DIR}/pinvoke-tables.include" |
| 5 | +NATIVE_DIR="${MY_DIR}/../../src/native" |
| 6 | +MONODROID_SOURCE_DIR="${NATIVE_DIR}/mono/pinvoke-override" |
| 7 | +MONODROID_INCLUDE_DIR="${NATIVE_DIR}/mono/shared" |
| 8 | +CLR_SOURCE_DIR="${NATIVE_DIR}/clr/host" |
| 9 | +CLR_INCLUDE_DIR="${NATIVE_DIR}/clr/include/shared" |
| 10 | +GENERATOR_SOURCE="generate-pinvoke-tables.cc" |
| 11 | +GENERATOR_BINARY="generate-pinvoke-tables" |
| 12 | +TARGET_FILE="pinvoke-tables.include" |
10 | 13 | GENERATED_FILE="${TARGET_FILE}.generated" |
11 | 14 | DIFF_FILE="${TARGET_FILE}.diff" |
12 | 15 | EXTERNAL_DIR="${MY_DIR}/../../external/" |
@@ -64,33 +67,61 @@ case ${HOST} in |
64 | 67 | *) die Unsupported OS ;; |
65 | 68 | esac |
66 | 69 |
|
67 | | -${COMPILER} -O2 -std=c++20 -I${EXTERNAL_DIR} -I${EXTERNAL_DIR}/constexpr-xxh3 -I${NATIVE_DIR}/shared -I${NATIVE_DIR}/../common/include "${GENERATOR_SOURCE}" -o "${GENERATOR_BINARY}" |
68 | | -"${GENERATOR_BINARY}" "${GENERATED_FILE}" |
69 | | - |
70 | | -FILES_DIFFER="no" |
71 | | -cmp "${GENERATED_FILE}" "${TARGET_FILE}" > /dev/null 2>&1 || FILES_DIFFER="yes" |
72 | | - |
73 | | -RETVAL=0 |
74 | | -if [ "${TEST_ONLY}" == "no" ]; then |
75 | | - if [ "${FILES_DIFFER}" == "yes" ]; then |
76 | | - mv "${GENERATED_FILE}" "${TARGET_FILE}" |
77 | | - else |
78 | | - rm "${GENERATED_FILE}" |
79 | | - fi |
80 | | -else |
81 | | - if [ "${FILES_DIFFER}" == "yes" ]; then |
82 | | - echo "Generated p/invokes table file differs from the current one" |
83 | | - diff -U3 -Narp "${TARGET_FILE}" "${GENERATED_FILE}" > "${DIFF_FILE}" |
84 | | - |
85 | | - echo "Diff file saved in: ${DIFF_FILE}" |
86 | | - echo "------ DIFF START ------" |
87 | | - cat "${DIFF_FILE}" |
88 | | - echo "------ DIFF END ------" |
89 | | - echo |
90 | | - RETVAL=1 |
| 70 | +function generate() |
| 71 | +{ |
| 72 | + local SOURCE_DIR="${1}" |
| 73 | + local INCLUDE_DIR="${2}" |
| 74 | + local SOURCE="${SOURCE_DIR}/${GENERATOR_SOURCE}" |
| 75 | + local BINARY="${SOURCE_DIR}/${GENERATOR_BINARY}" |
| 76 | + local RESULT="${SOURCE_DIR}/${GENERATED_FILE}" |
| 77 | + local TARGET="${SOURCE_DIR}/${TARGET_FILE}" |
| 78 | + local DIFF="${SOURCE_DIR}/${DIFF_FILE}" |
| 79 | + |
| 80 | + ${COMPILER} -O2 -std=c++20 -I${EXTERNAL_DIR} -I${EXTERNAL_DIR}/constexpr-xxh3 -I${INCLUDE_DIR} -I${NATIVE_DIR}/common/include "${SOURCE}" -o "${BINARY}" |
| 81 | + "${BINARY}" "${RESULT}" |
| 82 | + |
| 83 | + FILES_DIFFER="no" |
| 84 | + cmp "${RESULT}" "${TARGET}" > /dev/null 2>&1 || FILES_DIFFER="yes" |
| 85 | + |
| 86 | + if [ "${TEST_ONLY}" == "no" ]; then |
| 87 | + if [ "${FILES_DIFFER}" == "yes" ]; then |
| 88 | + mv "${RESULT}" "${TARGET}" |
| 89 | + else |
| 90 | + rm "${RESULT}" |
| 91 | + fi |
91 | 92 | else |
92 | | - echo Generated file is identical to the current one |
| 93 | + if [ "${FILES_DIFFER}" == "yes" ]; then |
| 94 | + echo "Generated p/invokes table file differs from the current one" |
| 95 | + diff -U3 -Narp "${TARGET}" "${RESULT}" > "${DIFF}" |
| 96 | + |
| 97 | + echo "Diff file saved in: ${DIFF}" |
| 98 | + echo "------ DIFF START ------" |
| 99 | + cat "${DIFF}" |
| 100 | + echo "------ DIFF END ------" |
| 101 | + echo |
| 102 | + RETVAL=1 |
| 103 | + else |
| 104 | + echo Generated file is identical to the current one |
| 105 | + fi |
93 | 106 | fi |
94 | | -fi |
| 107 | +} |
| 108 | + |
| 109 | +RETVAL=0 |
| 110 | +cat <<EOF |
| 111 | +** |
| 112 | +** Generating for MonoVM |
| 113 | +** |
| 114 | +EOF |
| 115 | +generate "${MONODROID_SOURCE_DIR}" "${MONODROID_INCLUDE_DIR}" |
| 116 | + |
| 117 | +cat <<EOF |
| 118 | +
|
| 119 | +-------------------------------------- |
| 120 | +
|
| 121 | +** |
| 122 | +** Generating for CoreCLR |
| 123 | +** |
| 124 | +EOF |
| 125 | +generate "${CLR_SOURCE_DIR}" "${CLR_INCLUDE_DIR}" |
95 | 126 |
|
96 | 127 | exit ${RETVAL} |
0 commit comments