Skip to content

Commit

Permalink
Merge pull request #239 from mcorino/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
mcorino authored Jan 14, 2024
2 parents 0f2b59f + cf46dd1 commit e5e9fbb
Show file tree
Hide file tree
Showing 8 changed files with 41 additions and 27 deletions.
5 changes: 2 additions & 3 deletions .github/workflows/mac.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 [email protected]
brew install doxygen
- name: Show build environment
run: |
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/msw-master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/msw.yml
Original file line number Diff line number Diff line change
Expand Up @@ -117,22 +117,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
Expand Down
18 changes: 9 additions & 9 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 [email protected]
brew install doxygen
- name: Show build environment
run: |
Expand Down Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ The minimal requirements for installing any source based setup (gem, source pack
| C++ compiler<br>(incl. dev tools like `make`) | On linux a recent version of the GNU C++ compiler (with c++-14 support) needs to be installed<br>On Windows the RubyInstaller MSYS2-Devkit needs to be installed<br>On MacOS XCode with commandline tools needs to be installed via <code>sudo xcode-select --install</code> |
| Git version control toolkit | |
| SWIG >= 3.0.12 | On MacOS install Homebrew (https://brew.sh) and than <code>brew install swig</code> |
| Doxygen (>= 1.9.1, <= 1.9.6) | Doxygen > 1.9.6 has changes that cause problems with the wxWidgets doxygen files.<br>On MacOS: <code>brew tap mcorino/wxruby3</code> and than `brew install [email protected]` (default brew recipe installs 1.9.7) |
| Doxygen (>= 1.9.1) | On MacOS install Homebrew (https://brew.sh) and than <code>brew install doxygen@</code> |
| wxWidgets (>= 3.2) | See the <b>wxWidgets installation</b> section below. |

The wxRuby3 build process requires `git` to clone a copy of the wxWidgets Github repository to extract the interface
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ To install the source-only gem the following software is required:
| C++ compiler<br>(incl. dev tools like `make`) | On linux a recent version of the GNU C++ compiler (with c++-14 support) needs to be installed<br>On Windows the RubyInstaller MSYS2-Devkit needs to be installed<br>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.<br>Alternatively you can fairly easily install your own preferred version manually. |

See the [INSTALL](INSTALL.md) document for more details.
Expand Down
2 changes: 1 addition & 1 deletion lib/wx/version.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
15 changes: 15 additions & 0 deletions rakelib/lib/extractor/module.rb
Original file line number Diff line number Diff line change
Expand Up @@ -117,13 +117,28 @@ 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)
end
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)
Expand Down

0 comments on commit e5e9fbb

Please sign in to comment.