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" .
Selecting languages with --language and --language-priority
- Whatever code GOG happens to use in their API (mostly ISO 639-1)
- ISO 639-1
- ISO 639-2/T
- ISO 639-2/B
- English name
Selecting platforms with --platform and --platform-priority
- Windows: "w, win, windows"
- Linux: "l, lin, linux"
- Mac: "m, mac, osx"
Having duplicate values in priority string caused platform/language to be set to wrong value
For example --platform 1 --platform-priority 4,1,1 caused platform to be set to 6 instead of 5
Continue running commands if login was forced due to missing configuration
Allow downloading of files even if config is missing with only one prompt
for username and password
Ignoring DLC count information helps in situations where the account page doesn't provide accurate information about DLCs.
--ignore-dlc-count sets regular expression filter for games to ignore DLC count information.
Game specific option "ignore-dlc-count" can be used to ignore DLC count for specific game.
Useful in case platform identifier is missing for some games in the game shelf.
Using --platform with --list doesn't work when using --no-platform-detection
Helps with large libraries when running the downloader multiple times.
Getting game details for many games takes a long time. Caching the game details makes the process much faster for subsequent runs.
Game details are cached to "$XDG_CACHE_HOME/lgogdownloader/gamedetails.json"
--update-cache creates and updates the cache.
--use-cache enables loading game details from cache.
--cache-valid specifies how long cached game details are considered valid
Currently any execution of lgogdownloader touches $HOME, even if the
user only requested help or the version number. This fixes main() to
handle --help and --version before doing anything to the filesystem.
This also helps some build environments where $HOME is undefined
(e.g. the Debian build platform).
Signed-off-by: Stephen Kitt <steve@sk2.org>
Configuration files and cookies are now stored in "$XDG_CONFIG_HOME/lgogdownloader"
if $XDG_CONFIG_HOME is not set it will use "$HOME/.config/lgogdownloader"
XML files are now stored in "$XDG_CACHE_HOME/lgogdownloader/xml"
if $XDG_CACHE_HOME is not set it will use "$HOME/.cache/lgogdownloader/xml"
API::getGameDetails now has a parameter to enable duplicate handling (default: false)
The duplicate handler applies a language id flag on the original installer so it shows support for multiple languages
Downloader uses duplicate handler by default
Added --no-duplicate-handling option to disable duplicate handler
Version check before download now works without local XML data. However it is much slower without the XML data because it calculates MD5 for the files
Some changes to config.h
- Removed "bHelp" from config because it was not needed
- Changed "bNoColor" to "bColor"
- Changed "bNoUnicode" to "bUnicode"