From b8594d1df1daae562af1f9d981f011db0a526972 Mon Sep 17 00:00:00 2001 From: Hans Ulrich Niedermann Date: Wed, 20 Nov 2024 16:51:57 +0100 Subject: [PATCH] ci: Fix macos brew install issue with pkg-config The macos build's "brew install" command has developed a build failure without us being involved at all: Error: The `brew link` step did not complete successfully The formula built, but is not symlinked into /opt/homebrew Could not symlink bin/pkg-config Target /opt/homebrew/bin/pkg-config is a symlink belonging to pkg-config@0.29.2. You can unlink it: brew unlink pkg-config@0.29.2 This makes the macos build work again and implements the suggestions brew prints when installing bison and flex, regarding PATH, LDFLAGS, and CPPFLAGS. --- .github/workflows/build.yml | 36 ++++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0c84d5e1..ee771db5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -218,10 +218,12 @@ jobs: runs-on: macos-latest steps: - uses: actions/checkout@v3 + - name: Original PATH and build tools + run: | + echo "PATH=$PATH" + for b in bison flex pkg-config; do type "$b"; done - name: Install prerequisites run: >- - # brew update - brew install cmake flex @@ -233,12 +235,18 @@ jobs: libftdi readline libserialport - pkg-config + - name: Configure environment to use brew kegs for flex and bison + run: | + echo "PATH=/opt/homebrew/opt/flex/bin:/opt/homebrew/opt/bison/bin:$PATH" >> $GITHUB_ENV + - name: post-brew PATH and build tools + run: | + echo "PATH=$PATH" + for b in bison flex pkg-config; do type "$b"; done - name: Configure run: >- cmake - -D CMAKE_C_FLAGS=-I/opt/homebrew/include - -D CMAKE_EXE_LINKER_FLAGS=-L/opt/homebrew/Cellar + -D CMAKE_C_FLAGS="-I/opt/homebrew/include -I/opt/homebrew/opt/flex/include" + -D CMAKE_EXE_LINKER_FLAGS="-L/opt/homebrew/Cellar -L/opt/homebew/opt/flex/lib" -D DEBUG_CMAKE=1 -D CMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -B build @@ -269,10 +277,12 @@ jobs: runs-on: macos-latest steps: - uses: actions/checkout@v3 + - name: Original PATH and build tools + run: | + echo "PATH=$PATH" + for b in bison flex pkg-config; do type "$b"; done - name: Install prerequisites run: >- - # brew update - brew install automake autoconf @@ -286,15 +296,21 @@ jobs: libftdi readline libserialport - pkg-config + - name: Configure environment to use brew kegs for flex and bison + run: | + echo "PATH=/opt/homebrew/opt/flex/bin:/opt/homebrew/opt/bison/bin:$PATH" >> $GITHUB_ENV + - name: post-brew PATH and build tools + run: | + echo "PATH=$PATH" + for b in bison flex pkg-config; do type "$b"; done - name: Configure run: >- ./src/bootstrap mkdir _ambuild && cd _ambuild - CFLAGS="-I/opt/homebrew/include" - LDFLAGS="-L/opt/homebrew/lib" + CFLAGS="-I/opt/homebrew/include -I/opt/homebrew/opt/flex/include" + LDFLAGS="-L/opt/homebrew/lib -L/opt/homebrew/opt/bison/lib" ../src/configure - name: Build