Build All Windows #9
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 |