From 27aae34e14fbd587f836b8e1668cb5275291f36f Mon Sep 17 00:00:00 2001 From: Martin Corino Date: Sat, 13 Jan 2024 14:03:41 +0100 Subject: [PATCH 1/6] bump version for next release --- lib/wx/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/wx/version.rb b/lib/wx/version.rb index d7833251..efd72cac 100644 --- a/lib/wx/version.rb +++ b/lib/wx/version.rb @@ -3,5 +3,5 @@ # This software is released under the MIT license. module Wx - WXRUBY_VERSION = '0.9.4' + WXRUBY_VERSION = '0.9.5' end From 4d6c0c882319f9c7959e4f59743e2f08d0394969 Mon Sep 17 00:00:00 2001 From: mcorino Date: Sat, 13 Jan 2024 16:00:00 +0100 Subject: [PATCH 2/6] fix doxygen version dependency --- rakelib/lib/extractor/module.rb | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/rakelib/lib/extractor/module.rb b/rakelib/lib/extractor/module.rb index 5f395f8b..103d0f61 100644 --- a/rakelib/lib/extractor/module.rb +++ b/rakelib/lib/extractor/module.rb @@ -117,6 +117,13 @@ def add_element(element) when 'file', 'namespace' Extractor.extracting_msg(kind, element, 'compoundname') element.xpath('sectiondef/memberdef').each { |node| self.add_element(node) } + # from doxygen 1.9.7 onwards some members are not included in the same XML file + # but referenced from another XML file; so we need to resolve such references + # and than add the resolved element + element.xpath('sectiondef/member').each do |node| + node = self.resolveRefId(node) + self.add_element(node) + end else raise ExtractorError.new('Unknown module item kind: %s' % kind) @@ -124,6 +131,14 @@ def add_element(element) item end + def resolveRefId(node) + refid = node['refid'].split('_') + refid.pop + fname = File.join(Extractor.xml_dir, refid.join('_')+'.xml') + root = File.open(fname) {|f| Nokogiri::XML(f) }.root + root.at_xpath(".//sectiondef/memberdef[@id='#{node['refid']}']") + end + # Add a new C++ function into the module that is written by hand, not # wrapped. def add_cpp_function(type, name, argsString, body, doc = nil, **kwargs) From 8154cc92478185d8b349f421a0179b8285f0f4fc Mon Sep 17 00:00:00 2001 From: Martin Corino Date: Sun, 14 Jan 2024 09:55:54 +0100 Subject: [PATCH 3/6] allow use of new doxygen versions --- .github/workflows/mac.yml | 5 ++--- .github/workflows/msw.yml | 10 +++++----- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index f1cf0279..6d26df1a 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -172,10 +172,9 @@ jobs: run: | brew install swig - - name: Install doxygen 1.9.6 + - name: Install doxygen run: | - brew tap mcorino/wxruby3 - brew install doxygen@1.9.6 + brew install doxygen - name: Show build environment run: | diff --git a/.github/workflows/msw.yml b/.github/workflows/msw.yml index 33968714..a4579152 100644 --- a/.github/workflows/msw.yml +++ b/.github/workflows/msw.yml @@ -123,16 +123,16 @@ jobs: - name: Download Doxygen tool if: steps.cache-doxygen.outputs.cache-hit != 'true' run: | - wget.exe https://www.doxygen.nl/files/doxygen-1.9.6.windows.x64.bin.zip - $hash = 'bdf1af97a733edd0a60fce2cf375c5c3' - if ((Get-FileHash doxygen-1.9.6.windows.x64.bin.zip -Algorithm MD5).Hash -ne $hash) { - del doxygen-1.9.6.windows.x64.bin.zip + wget.exe https://www.doxygen.nl/files/doxygen-1.10.0.windows.x64.bin.zip + $hash = '2135c1d5bdd6e067b3d0c40a4daac5d63d0fee1b3f4d6ef1e4f092db0d632d5b' + if ((Get-FileHash doxygen-1.10.0.windows.x64.bin.zip -Algorithm SHA-256).Hash -ne $hash) { + del doxygen-1.10.0.windows.x64.bin.zip throw "Doxygen Hash doesn't match!" } - name: Install Doxygen package run: | - Expand-Archive -LiteralPath '.\doxygen-1.9.6.windows.x64.bin.zip' -DestinationPath $env:DOXYGEN_ROOT -Force + Expand-Archive -LiteralPath '.\doxygen-1.10.0.windows.x64.bin.zip' -DestinationPath $env:DOXYGEN_ROOT -Force echo "$env:DOXYGEN_ROOT" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - name: Display build environment From ab3cee702464f84c412b8b459688fb0b53a54206 Mon Sep 17 00:00:00 2001 From: Martin Corino Date: Sun, 14 Jan 2024 10:09:58 +0100 Subject: [PATCH 4/6] fix doxygen cache step --- .github/workflows/msw.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/msw.yml b/.github/workflows/msw.yml index a4579152..1e393b94 100644 --- a/.github/workflows/msw.yml +++ b/.github/workflows/msw.yml @@ -117,7 +117,7 @@ jobs: id: cache-doxygen uses: actions/cache@v3 with: - path: doxygen-1.9.6.windows.x64.bin.zip + path: doxygen-1.10.0.windows.x64.bin.zip key: ${{ runner.os }}-doxygen - name: Download Doxygen tool From eac189a3046561059bed6a15f684d660e7068515 Mon Sep 17 00:00:00 2001 From: Martin Corino Date: Sun, 14 Jan 2024 10:20:09 +0100 Subject: [PATCH 5/6] fix hash algo name --- .github/workflows/msw.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/msw.yml b/.github/workflows/msw.yml index 1e393b94..f172aa78 100644 --- a/.github/workflows/msw.yml +++ b/.github/workflows/msw.yml @@ -125,7 +125,7 @@ jobs: run: | wget.exe https://www.doxygen.nl/files/doxygen-1.10.0.windows.x64.bin.zip $hash = '2135c1d5bdd6e067b3d0c40a4daac5d63d0fee1b3f4d6ef1e4f092db0d632d5b' - if ((Get-FileHash doxygen-1.10.0.windows.x64.bin.zip -Algorithm SHA-256).Hash -ne $hash) { + if ((Get-FileHash doxygen-1.10.0.windows.x64.bin.zip -Algorithm SHA256).Hash -ne $hash) { del doxygen-1.10.0.windows.x64.bin.zip throw "Doxygen Hash doesn't match!" } From cf46dd1a1c5715640d6d9aae35c92c5e150e5969 Mon Sep 17 00:00:00 2001 From: Martin Corino Date: Sun, 14 Jan 2024 14:50:33 +0100 Subject: [PATCH 6/6] update all workflows and docs for doxygen version restriction removal --- .github/workflows/msw-master.yml | 12 ++++++------ .github/workflows/release.yml | 18 +++++++++--------- INSTALL.md | 2 +- README.md | 2 +- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.github/workflows/msw-master.yml b/.github/workflows/msw-master.yml index 778e102a..5b662387 100644 --- a/.github/workflows/msw-master.yml +++ b/.github/workflows/msw-master.yml @@ -62,22 +62,22 @@ jobs: id: cache-doxygen uses: actions/cache@v3 with: - path: doxygen-1.9.6.windows.x64.bin.zip + path: doxygen-1.10.0.windows.x64.bin.zip key: ${{ runner.os }}-doxygen - name: Download Doxygen tool if: steps.cache-doxygen.outputs.cache-hit != 'true' run: | - wget.exe https://www.doxygen.nl/files/doxygen-1.9.6.windows.x64.bin.zip - $hash = 'bdf1af97a733edd0a60fce2cf375c5c3' - if ((Get-FileHash doxygen-1.9.6.windows.x64.bin.zip -Algorithm MD5).Hash -ne $hash) { - del doxygen-1.9.6.windows.x64.bin.zip + wget.exe https://www.doxygen.nl/files/doxygen-1.10.0.windows.x64.bin.zip + $hash = '2135c1d5bdd6e067b3d0c40a4daac5d63d0fee1b3f4d6ef1e4f092db0d632d5b' + if ((Get-FileHash doxygen-1.10.0.windows.x64.bin.zip -Algorithm SHA256).Hash -ne $hash) { + del doxygen-1.10.0.windows.x64.bin.zip throw "Doxygen Hash doesn't match!" } - name: Install Doxygen package run: | - Expand-Archive -LiteralPath '.\doxygen-1.9.6.windows.x64.bin.zip' -DestinationPath $env:DOXYGEN_ROOT -Force + Expand-Archive -LiteralPath '.\doxygen-1.10.0.windows.x64.bin.zip' -DestinationPath $env:DOXYGEN_ROOT -Force echo "$env:DOXYGEN_ROOT" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - name: Display build environment diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a02ca4f6..ed768079 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -237,10 +237,9 @@ jobs: run: | brew install swig - - name: Install doxygen 1.9.6 + - name: Install doxygen run: | - brew tap mcorino/wxruby3 - brew install doxygen@1.9.6 + brew install doxygen - name: Show build environment run: | @@ -314,22 +313,23 @@ jobs: id: cache-doxygen uses: actions/cache@v3 with: - path: doxygen-1.9.6.windows.x64.bin.zip + path: doxygen-1.10.0.windows.x64.bin.zip key: ${{ runner.os }}-doxygen - name: Download Doxygen tool + if: steps.cache-doxygen.outputs.cache-hit != 'true' run: | - wget.exe https://www.doxygen.nl/files/doxygen-1.9.6.windows.x64.bin.zip - $hash = 'bdf1af97a733edd0a60fce2cf375c5c3' - if ((Get-FileHash doxygen-1.9.6.windows.x64.bin.zip -Algorithm MD5).Hash -ne $hash) { - del doxygen-1.9.6.windows.x64.bin.zip + wget.exe https://www.doxygen.nl/files/doxygen-1.10.0.windows.x64.bin.zip + $hash = '2135c1d5bdd6e067b3d0c40a4daac5d63d0fee1b3f4d6ef1e4f092db0d632d5b' + if ((Get-FileHash doxygen-1.10.0.windows.x64.bin.zip -Algorithm SHA256).Hash -ne $hash) { + del doxygen-1.10.0.windows.x64.bin.zip throw "Doxygen Hash doesn't match!" } - name: Install Doxygen package if: ${{ github.event_name != 'workflow_dispatch' }} run: | - Expand-Archive -LiteralPath '.\doxygen-1.9.6.windows.x64.bin.zip' -DestinationPath $env:DOXYGEN_ROOT -Force + Expand-Archive -LiteralPath '.\doxygen-1.10.0.windows.x64.bin.zip' -DestinationPath $env:DOXYGEN_ROOT -Force echo "$env:DOXYGEN_ROOT" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - name: Display build environment diff --git a/INSTALL.md b/INSTALL.md index 3921265f..7193b9bf 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -16,7 +16,7 @@ The minimal requirements for installing any source based setup (gem, source pack | C++ compiler
(incl. dev tools like `make`) | On linux a recent version of the GNU C++ compiler (with c++-14 support) needs to be installed
On Windows the RubyInstaller MSYS2-Devkit needs to be installed
On MacOS XCode with commandline tools needs to be installed via sudo xcode-select --install | | Git version control toolkit | | | SWIG >= 3.0.12 | On MacOS install Homebrew (https://brew.sh) and than brew install swig | -| Doxygen (>= 1.9.1, <= 1.9.6) | Doxygen > 1.9.6 has changes that cause problems with the wxWidgets doxygen files.
On MacOS: brew tap mcorino/wxruby3 and than `brew install doxygen@1.9.6` (default brew recipe installs 1.9.7) | +| Doxygen (>= 1.9.1) | On MacOS install Homebrew (https://brew.sh) and than brew install doxygen@ | | wxWidgets (>= 3.2) | See the wxWidgets installation section below. | The wxRuby3 build process requires `git` to clone a copy of the wxWidgets Github repository to extract the interface diff --git a/README.md b/README.md index 24824f33..acacae1d 100644 --- a/README.md +++ b/README.md @@ -124,7 +124,7 @@ To install the source-only gem the following software is required: | C++ compiler
(incl. dev tools like `make`) | On linux a recent version of the GNU C++ compiler (with c++-14 support) needs to be installed
On Windows the RubyInstaller MSYS2-Devkit needs to be installed
On MacOS XCode with commandline tools needs to be installed | | Git version control toolkit | | | SWIG >= 3.0.12 | On MacOS install with Homebrew | -| Doxygen (>= 1.9.1, <= 1.9.6) | Doxygen > 1.9.6 has changes that cause problems with the wxWidgets doxygen files. | +| Doxygen (>= 1.9.1) | On MacOS install with Homebrew | | wxWidgets >= 3.2 (*OPTIONAL*) | On Linux most distributions provide system installable (development) packages for wxWidgets providing a supported version.
Alternatively you can fairly easily install your own preferred version manually. | See the [INSTALL](INSTALL.md) document for more details.