add a wxGTK on macOS build action (PR #25924)

20 views
Skip to first unread message

Stefan Csomor

unread,
Oct 25, 2025, 5:25:41 AM (6 days ago) Oct 25
to wx-...@googlegroups.com, Subscribed

right now only manually triggered


You can view, comment on, or merge this pull request online at:

  https://github.com/wxWidgets/wxWidgets/pull/25924

Commit Summary

  • fe75b07 add a wxGTK on macOS build

File Changes

(1 file)

Patch Links:


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25924@github.com>

VZ

unread,
Oct 25, 2025, 9:00:13 AM (6 days ago) Oct 25
to wx-...@googlegroups.com, Subscribed

@vadz approved this pull request.

Looks good, thanks!


In .github/workflows/ci_mac_gtk.yml:

> +  
+      - name: Testing GUI
+        if: matrix.skip_testing != true
+        working-directory: tests
+        run: |
+          # We currently need to disable container overflow detection as we get
+          # what seems to be a false positive in BitmapComboBoxTestCase triggered
+          # by creating a new string from std::allocator<wxString>::construct()
+          # used by std::vector<>::insert().
+          export ASAN_OPTIONS='fast_unwind_on_malloc=0 detect_container_overflow=0'
+          # Exclude tests that are currently known to fail
+          wx_tests_selection='~[.] ~[valnum] ~wxPersistTLW ~wxPersistDVC ~wxTopLevel::Show ~wxFont::Weight ~wxFont::NativeFontInfo ~WebView ~RadioButton::Single ~RadioButton::Focus ~wxHtmlPrintout::Pagination ~wxTextCtrl::GetBestSize ~TextCtrlTestCase ~wxExecute::RedirectUTF8 ~Ellipsization::NormalCase ~SpinCtrl::* ~SpinCtrlDouble::* ~NotebookTestCase ~SettingsTestCase ~Window::Show ~ModalDialogsTestCase ~Button::Click ~Button::Disabled ~wxDVC::GetItemRect ~wxDVC::AppendTextColumn ~Grid::KeyboardSelection ~Grid::CellClick ~Grid::ReorderedColumnsCellClick ~Grid::CellSelect ~wxStyledTextCtrl::AutoComp ~EvtLoopTestCase ~EventPropagationTestCase ~wxTreeCtrl::ItemClick ~wxTreeCtrl::LabelEdit ~wxTreeCtrl::KeyDown ~wxTreeCtrl::CollapseExpandEvents ~wxTreeCtrl::SelectionChange ~wxTreeCtrl::SelectItemMultiInteractive ~wxTreeCtrl::Menu ~wxTreeCtrl::KeyNavigation'
+          ./test_gui.app/Contents/MacOS/test_gui $wx_tests_selection
+  
+      - name: Building samples
+        if: matrix.skip_testing != true && matrix.skip_samples != true

Probably should be

⬇️ Suggested change
-        if: matrix.skip_testing != true && matrix.skip_samples != true
+        if: matrix.skip_samples != true

In .github/workflows/ci_mac_gtk.yml:

> +          # We currently need to disable container overflow detection as we get
+          # what seems to be a false positive in BitmapComboBoxTestCase triggered
+          # by creating a new string from std::allocator<wxString>::construct()
+          # used by std::vector<>::insert().
+          export ASAN_OPTIONS='fast_unwind_on_malloc=0 detect_container_overflow=0'
+          # Exclude tests that are currently known to fail
+          wx_tests_selection='~[.] ~[valnum] ~wxPersistTLW ~wxPersistDVC ~wxTopLevel::Show ~wxFont::Weight ~wxFont::NativeFontInfo ~WebView ~RadioButton::Single ~RadioButton::Focus ~wxHtmlPrintout::Pagination ~wxTextCtrl::GetBestSize ~TextCtrlTestCase ~wxExecute::RedirectUTF8 ~Ellipsization::NormalCase ~SpinCtrl::* ~SpinCtrlDouble::* ~NotebookTestCase ~SettingsTestCase ~Window::Show ~ModalDialogsTestCase ~Button::Click ~Button::Disabled ~wxDVC::GetItemRect ~wxDVC::AppendTextColumn ~Grid::KeyboardSelection ~Grid::CellClick ~Grid::ReorderedColumnsCellClick ~Grid::CellSelect ~wxStyledTextCtrl::AutoComp ~EvtLoopTestCase ~EventPropagationTestCase ~wxTreeCtrl::ItemClick ~wxTreeCtrl::LabelEdit ~wxTreeCtrl::KeyDown ~wxTreeCtrl::CollapseExpandEvents ~wxTreeCtrl::SelectionChange ~wxTreeCtrl::SelectItemMultiInteractive ~wxTreeCtrl::Menu ~wxTreeCtrl::KeyNavigation'
+          ./test_gui.app/Contents/MacOS/test_gui $wx_tests_selection
+  
+      - name: Building samples
+        if: matrix.skip_testing != true && matrix.skip_samples != true
+        run: |
+          make -k $wxBUILD_ARGS "CXXFLAGS=$wxMAKEFILE_CXXFLAGS" "LDFLAGS=$wxMAKEFILE_LDFLAGS" samples
+  
+      - name: Installing
+        if: matrix.skip_testing != true

I think we should always test installation and compiling minimal using the installed version, this doesn't take much time and really should work.

I.e. I'd remove this if: and the one below.


In .github/workflows/ci_mac_gtk.yml:

> +        run: |
+          . ../build/tools/httpbin.sh
+          httpbin_launch
+          export ASAN_OPTIONS=fast_unwind_on_malloc=0
+          # Explicitly use bash because /bin/sh doesn't have pipefail option
+          /bin/bash -o pipefail -c './test 2>&1 | tee test.out' || rc=$?
+          if [ -n "$rc" ]; then
+            httpbin_show_log
+            exit $rc
+          fi
+  
+      - name: Testing GUI
+        if: matrix.skip_testing != true
+        working-directory: tests
+        run: |
+          # We currently need to disable container overflow detection as we get

I'm not sure if all this is relevant for this build...


In .github/workflows/ci_mac_gtk.yml:

> +          configure_flags: --disable-uiactionsim --with-cxx=11 --without-liblzma --enable-debug --disable-sys-libs --with-gtk=3 --with-opengl=no --enable-detect_sm=no
+          skip_samples: true
+          skip_testing: true
+          allow_warnings: true
+        
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v4
+        with:
+          submodules: recursive
+
+      - name: Set up Homebrew
+        id: set-up-homebrew
+        uses: Homebrew/actions/setup-homebrew@main
+      
+      - name: Install gtk+3

This is very nitpicky but they don't use "+" in their name any more, i.e.

⬇️ Suggested change
-      - name: Install gtk+3
+      - name: Install GTK 3

In .github/workflows/ci_mac_gtk.yml:

> +    defaults:
+      run:
+        shell: /usr/bin/arch -arch ${{ matrix.arch }} /bin/bash --noprofile --norc -eo pipefail {0}
+
+    runs-on: ${{ matrix.runner }}
+
+    name: ${{ matrix.name }}
+
+    strategy:
+      fail-fast: false
+      matrix:
+        include:
+        - name: wxGTK on macOS
+          runner: macos-latest
+          arch: arm64
+          configure_flags: --disable-uiactionsim --with-cxx=11 --without-liblzma --enable-debug --disable-sys-libs --with-gtk=3 --with-opengl=no --enable-detect_sm=no

Just out of curiosity, is OpenGL broken in this build?

Also, not sure why we need to disable LZMA, it will just be auto-disabled if support is not found?


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25924/review/3379963723@github.com>

Stefan Csomor

unread,
Oct 25, 2025, 9:45:46 AM (6 days ago) Oct 25
to wx-...@googlegroups.com, Push

@csomor pushed 1 commit.

  • 6b48059 Apply suggestions from code review


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25924/before/fe75b077e5edcf3dcaa725f7e8e963d74de542b4/after/6b48059d7652399504495efcb851745b65708567@github.com>

Stefan Csomor

unread,
Oct 25, 2025, 9:52:59 AM (6 days ago) Oct 25
to wx-...@googlegroups.com, Push

@csomor pushed 1 commit.

  • 944c1a0 as suggested, always install and make minmal sample


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25924/before/6b48059d7652399504495efcb851745b65708567/after/944c1a0a06bd89fe7fd48de1eb4c5e9e3eee3ff6@github.com>

Stefan Csomor

unread,
Oct 25, 2025, 9:55:10 AM (6 days ago) Oct 25
to wx-...@googlegroups.com, Subscribed

@csomor commented on this pull request.


In .github/workflows/ci_mac_gtk.yml:

> +        run: |
+          . ../build/tools/httpbin.sh
+          httpbin_launch
+          export ASAN_OPTIONS=fast_unwind_on_malloc=0
+          # Explicitly use bash because /bin/sh doesn't have pipefail option
+          /bin/bash -o pipefail -c './test 2>&1 | tee test.out' || rc=$?
+          if [ -n "$rc" ]; then
+            httpbin_show_log
+            exit $rc
+          fi
+  
+      - name: Testing GUI
+        if: matrix.skip_testing != true
+        working-directory: tests
+        run: |
+          # We currently need to disable container overflow detection as we get

I thought perhaps more functionality might be used once, so I've copied the steps from our other command line mac builds, but of course we could remove things


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25924/review/3380009237@github.com>

Stefan Csomor

unread,
Oct 25, 2025, 10:01:19 AM (6 days ago) Oct 25
to wx-...@googlegroups.com, Subscribed

@csomor commented on this pull request.


In .github/workflows/ci_mac_gtk.yml:

> +    defaults:
+      run:
+        shell: /usr/bin/arch -arch ${{ matrix.arch }} /bin/bash --noprofile --norc -eo pipefail {0}
+
+    runs-on: ${{ matrix.runner }}
+
+    name: ${{ matrix.name }}
+
+    strategy:
+      fail-fast: false
+      matrix:
+        include:
+        - name: wxGTK on macOS
+          runner: macos-latest
+          arch: arm64
+          configure_flags: --disable-uiactionsim --with-cxx=11 --without-liblzma --enable-debug --disable-sys-libs --with-gtk=3 --with-opengl=no --enable-detect_sm=no

the LZMA was a left over from an earlier configure line of mine, I'll remove that. With OpenGL I ran into a build problem, apparently the homebrew version of gtk+ uses Quartz and not X11 anymore.


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25924/review/3380013914@github.com>

Stefan Csomor

unread,
Oct 25, 2025, 10:02:21 AM (6 days ago) Oct 25
to wx-...@googlegroups.com, Subscribed

@csomor commented on this pull request.


In .github/workflows/ci_mac_gtk.yml:

> +          # We currently need to disable container overflow detection as we get
+          # what seems to be a false positive in BitmapComboBoxTestCase triggered
+          # by creating a new string from std::allocator<wxString>::construct()
+          # used by std::vector<>::insert().
+          export ASAN_OPTIONS='fast_unwind_on_malloc=0 detect_container_overflow=0'
+          # Exclude tests that are currently known to fail
+          wx_tests_selection='~[.] ~[valnum] ~wxPersistTLW ~wxPersistDVC ~wxTopLevel::Show ~wxFont::Weight ~wxFont::NativeFontInfo ~WebView ~RadioButton::Single ~RadioButton::Focus ~wxHtmlPrintout::Pagination ~wxTextCtrl::GetBestSize ~TextCtrlTestCase ~wxExecute::RedirectUTF8 ~Ellipsization::NormalCase ~SpinCtrl::* ~SpinCtrlDouble::* ~NotebookTestCase ~SettingsTestCase ~Window::Show ~ModalDialogsTestCase ~Button::Click ~Button::Disabled ~wxDVC::GetItemRect ~wxDVC::AppendTextColumn ~Grid::KeyboardSelection ~Grid::CellClick ~Grid::ReorderedColumnsCellClick ~Grid::CellSelect ~wxStyledTextCtrl::AutoComp ~EvtLoopTestCase ~EventPropagationTestCase ~wxTreeCtrl::ItemClick ~wxTreeCtrl::LabelEdit ~wxTreeCtrl::KeyDown ~wxTreeCtrl::CollapseExpandEvents ~wxTreeCtrl::SelectionChange ~wxTreeCtrl::SelectItemMultiInteractive ~wxTreeCtrl::Menu ~wxTreeCtrl::KeyNavigation'
+          ./test_gui.app/Contents/MacOS/test_gui $wx_tests_selection
+  
+      - name: Building samples
+        if: matrix.skip_testing != true && matrix.skip_samples != true
+        run: |
+          make -k $wxBUILD_ARGS "CXXFLAGS=$wxMAKEFILE_CXXFLAGS" "LDFLAGS=$wxMAKEFILE_LDFLAGS" samples
+  
+      - name: Installing
+        if: matrix.skip_testing != true

Thanks, did that


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25924/review/3380014875@github.com>

Stefan Csomor

unread,
Oct 25, 2025, 10:02:40 AM (6 days ago) Oct 25
to wx-...@googlegroups.com, Push

@csomor pushed 1 commit.

  • d03680b Removed unnecessary LZMA configure flag


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25924/before/944c1a0a06bd89fe7fd48de1eb4c5e9e3eee3ff6/after/d03680bfde855f672c58b9918a1192f87b6e10df@github.com>

Stefan Csomor

unread,
Oct 29, 2025, 10:43:05 AM (2 days ago) Oct 29
to wx-...@googlegroups.com, Subscribed

Merged #25924 into master.


Reply to this email directly, view it on GitHub, or unsubscribe.

You are receiving this because you are subscribed to this thread.Message ID: <wxWidgets/wxWidgets/pull/25924/issue_event/20581944591@github.com>

Reply all
Reply to author
Forward
0 new messages