-
Notifications
You must be signed in to change notification settings - Fork 6
99 lines (91 loc) · 4.29 KB
/
build-windows.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# Manually started action to build Picotool/OpenOCD for Windows and upload to an artifact
name: Build All Windows
on: [workflow_dispatch]
jobs:
build:
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
strategy:
matrix:
include:
- { sys: mingw64, env: x86_64 }
- { sys: mingw32, env: i686 }
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: ${{matrix.sys}}
install: development mingw-w64-${{matrix.env}}-make mingw-w64-${{matrix.env}}-pkg-config mingw-w64-${{matrix.env}}-autotools texinfo mingw-w64-${{matrix.env}}-hidapi git mingw-w64-${{matrix.env}}-toolchain patch mingw-w64-${{matrix.env}}-cmake pkg-config
- name: Build Picotool ${{matrix.env}}
run: |
# Get the SDK ready
git clone https://github.com/raspberrypi/pico-sdk.git
cd pico-sdk
git checkout 2.0.0
git submodule update --init
cd ..
# Manually bring in libusb from upstream, mingw not finding it anymore
mkdir libusb
cd libusb
wget https://www.7-zip.org/a/7zr.exe
wget https://github.com/libusb/libusb/releases/download/v1.0.27/libusb-1.0.27.7z
./7zr x libusb-1.0.27.7z
cp -a include /mingw64/include/libusb-1.0
if [ ${{matrix.env}} == i686]; then cp MinGW32/static/* /mingw*/bin/; fi
if [ ${{matrix.env}} == x86_64]; then cp MinGW32/static/* /mingw*/bin/; fi
cd ..
# Check out this branch
git clone https://github.com/raspberrypi/picotool.git
cd picotool
git checkout 2.0.0
# Build!
mkdir build
cd build
if [ -e /mingw64/include/libusb-1.0/ ]; then cmake -G"MSYS Makefiles" -DPICO_SDK_PATH=../../pico-sdk -DLIBUSB_INCLUDE_DIR=/mingw64/include/libusb-1.0/ -S .. -B . ; else cmake -G"MSYS Makefiles" -DPICO_SDK_PATH=../../pico-sdk -DLIBUSB_INCLUDE_DIR=/mingw32/include/libusb-1.0/ -S .. -B . ; fi
make -j
strip picotool.exe
# Package
mkdir /tmp/picotool
cp /mingw*/bin/libhidapi*.dll /tmp/picotool/.
# cp /mingw*/bin/libusb*.dll /tmp/picotool/.
cp -a picotool.exe /tmp/picotool/.
cp -a ../LICENSE.TXT /tmp/picotool/.
cp -a ../README.md /tmp/picotool/.
tar cvf ../../picotool.${{matrix.env}}.tar -C /tmp picotool
- name: Upload Picotool ${{matrix.env}}
uses: actions/upload-artifact@v4
with:
name: picotool.${{matrix.env}}.tar
path: picotool.${{matrix.env}}.tar
- name: Build OpenOCD ${{matrix.env}}
run: |
git clone https://github.com/raspberrypi/openocd.git
pushd openocd
git checkout sdk-2.0.0
bash bootstrap
./configure --prefix=/tmp/openocd --enable-picoprobe --enable-cmsis-dap-v2 --enable-cmsis-dap \
--disable-dummy --disable-rshim --disable-ftdi --disable-stlink --disable-ti-icdi \
--disable-ulink --disable-usb-blaster-2 --disable-ft232r --disable-vsllink \
--disable-xds110 --disable-osbdm --disable-opendous --disable-aice --disable-usbprog \
--disable-rlink --disable-armjtagew --disable-nulink --disable-kitprog \
--disable-usb-blaster --disable-presto --disable-openjtag --disable-jlink \
--disable-parport --disable-parport-ppdev --disable-parport-giveio --disable-jtag_vpi \
--disable-jtag_dpi --disable-amtjtagaccel --disable-zy1000-master --disable-zy1000 \
--disable-ioutil --disable-bcm2835gpio --disable-imx_gpio --disable-ep93xx \
--disable-at91rm9200 --disable-gw16012 --disable-oocd_trace --disable-buspirate \
--disable-sysfsgpio --disable-xlnx-pcie-xvc --disable-minidriver-dummy \
--disable-remote-bitbang
make -j
make install
echo Copying needed DLLs and packaging as tarball
cp /mingw*/bin/libhidapi*.dll /tmp/openocd/bin/.
#cp /mingw*/bin/libusb*.dll /tmp/openocd/bin/.
popd
strip /tmp/openocd/bin/openocd.exe
tar cvf openocd.${{matrix.env}}.tar -C /tmp openocd
- name: Upload OpenOCD ${{matrix.env}}
uses: actions/upload-artifact@v4
with:
name: openocd.${{matrix.env}}.tar
path: openocd.${{matrix.env}}.tar