stachenov / quazip

Qt/C++ wrapper over minizip
Other
582 stars 232 forks source link

Header directory QuaZip-Qt6-1.3/quazip might be confusing ? #156

Closed lopippo closed 1 year ago

lopippo commented 2 years ago

Greetings, I am currently trying to use the latest QuaZip library project. The header files are installed in /usr/include/QuaZip-Qt6-1.3/quazip and the find_package(QuaZip-Qt6) statement works fine and provides the QuaZip::QuaZip variable contents fine.

However, I discovered that the include directories are listed as "-isystem /usr/include/QuaZip-Qt6-1.3 -isystem /usr/include/QuaZip-Qt6-1.3/quazip" which makes the inclusion of header files problematic, I think. Indeed, in the source code, I would then need to write either

include <quazip/quazip.h> or

include

In this case, I would not be able to make easily the difference between two projects, one depending on QuaZip-Qt6 and the other one depending on the Qt5 version (on Debian that latter version installs the header files in /usr/include/quazip5) and the coder thus includes like this:

include <quazip5/quazip.h>

For this new -Qt6 version, I wonder why the headers are inside the quazip directory below /usr/include/QuaZip-Qt6-1.3. How about simply installing the header files in /usr/include/quazip-qt6 and let QuaZip::QuaZip tell the compiler to look into /usr/ so that the coder would just include like this:

include <quazip-qt6/quazip.h>, for example ?

Where does my reasoning fail ? Thank you for this really useful lib ! Sincerely, Filippo

lopippo commented 2 years ago

Hello,

no interest in this issue ?

Sincerely, Filippo

stachenov commented 2 years ago

Sorry, I've been a bit busy with relocating to another country. Didn't even notice this issue.

IIRC, the quazip subdirectory exists purely for backwards source compatibility, just in case some user has hundreds of #include <quazip/...>. It was a mess in earlier versions, and some users used #include <quazip/...> and some #include <...> without quazip/.

The reason for the QuaZip-Qt6-1.3 subdirectory is the possibility to co-install different QuaZip versions on the same machine.

The idea is that you don't need to change includes based on the versions of Qt and QuaZip you use. Otherwise it'll be a pain when you port to, say, Qt7 and have to change every include.

What exactly is your issue with this scheme? Why does it matter which version of Qt you use?