Skip to content

Commit 9fa1264

Browse files
committed
Update pre-build recipe
Create prebuild.sh script to perform all required actions. Same script for all supported host OS. Fixes stm32duino#957 when path contains space. Signed-off-by: Frederic Pillon <[email protected]>
1 parent 85a7a28 commit 9fa1264

File tree

2 files changed

+21
-16
lines changed

2 files changed

+21
-16
lines changed

extras/prebuild.sh

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#!/bin/bash
2+
3+
BUILD_PATH="$1"
4+
BUILD_SOURCE_PATH="$2"
5+
6+
# Create sketch dir if not exists
7+
if [ ! -f "$BUILD_PATH/sketch" ]; then
8+
mkdir -p "$BUILD_PATH/sketch"
9+
fi
10+
11+
# Create empty build.opt.h if not exists in the original sketch dir
12+
if [ ! -f "$BUILD_SOURCE_PATH/build_opt.h" ]; then
13+
touch "$BUILD_PATH/sketch/build_opt.h"
14+
fi
15+
16+
# Force include of SrcWrapper library
17+
echo "#include <SrcWrapper.h>" >"$BUILD_PATH/sketch/SrcWrapper.cpp"

platform.txt

+4-16
Original file line numberDiff line numberDiff line change
@@ -99,25 +99,13 @@ build.flash_offset=0
9999

100100
# Pre and post build hooks
101101
build.opt.name=build_opt.h
102-
build.opt.sourcepath={build.source.path}/{build.opt.name}
103102
build.opt.path={build.path}/sketch/{build.opt.name}
104103

105-
build.src_wrapper.path={build.path}/sketch/SrcWrapper.cpp
104+
extras.path={runtime.platform.path}/extras
106105

107-
# Create sketch dir if not exists
108-
recipe.hooks.prebuild.1.pattern.windows=cmd /c if not exist "{build.path}\sketch" mkdir "{build.path}\sketch"
109-
recipe.hooks.prebuild.1.pattern.linux=bash -c "[ -f {build.path}/sketch ] || mkdir -p {build.path}/sketch"
110-
recipe.hooks.prebuild.1.pattern.macosx=bash -c "[ -f {build.path}/sketch ] || mkdir -p {build.path}/sketch"
111-
112-
# Create empty {build.opt} if not exists in the sketch dir
113-
recipe.hooks.prebuild.2.pattern.windows=cmd /c if not exist "{build.opt.sourcepath}" type NUL > "{build.opt.path}"
114-
recipe.hooks.prebuild.2.pattern.linux=bash -c "[ -f {build.opt.sourcepath} ] || touch {build.opt.path}"
115-
recipe.hooks.prebuild.2.pattern.macosx=bash -c "[ -f {build.opt.sourcepath} ] || touch {build.opt.path}"
116-
117-
# Force include of SrcWrapper library
118-
recipe.hooks.prebuild.3.pattern.windows=cmd /c echo #include ^<SrcWrapper.h^> > "{build.src_wrapper.path}"
119-
recipe.hooks.prebuild.3.pattern.linux=bash -c "echo $0 > {build.src_wrapper.path}" "#include <SrcWrapper.h>"
120-
recipe.hooks.prebuild.3.pattern.macosx=bash -c "echo $0 > {build.src_wrapper.path}" "#include <SrcWrapper.h>"
106+
# Create empty {build.opt} if not exists in the output sketch dir and force include of SrcWrapper library
107+
recipe.hooks.prebuild.1.pattern="{extras.path}/prebuild.sh" "{build.path}" "{build.source.path}"
108+
recipe.hooks.prebuild.1.pattern.windows="{runtime.tools.STM32Tools.path}/tools/win/busybox.exe" sh "{extras.path}/prebuild.sh" "{build.path}" "{build.source.path}"
121109

122110
# compile patterns
123111
# ---------------------

0 commit comments

Comments
 (0)