|
34 | 34 | fi
|
35 | 35 | export OS_NAME
|
36 | 36 |
|
37 |
| -ARDUINO_BUILD_DIR="$HOME/.arduino/build.tmp" |
38 |
| -ARDUINO_CACHE_DIR="$HOME/.arduino/cache.tmp" |
39 |
| - |
40 | 37 | if [ "$OS_IS_MACOS" == "1" ]; then
|
41 | 38 | export ARDUINO_IDE_PATH="/Applications/Arduino.app/Contents/Java"
|
42 | 39 | export ARDUINO_USR_PATH="$HOME/Documents/Arduino"
|
@@ -81,156 +78,3 @@ if [ ! -d "$ARDUINO_IDE_PATH" ]; then
|
81 | 78 | echo ""
|
82 | 79 | fi
|
83 | 80 |
|
84 |
| -function build_sketch(){ # build_sketch <fqbn> <path-to-ino> [extra-options] |
85 |
| - if [ "$#" -lt 2 ]; then |
86 |
| - echo "ERROR: Illegal number of parameters" |
87 |
| - echo "USAGE: build_sketch <fqbn> <path-to-ino> [extra-options]" |
88 |
| - return 1 |
89 |
| - fi |
90 |
| - |
91 |
| - local fqbn="$1" |
92 |
| - local sketch="$2" |
93 |
| - local xtra_opts="$3" |
94 |
| - local win_opts="" |
95 |
| - if [ "$OS_IS_WINDOWS" == "1" ]; then |
96 |
| - local ctags_version=`ls "$ARDUINO_IDE_PATH/tools-builder/ctags/"` |
97 |
| - local preprocessor_version=`ls "$ARDUINO_IDE_PATH/tools-builder/arduino-preprocessor/"` |
98 |
| - win_opts="-prefs=runtime.tools.ctags.path=$ARDUINO_IDE_PATH/tools-builder/ctags/$ctags_version -prefs=runtime.tools.arduino-preprocessor.path=$ARDUINO_IDE_PATH/tools-builder/arduino-preprocessor/$preprocessor_version" |
99 |
| - fi |
100 |
| - |
101 |
| - #echo "" |
102 |
| - #echo "Compiling '"$(basename "$sketch")"' ..." |
103 |
| - mkdir -p "$ARDUINO_BUILD_DIR" |
104 |
| - mkdir -p "$ARDUINO_CACHE_DIR" |
105 |
| - $ARDUINO_IDE_PATH/arduino-builder -compile -logger=human -core-api-version=10810 \ |
106 |
| - -fqbn=$fqbn \ |
107 |
| - -warnings="all" \ |
108 |
| - -tools "$ARDUINO_IDE_PATH/tools-builder" \ |
109 |
| - -tools "$ARDUINO_IDE_PATH/tools" \ |
110 |
| - -built-in-libraries "$ARDUINO_IDE_PATH/libraries" \ |
111 |
| - -hardware "$ARDUINO_IDE_PATH/hardware" \ |
112 |
| - -hardware "$ARDUINO_USR_PATH/hardware" \ |
113 |
| - -libraries "$ARDUINO_USR_PATH/libraries" \ |
114 |
| - -build-cache "$ARDUINO_CACHE_DIR" \ |
115 |
| - -build-path "$ARDUINO_BUILD_DIR" \ |
116 |
| - $win_opts $xtra_opts "$sketch" |
117 |
| -} |
118 |
| - |
119 |
| -function count_sketches(){ # count_sketches <examples-path> <target-mcu> |
120 |
| - local examples="$1" |
121 |
| - local target="$2" |
122 |
| - rm -rf sketches.txt |
123 |
| - if [ ! -d "$examples" ]; then |
124 |
| - touch sketches.txt |
125 |
| - return 0 |
126 |
| - fi |
127 |
| - local sketches=$(find $examples -name *.ino) |
128 |
| - local sketchnum=0 |
129 |
| - for sketch in $sketches; do |
130 |
| - local sketchdir=$(dirname $sketch) |
131 |
| - local sketchdirname=$(basename $sketchdir) |
132 |
| - local sketchname=$(basename $sketch) |
133 |
| - if [[ "$sketchdirname.ino" != "$sketchname" ]]; then |
134 |
| - continue |
135 |
| - elif [[ -f "$sketchdir/.skip.$target" ]]; then |
136 |
| - continue |
137 |
| - else |
138 |
| - echo $sketch >> sketches.txt |
139 |
| - sketchnum=$(($sketchnum + 1)) |
140 |
| - fi |
141 |
| - done |
142 |
| - return $sketchnum |
143 |
| -} |
144 |
| - |
145 |
| -function build_sketches(){ # build_sketches <fqbn> <target-mcu> <examples-path> <chunk> <total-chunks> [extra-options] |
146 |
| - local fqbn=$1 |
147 |
| - local target="$2" |
148 |
| - local examples=$3 |
149 |
| - local chunk_idex=$4 |
150 |
| - local chunks_num=$5 |
151 |
| - local xtra_opts=$6 |
152 |
| - |
153 |
| - if [ "$#" -lt 3 ]; then |
154 |
| - echo "ERROR: Illegal number of parameters" |
155 |
| - echo "USAGE: build_sketches <fqbn> <target-mcu <examples-path> [<chunk> <total-chunks>] [extra-options]" |
156 |
| - return 1 |
157 |
| - fi |
158 |
| - |
159 |
| - if [ "$#" -lt 5 ]; then |
160 |
| - chunk_idex="0" |
161 |
| - chunks_num="1" |
162 |
| - xtra_opts=$4 |
163 |
| - fi |
164 |
| - |
165 |
| - if [ "$chunks_num" -le 0 ]; then |
166 |
| - echo "ERROR: Chunks count must be positive number" |
167 |
| - return 1 |
168 |
| - fi |
169 |
| - if [ "$chunk_idex" -ge "$chunks_num" ] && [ "$chunks_num" -ge 2 ]; then |
170 |
| - echo "ERROR: Chunk index must be less than chunks count" |
171 |
| - return 1 |
172 |
| - fi |
173 |
| - |
174 |
| - set +e |
175 |
| - count_sketches "$examples" "$target" |
176 |
| - local sketchcount=$? |
177 |
| - set -e |
178 |
| - local sketches=$(cat sketches.txt) |
179 |
| - rm -rf sketches.txt |
180 |
| - |
181 |
| - local chunk_size=$(( $sketchcount / $chunks_num )) |
182 |
| - local all_chunks=$(( $chunks_num * $chunk_size )) |
183 |
| - if [ "$all_chunks" -lt "$sketchcount" ]; then |
184 |
| - chunk_size=$(( $chunk_size + 1 )) |
185 |
| - fi |
186 |
| - |
187 |
| - local start_index=0 |
188 |
| - local end_index=0 |
189 |
| - if [ "$chunk_idex" -ge "$chunks_num" ]; then |
190 |
| - start_index=$chunk_idex |
191 |
| - end_index=$sketchcount |
192 |
| - else |
193 |
| - start_index=$(( $chunk_idex * $chunk_size )) |
194 |
| - if [ "$sketchcount" -le "$start_index" ]; then |
195 |
| - echo "Skipping job" |
196 |
| - return 0 |
197 |
| - fi |
198 |
| - |
199 |
| - end_index=$(( $(( $chunk_idex + 1 )) * $chunk_size )) |
200 |
| - if [ "$end_index" -gt "$sketchcount" ]; then |
201 |
| - end_index=$sketchcount |
202 |
| - fi |
203 |
| - fi |
204 |
| - |
205 |
| - local start_num=$(( $start_index + 1 )) |
206 |
| - echo "Found $sketchcount Sketches for target '$target'"; |
207 |
| - echo "Chunk Index : $chunk_idex" |
208 |
| - echo "Chunk Count : $chunks_num" |
209 |
| - echo "Chunk Size : $chunk_size" |
210 |
| - echo "Start Sketch: $start_num" |
211 |
| - echo "End Sketch : $end_index" |
212 |
| - |
213 |
| - local sketchnum=0 |
214 |
| - for sketch in $sketches; do |
215 |
| - local sketchdir=$(dirname $sketch) |
216 |
| - local sketchdirname=$(basename $sketchdir) |
217 |
| - local sketchname=$(basename $sketch) |
218 |
| - if [ "${sketchdirname}.ino" != "$sketchname" ] \ |
219 |
| - || [ -f "$sketchdir/.skip.$target" ]; then |
220 |
| - continue |
221 |
| - fi |
222 |
| - sketchnum=$(($sketchnum + 1)) |
223 |
| - if [ "$sketchnum" -le "$start_index" ] \ |
224 |
| - || [ "$sketchnum" -gt "$end_index" ]; then |
225 |
| - continue |
226 |
| - fi |
227 |
| - echo "" |
228 |
| - echo "Building Sketch Index $(($sketchnum - 1)) - $sketchdirname" |
229 |
| - build_sketch "$fqbn" "$sketch" "$xtra_opts" |
230 |
| - local result=$? |
231 |
| - if [ $result -ne 0 ]; then |
232 |
| - return $result |
233 |
| - fi |
234 |
| - done |
235 |
| - return 0 |
236 |
| -} |
0 commit comments