Page MenuHome GnuPG

WIP: Add cmake build system for cpp bindings
Needs ReviewPublic

Authored by CarlSchwan on Jan 23 2024, 6:37 PM.

Details

Reviewers
werner
Test Plan
  • Compile on Linux
    • Work with only Qt6 enabled
    • Work with only Qt5 enabled
    • Work with only cpp enabled
  • Compile on Windows
    • Work with only Qt6 enabled
    • Work with only Qt5 enabled
    • Work with only cpp enabled
  • Compile on mac
    • Work with only Qt6 enabled
    • Work with only Qt5 enabled
    • Work with only cpp enabled

Diff Detail

Repository
rM GPGME
Branch
work/carl/cmake-2
Lint
No Linters Available
Unit
No Unit Test Coverage

Event Timeline

CarlSchwan created this revision.
CarlSchwan retitled this revision from Add cmake build system for cpp bindings to WIP: Add cmake build system for cpp bindings.Jan 23 2024, 6:39 PM
werner added a subscriber: werner.

Having a second build system for GPGME is not a good idea. This gives us a headache for maintaining. If you really need this for private things, put this into a contrib directory and make clear that this is a non supported way to build things. And for the Qt bindings I am anyway in favor of removing them from GPGME proper.

This revision now requires changes to proceed.Jan 24 2024, 8:05 AM

@werner This has been discussed by you and Andre and you gave green light as far as I know. It's not needed for private things but for providing Windows builds with MSVC for various KDE projects. This will be maintained by KDE people. Yes, we will make clear that this is a non supported way to build things.

Let's discuss splitting the Qt bindings out of gpgme in the office.

And it isn't a second build system for all of gpgme, but only for the C++ binding and the Qt bindings.

I wouldn't mind having the c++ and qt bindings in a separate library released at the same time as gpgme but with a cmake build system. It would simplify a lot in the craft build system as building the same repo with two different build system is not something that craft support very well...

And yeah we need that to build Kmail, Merkuro, KMyMoney, KGet and Okular on MSVC and get CI coverage for Kleopatra, libkleo, mimetreeparser on Windows.

Remove CMakeLists.txt from root and lang directory

Use autogen.sh to keep version in sync

Use autogen.sh to keep version in sync

Please don't do that. autogen.sh is supposed to be source copied from libgpg-error to all projects. It should have only standard code. You may wat to add a dedicated script to build-aux and we can then see how we can automate its invocation.

This revision now requires changes to proceed.Mar 21 2024, 5:50 PM

Move update script to build-aux