Skip to content

Add packaging cpack and mingw - #2

Open
timandtheocean wants to merge 3 commits into
electraone:mainfrom
timandtheocean:packaging-cpack-mingw
Open

timandtheocean wants to merge 3 commits into
electraone:mainfrom
timandtheocean:packaging-cpack-mingw

Conversation

@timandtheocean

Copy link
Copy Markdown
  • Packaging: fix install rules, use system RtMidi via pkg-config, CPack component
  • Add MinGW-w64 toolchain for cross-compiling Windows packages
  • Document building DEB/RPM/TGZ and Windows .zip and .exe installer packages

Hi Martin,

Long time no speak.
Hope things are going well with you and your family.

I started to prepare to build a preset for the Korg Z1 and added package generation directives (cpack).
On my machine I created Deb, tgz, rpm, (windows .zip and .exe ) packages and strived to make it as portable as possible.
On Debian the build and deployment was tested and on Windows the .zip and .exe where tested.
Maybe after some test you can add the packages to the git repo release section or on your site.

Best regards,

Tim (Prague)

Summary

  • Fix cpack failure (installed header from non-existent src/sysex.hpp), remove duplicate install rules from CMakeLists.txt
  • Use distro RtMidi via pkg-config when no CMake config exists (Debian/Ubuntu librtmidi-dev)
  • Package only project files (CPack component); FetchContent deps no longer leak RtMidi/ArduinoJson/doctest headers into the package
  • DEB/RPM declare RtMidi as dependency
  • Add MinGW-w64 toolchain to cross-compile Windows ZIP/NSIS packages on Linux
  • Silence GCC 14 false-positive -Wstringop-overflow in tests
  • README.md: includes the packaging instructions

Tests

  • Built of all packages: Operating System: Debian GNU/Linux 13 (trixie) Linux 6.16.3+deb13-amd64 Architecture: x86-64
  • Deployed Debian: DEB next to librtmidi-dev, contains only electraone files
  • Windows cross build: electraone.exe depends only on KERNEL32/msvcrt/WINMM
  • Tested and deployed the .zip and .exe installer on Win10.
  • During tests there was 1 Warning during the test, "writing 1 byte into a region of size 0", with a follow-up note about a 13-byte buffer I added -Wno-stringop-overflow for the test target with GCC only (GCC 14)

… component

Hi Martin,

Long time no speak.
Hope things are going well with you and your family.

I started to prepare to build a preset for the Korg Z1 and added package generation directives (cpack).
On my machine I created Deb, tgz, rpm, (windows .zip and .exe ) packages and strived to make it as portable as possible.
On Debian the build and deployment was tested and on Windows the .zip and .exe where tested.
Maybe after some test you can add the packages to the git repo release section or on your site.

Best regards,

Tim (Prague)

## Summary
- Fix `cpack` failure (installed header from non-existent `src/sysex.hpp`), remove duplicate install rules from CMakeLists.txt
- Use distro RtMidi via pkg-config when no CMake config exists (Debian/Ubuntu `librtmidi-dev`)
- Package only project files (CPack component); FetchContent deps no longer leak RtMidi/ArduinoJson/doctest headers into the package
- DEB/RPM declare RtMidi as dependency
- Add MinGW-w64 toolchain to cross-compile Windows ZIP/NSIS packages on Linux
- Silence GCC 14 false-positive -Wstringop-overflow in tests
- README.md: includes the packaging instructions

## Tests

- Built of all packages: Operating System: Debian GNU/Linux 13 (trixie) Linux 6.16.3+deb13-amd64 Architecture: x86-64
- Deployed Debian: DEB  next to librtmidi-dev, contains only electraone files
- Windows cross build: electraone.exe depends only on KERNEL32/msvcrt/WINMM
- Tested and deployed the .zip and .exe installer on Win10.
- During tests there was 1 Warning during the test, "writing 1 byte into a region of size 0", with a follow-up note about a 13-byte buffer I added -Wno-stringop-overflow for the test target with GCC only (GCC 14)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant