Skip to content

Build All Windows

Build All Windows #9

Workflow file for this run

# 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