No actual code changes were necessary.
I have partly followed
https://doc.qt.io/qt-6/cmake-qt5-and-qt6-compatibility.html, but the
versionless targets only work from Qt 5.15 onwards. The suggested
workaround chooses 5 over 6 and does not appear to work properly when
one of the required components is missing. Using the versionless
approach with an additional variable for the targets seems to work best.
If necessary, Qt 5 can be forced over 6 by passing
`-DCMAKE_DISABLE_FIND_PACKAGE_Qt6=ON`.
I have tested this by tweaking the code to force the GUI to appear.
Removes openssl thread locking callbacks required by OpenSSL <= 1.0.2
Other SSL libraries and newer OpenSSL should be handled by libcurl in a way that is thread-safe
Some platforms ship with atomic builtins packaged in their own library
which needs to be linked in order to make use of them.
This patch, based on
https://github.com/WebPlatformForEmbedded/meta-wpe/issues/210 adds a
configure-time check to verify if the library is needed and adds it when
necessary.
Try to use Linux installers as replacement for Galaxy repository.
Linux installers use MojoSetup which means that the installers are Zip files that have bash script and installer binary prepended.
We can get zip file entries from zip central directory and then split the game installer to chunks based on those file entries.
Therefore we can download individual files from the installer.
New option "--threads" can be used to set how many parallel downloads to run. The default is 4 threads.
Changes to behavior:
- Serials and changelogs are saved and covers downloaded for all games that match the "--game" filter before any other files are downloaded.
- Automatic XML creation is run after all files are downloaded. Previously xml data was automatically created right after download finished.
- The "--limit-rate" option sets rate limit for thread not global rate limit.
Find libraries using cmake/Find*.cmake scripts
Replace Version String with CMake implementation based on CMake Version and
git ref-parse.
Compile manpages in man/CMakeLists.txt to build:
cmake .
make manpage
Set debug and release versions with
cmake -DCMAKE_BUILD_TYPE=Debug
and
cmake -DCMAKE_BUILD_TYPE=Release
Build and install process can be:
cmake -DCMAKE_BUILD_TYPE=Release .
make
make install
More build options can be found with
cmake .
make help
Codeblocks project can be generated using
cmake -G "CodeBlocks - Unix Makefiles" .