diff --git a/.gitignore b/.gitignore
index aa3b985..b11f42d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,7 @@ bin/*
obj/*
*.1
*.gz
+Makefile
+CMakeCache.txt
+CMakeFiles/
+cmake_install.cmake
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..75df44f
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,115 @@
+cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
+project (lgogdownloader LANGUAGES CXX VERSION 2.26)
+
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
+
+find_package(Boost
+ REQUIRED
+ system
+ filesystem
+ regex
+ program_options
+ date_time
+ )
+find_package(CURL REQUIRED)
+find_package(OAuth REQUIRED)
+find_package(Jsoncpp REQUIRED)
+find_package(Htmlcxx REQUIRED)
+find_package(Tinyxml REQUIRED)
+find_package(Rhash REQUIRED)
+
+file(GLOB SRC_FILES
+ main.cpp
+ src/api.cpp
+ src/downloader.cpp
+ src/progressbar.cpp
+ src/util.cpp
+ src/blacklist.cpp
+ src/gamefile.cpp
+ src/gamedetails.cpp
+ )
+
+set(GIT_CHECKOUT FALSE)
+if(EXISTS ${PROJECT_SOURCE_DIR}/.git)
+ if(NOT EXISTS ${PROJECT_SOURCE_DIR}/.git/shallow)
+ find_package(Git)
+ if(GIT_FOUND)
+ set(GIT_CHECKOUT TRUE)
+ else(GIT_FOUND)
+ message(WARNING "Git executable not found")
+ endif(GIT_FOUND)
+ else(NOT EXISTS ${PROJECT_SOURCE_DIR}/.git/shallow)
+ message(STATUS "Shallow Git clone detected, not attempting to retrieve version info")
+ endif(NOT EXISTS ${PROJECT_SOURCE_DIR}/.git/shallow)
+endif(EXISTS ${PROJECT_SOURCE_DIR}/.git)
+
+if(GIT_CHECKOUT)
+ execute_process(COMMAND ${GIT_EXECUTABLE} diff --shortstat
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ OUTPUT_VARIABLE GIT_SHORTSTAT
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ OUTPUT_VARIABLE GIT_REV_PARSE
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ if(GIT_SHORTSTAT)
+ set(GIT_DIRTY ON)
+ endif(GIT_SHORTSTAT)
+
+ if(GIT_DIRTY)
+ set(PROJECT_VERSION_MINOR ${PROJECT_VERSION_MINOR}M)
+ endif(GIT_DIRTY)
+
+ set(PROJECT_VERSION_PATCH ${GIT_REV_PARSE})
+ set(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
+endif(GIT_CHECKOUT)
+
+set(VERSION_NUMBER ${PROJECT_VERSION})
+set(VERSION_STRING "LGOGDownloader ${VERSION_NUMBER}")
+
+add_definitions(-D_FILE_OFFSET_BITS=64 -DVERSION_NUMBER="${VERSION_NUMBER}" -DVERSION_STRING="${VERSION_STRING}")
+
+add_executable (${PROJECT_NAME} ${SRC_FILES})
+set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11)
+
+
+target_include_directories(${PROJECT_NAME}
+ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include
+ PRIVATE ${Boost_INCLUDE_DIRS}
+ PRIVATE ${CURL_INCLUDE_DIRS}
+ PRIVATE ${OAuth_INCLUDE_DIRS}
+ PRIVATE ${Jsoncpp_INCLUDE_DIRS}
+ PRIVATE ${Htmlcxx_INCLUDE_DIRS}
+ PRIVATE ${Tinyxml_INCLUDE_DIRS}
+ PRIVATE ${Rhash_INCLUDE_DIRS}
+ )
+
+target_link_libraries(${PROJECT_NAME}
+ PRIVATE ${Boost_LIBRARIES}
+ PRIVATE ${CURL_LIBRARIES}
+ PRIVATE ${OAuth_LIBRARIES}
+ PRIVATE ${Jsoncpp_LIBRARIES}
+ PRIVATE ${Htmlcxx_LIBRARIES}
+ PRIVATE ${Tinyxml_LIBRARIES}
+ PRIVATE ${Rhash_LIBRARIES}
+ )
+
+if(MSVC)
+ # Force to always compile with W4
+ if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
+ string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+ else()
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
+ endif()
+elseif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
+ # Update if necessary
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-long-long -pedantic -fexceptions")
+endif()
+
+set(INSTALL_BIN_DIR bin CACHE PATH "Installation directory for executables")
+set(INSTALL_SHARE_DIR share CACHE PATH "Installation directory for resource files")
+
+install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}${CMAKE_EXECUTABLE_SUFFIX} DESTINATION ${INSTALL_BIN_DIR})
+add_subdirectory(man)
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 9e7d4d7..0000000
--- a/Makefile
+++ /dev/null
@@ -1,180 +0,0 @@
-#------------------------------------------------------------------------------#
-# This makefile was generated by 'cbp2make' tool rev.127 #
-#------------------------------------------------------------------------------#
-
-
-WORKDIR = `pwd`
-
-DESTDIR =
-PREFIX = /usr
-MANPREFIX = $(PREFIX)/share
-
-CC = gcc
-CXX = g++
-AR = ar
-LD = g++
-WINDRES = windres
-
-INC = -Iinclude -I/usr/include/rhash -I/usr/include/jsoncpp
-CFLAGS = -std=c++11 -Wall -fexceptions -D_FILE_OFFSET_BITS=64
-RESINC =
-LIBDIR =
-LIB = -lcurl -loauth -ljsoncpp -lhtmlcxx -lboost_system -lboost_filesystem -lboost_regex -lboost_program_options -lboost_date_time -ltinyxml -lrhash
-LDFLAGS =
-
-VERSION = -DVERSION_STRING="\"$(shell sh version.sh)\""
-HELP2MAN = $(shell which help2man 2> /dev/null)
-MAN_DIR = man
-MAN_PAGE = lgogdownloader.1
-
-INC_DEBUG = $(INC)
-CFLAGS_DEBUG = $(CFLAGS) -g -DDEBUG
-RESINC_DEBUG = $(RESINC)
-RCFLAGS_DEBUG = $(RCFLAGS)
-LIBDIR_DEBUG = $(LIBDIR)
-LIB_DEBUG = $(LIB)
-LDFLAGS_DEBUG = $(LDFLAGS)
-OBJDIR_DEBUG = obj/Debug
-DEP_DEBUG =
-OUT_DEBUG = bin/Debug/lgogdownloader
-
-INC_RELEASE = $(INC)
-CFLAGS_RELEASE = $(CFLAGS) -O2
-RESINC_RELEASE = $(RESINC)
-RCFLAGS_RELEASE = $(RCFLAGS)
-LIBDIR_RELEASE = $(LIBDIR)
-LIB_RELEASE = $(LIB)
-LDFLAGS_RELEASE = $(LDFLAGS) -s
-OBJDIR_RELEASE = obj/Release
-DEP_RELEASE =
-OUT_RELEASE = bin/Release/lgogdownloader
-
-OBJ_DEBUG = $(OBJDIR_DEBUG)/main.o $(OBJDIR_DEBUG)/src/api.o $(OBJDIR_DEBUG)/src/downloader.o $(OBJDIR_DEBUG)/src/progressbar.o $(OBJDIR_DEBUG)/src/util.o $(OBJDIR_DEBUG)/src/blacklist.o $(OBJDIR_DEBUG)/src/gamedetails.o $(OBJDIR_DEBUG)/src/gamefile.o
-
-OBJ_RELEASE = $(OBJDIR_RELEASE)/main.o $(OBJDIR_RELEASE)/src/api.o $(OBJDIR_RELEASE)/src/downloader.o $(OBJDIR_RELEASE)/src/progressbar.o $(OBJDIR_RELEASE)/src/util.o $(OBJDIR_RELEASE)/src/blacklist.o $(OBJDIR_RELEASE)/src/gamedetails.o $(OBJDIR_RELEASE)/src/gamefile.o
-
-all: debug release
-
-clean: clean_debug clean_release
-
-before_debug:
- test -d bin/Debug || mkdir -p bin/Debug
- test -d $(OBJDIR_DEBUG) || mkdir -p $(OBJDIR_DEBUG)
- test -d $(OBJDIR_DEBUG)/src || mkdir -p $(OBJDIR_DEBUG)/src
-
-after_debug: out_debug
-ifdef HELP2MAN
- if ! test -f $(MAN_DIR)/$(MAN_PAGE).gz; then \
- help2man -N -i $(MAN_DIR)/lgogdownloader.supplemental.groff -o $(MAN_DIR)/$(MAN_PAGE) $(OUT_DEBUG); \
- gzip -f -9 $(MAN_DIR)/$(MAN_PAGE); \
- fi
-endif
-
-debug: before_debug out_debug after_debug
-
-out_debug: $(OBJ_DEBUG) $(DEP_DEBUG)
- $(LD) $(LDFLAGS_DEBUG) $(LIBDIR_DEBUG) $(OBJ_DEBUG) $(LIB_DEBUG) -o $(OUT_DEBUG)
-
-$(OBJ_DEBUG): | before_debug
-
-$(OBJDIR_DEBUG)/main.o: main.cpp
- $(CXX) $(CFLAGS_DEBUG) $(VERSION) $(INC_DEBUG) -c main.cpp -o $(OBJDIR_DEBUG)/main.o
-
-$(OBJDIR_DEBUG)/src/api.o: src/api.cpp
- $(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c src/api.cpp -o $(OBJDIR_DEBUG)/src/api.o
-
-$(OBJDIR_DEBUG)/src/downloader.o: src/downloader.cpp
- $(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c src/downloader.cpp -o $(OBJDIR_DEBUG)/src/downloader.o
-
-$(OBJDIR_DEBUG)/src/progressbar.o: src/progressbar.cpp
- $(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c src/progressbar.cpp -o $(OBJDIR_DEBUG)/src/progressbar.o
-
-$(OBJDIR_DEBUG)/src/util.o: src/util.cpp
- $(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c src/util.cpp -o $(OBJDIR_DEBUG)/src/util.o
-
-$(OBJDIR_DEBUG)/src/blacklist.o: src/blacklist.cpp
- $(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c src/blacklist.cpp -o $(OBJDIR_DEBUG)/src/blacklist.o
-
-$(OBJDIR_DEBUG)/src/gamefile.o: src/gamefile.cpp
- $(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c src/gamefile.cpp -o $(OBJDIR_DEBUG)/src/gamefile.o
-
-$(OBJDIR_DEBUG)/src/gamedetails.o: src/gamedetails.cpp
- $(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c src/gamedetails.cpp -o $(OBJDIR_DEBUG)/src/gamedetails.o
-
-clean_debug:
- rm -f $(OBJ_DEBUG) $(OUT_DEBUG)
- rm -rf bin/Debug
- rm -rf $(OBJDIR_DEBUG)
- rm -rf $(OBJDIR_DEBUG)/src
-
-before_release:
- test -d bin/Release || mkdir -p bin/Release
- test -d $(OBJDIR_RELEASE) || mkdir -p $(OBJDIR_RELEASE)
- test -d $(OBJDIR_RELEASE)/src || mkdir -p $(OBJDIR_RELEASE)/src
-
-after_release: out_release
-ifdef HELP2MAN
- if ! test -f $(MAN_DIR)/$(MAN_PAGE).gz; then \
- help2man -N -i $(MAN_DIR)/lgogdownloader.supplemental.groff -o $(MAN_DIR)/$(MAN_PAGE) $(OUT_RELEASE); \
- gzip -f -9 $(MAN_DIR)/$(MAN_PAGE); \
- fi
-endif
-
-release: before_release out_release after_release
-
-out_release: $(OBJ_RELEASE) $(DEP_RELEASE)
- $(LD) $(LDFLAGS_RELEASE) $(LIBDIR_RELEASE) $(OBJ_RELEASE) $(LIB_RELEASE) -o $(OUT_RELEASE)
-
-$(OBJ_RELEASE): | before_release
-
-$(OBJDIR_RELEASE)/main.o: main.cpp
- $(CXX) $(CFLAGS_RELEASE) $(VERSION) $(INC_RELEASE) -c main.cpp -o $(OBJDIR_RELEASE)/main.o
-
-$(OBJDIR_RELEASE)/src/api.o: src/api.cpp
- $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c src/api.cpp -o $(OBJDIR_RELEASE)/src/api.o
-
-$(OBJDIR_RELEASE)/src/downloader.o: src/downloader.cpp
- $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c src/downloader.cpp -o $(OBJDIR_RELEASE)/src/downloader.o
-
-$(OBJDIR_RELEASE)/src/progressbar.o: src/progressbar.cpp
- $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c src/progressbar.cpp -o $(OBJDIR_RELEASE)/src/progressbar.o
-
-$(OBJDIR_RELEASE)/src/util.o: src/util.cpp
- $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c src/util.cpp -o $(OBJDIR_RELEASE)/src/util.o
-
-$(OBJDIR_RELEASE)/src/blacklist.o: src/blacklist.cpp
- $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c src/blacklist.cpp -o $(OBJDIR_RELEASE)/src/blacklist.o
-
-$(OBJDIR_RELEASE)/src/gamefile.o: src/gamefile.cpp
- $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c src/gamefile.cpp -o $(OBJDIR_RELEASE)/src/gamefile.o
-
-$(OBJDIR_RELEASE)/src/gamedetails.o: src/gamedetails.cpp
- $(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c src/gamedetails.cpp -o $(OBJDIR_RELEASE)/src/gamedetails.o
-
-clean_release:
- rm -f $(OBJ_RELEASE) $(OUT_RELEASE)
- rm -rf bin/Release
- rm -rf $(OBJDIR_RELEASE)
- rm -rf $(OBJDIR_RELEASE)/src
- rm -f $(MAN_DIR)/$(MAN_PAGE) $(MAN_DIR)/$(MAN_PAGE).gz
-
-install: release
- install -d $(DESTDIR)/$(PREFIX)/bin/
- if test -f $(OUT_DEBUG); then \
- install -m 755 $(OUT_DEBUG) $(DESTDIR)/$(PREFIX)/bin/lgogdownloader; \
- else \
- install -m 755 $(OUT_RELEASE) $(DESTDIR)/$(PREFIX)/bin/lgogdownloader; \
- fi
- if test -f $(MAN_DIR)/$(MAN_PAGE).gz; then \
- install -d $(DESTDIR)/$(MANPREFIX)/man/man1/; \
- install -m 644 $(MAN_DIR)/$(MAN_PAGE).gz $(DESTDIR)/$(MANPREFIX)/man/man1/$(MAN_PAGE).gz; \
- fi
-
-uninstall:
- rm $(DESTDIR)/$(PREFIX)/bin/lgogdownloader
- if test -f $(DESTDIR)/$(MANPREFIX)/man/man1/$(MAN_PAGE).gz; then \
- rm $(DESTDIR)/$(MANPREFIX)/man/man1/$(MAN_PAGE).gz; \
- fi
-
-.PHONY: before_debug after_debug clean_debug before_release after_release clean_release
-
diff --git a/cmake/FindHtmlcxx.cmake b/cmake/FindHtmlcxx.cmake
new file mode 100644
index 0000000..6dbf4b1
--- /dev/null
+++ b/cmake/FindHtmlcxx.cmake
@@ -0,0 +1,54 @@
+# - Try to find htmlcxx
+#
+# Once done this will define
+# Htmlcxx_FOUND - System has htmlcxx
+# Htmlcxx_INCLUDE_DIRS - The htmlcxx include directories
+# Htmlcxx_LIBRARIES - The libraries needed to use htmlcxx
+
+find_package(PkgConfig)
+pkg_check_modules(PC_HTMLCXX REQUIRED htmlcxx)
+
+find_path(HTMLCXX_INCLUDE_DIR
+ NAMES
+ css/parser.h
+ html/tree.h
+ HINTS
+ ${PC_HTMLCXX_INCLUDEDIR}
+ ${PC_HTMLCXX_INCLUDE_DIRS}
+ PATH_SUFFIXES
+ htmlcxx
+ PATHS
+ ${PC_HTMLCXX_INCLUDE_DIRS}
+ )
+
+find_library(HTMLCXX_LIBRARY_HTMLCXX htmlcxx
+ HINTS
+ ${PC_HTMLCXX_LIBDIR}
+ ${PC_HTMLCXX_LIBRARY_DIRS}
+ PATHS
+ ${PC_HTMLCXX_LIBRARY_DIRS}
+ )
+
+find_library(HTMLCXX_LIBRARY_CSS_PARSER css_parser
+ HINTS
+ ${PC_HTMLCXX_LIBDIR}
+ ${PC_HTMLCXX_LIBRARY_DIRS}
+ PATHS
+ ${PC_HTMLCXX_LIBRARY_DIRS}
+ )
+
+find_library(HTMLCXX_LIBRARY_CSS_PARSER_PP css_parser_pp
+ HINTS
+ ${PC_HTMLCXX_LIBDIR}
+ ${PC_HTMLCXX_LIBRARY_DIRS}
+ PATHS
+ ${PC_HTMLCXX_LIBRARY_DIRS}
+ )
+
+mark_as_advanced(HTMLCXX_INCLUDE_DIR HTMLCXX_LIBRARY_HTMLCXX HTMLCXX_LIBRARY_CSS_PARSER HTMLCXX_LIBRARY_CSS_PARSER_PP)
+
+if(PC_HTMLCXX_FOUND)
+ set(Htmlcxx_FOUND ON)
+ set(Htmlcxx_INCLUDE_DIRS ${HTMLCXX_INCLUDE_DIR})
+ set(Htmlcxx_LIBRARIES ${HTMLCXX_LIBRARY_HTMLCXX} ${HTMLCXX_LIBRARY_CSS_PARSER} ${HTMLCXX_LIBRARY_CSS_PARSER_PP})
+endif(PC_HTMLCXX_FOUND)
diff --git a/cmake/FindJsoncpp.cmake b/cmake/FindJsoncpp.cmake
new file mode 100644
index 0000000..5731980
--- /dev/null
+++ b/cmake/FindJsoncpp.cmake
@@ -0,0 +1,34 @@
+# - Try to find Jsoncpp
+#
+# Once done, this will define
+# Jsoncpp_FOUND - system has Jsoncpp
+# Jsoncpp_INCLUDE_DIRS - the Jsoncpp include directories
+# Jsoncpp_LIBRARIES - link these to use Jsoncpp
+
+find_package(PkgConfig)
+pkg_check_modules(PC_JSONCPP REQUIRED jsoncpp)
+
+find_path(JSONCPP_INCLUDE_DIR
+ NAMES
+ json/features.h
+ HINTS
+ ${PC_JSONCPP_INCLUDEDIR}
+ ${PC_JSONCPP_INCLUDEDIRS}
+ PATH_SUFFIXES
+ jsoncpp
+ PATHS
+ ${PC_JSONCPP_INCLUDE_DIRS}
+ )
+
+find_library(JSONCPP_LIBRARY jsoncpp
+ PATHS
+ ${PC_JSONCPP_LIBRARY_DIRS}
+ )
+
+mark_as_advanced(JSONCPP_INCLUDE_DIR JSONCPP_LIBRARY)
+
+if(PC_JSONCPP_FOUND)
+ set(Jsoncpp_FOUND ON)
+ set(Jsoncpp_INCLUDE_DIRS ${JSONCPP_INCLUDE_DIR})
+ set(Jsoncpp_LIBRARIES ${JSONCPP_LIBRARY})
+endif(PC_JSONCPP_FOUND)
diff --git a/cmake/FindOAuth.cmake b/cmake/FindOAuth.cmake
new file mode 100644
index 0000000..55dbd63
--- /dev/null
+++ b/cmake/FindOAuth.cmake
@@ -0,0 +1,28 @@
+# - Try to find oauth
+#
+# Once done this will define
+# OAuth_FOUND - System has oauth
+# OAuth_INCLUDE_DIRS - The oauth include directories
+# OAuth_LIBRARIES - The libraries needed to use oauth
+
+find_package(PkgConfig)
+pkg_check_modules(PC_OAUTH REQUIRED oauth)
+
+find_path(OAUTH_INCLUDE_DIR oauth.h
+ HINTS ${PC_OAUTH_INCLUDEDIR}
+ ${PC_OAUTH_INCLUDE_DIRS}
+ PATH_SUFFIXES oauth
+ )
+
+find_library(OAUTH_LIBRARY NAMES oauth
+ HINTS ${PC_OAUTH_LIBDIR}
+ ${PC_OAUTH_LIBRARY_DIRS}
+ )
+
+mark_as_advanced(OAUTH_INCLUDE_DIR OAUTH_LIBRARY)
+
+if(PC_OAUTH_FOUND)
+ set(OAuth_FOUND ON)
+ set(OAuth_INCLUDE_DIRS ${OAUTH_INCLUDE_DIR})
+ set(OAuth_LIBRARIES ${OAUTH_LIBRARY})
+endif(PC_OAUTH_FOUND)
diff --git a/cmake/FindRhash.cmake b/cmake/FindRhash.cmake
new file mode 100644
index 0000000..cdfecd3
--- /dev/null
+++ b/cmake/FindRhash.cmake
@@ -0,0 +1,22 @@
+# - Try to find rhash
+#
+# Once done this will define
+# Rhash_FOUND - System has rhash
+# Rhash_INCLUDE_DIRS - The rhash include directories
+# Rhash_LIBRARIES - The libraries needed to use rhash
+
+find_path(RHASH_INCLUDE_DIR rhash.h)
+find_library(RHASH_LIBRARY rhash)
+
+mark_as_advanced(RHASH_INCLUDE_DIR RHASH_LIBRARY)
+
+if(RHASH_LIBRARY AND RHASH_INCLUDE_DIR)
+ set(Rhash_FOUND ON)
+ set(Rhash_LIBRARIES ${RHASH_LIBRARY})
+ set(Rhash_INCLUDE_DIRS ${RHASH_INCLUDE_DIR})
+else()
+ set(Rhash_FOUND OFF)
+ if(Rhash_FIND_REQUIRED)
+ message(FATAL_ERROR "Could not find rhash")
+ endif(Rhash_FIND_REQUIRED)
+endif(RHASH_LIBRARY AND RHASH_INCLUDE_DIR)
diff --git a/cmake/FindTinyxml.cmake b/cmake/FindTinyxml.cmake
new file mode 100644
index 0000000..4764541
--- /dev/null
+++ b/cmake/FindTinyxml.cmake
@@ -0,0 +1,33 @@
+# - Try to find tinyxml
+#
+# Once done this will define
+# Tinyxml_FOUND - System has tinyxml
+# Tinyxml_INCLUDE_DIRS - The tinyxml include directories
+# Tinyxml_LIBRARIES - The libraries needed to use tinyxml
+
+find_package(PkgConfig)
+pkg_check_modules(PC_TINYXML REQUIRED tinyxml)
+
+find_path(TINYXML_INCLUDE_DIR tinyxml.h
+ HINTS
+ ${PC_TINYXML_INCLUDEDIR}
+ ${PC_TINYXML_INCLUDE_DIRS}
+ PATHS
+ ${PC_TINYXML_INCLUDE_DIRS}
+ )
+
+find_library(TINYXML_LIBRARY tinyxml
+ HINTS
+ ${PC_TINYXML_LIBDIR}
+ ${PC_TINYXML_LIBRARY_DIRS}
+ PATHS
+ ${PC_TINYXML_LIBRARY_DIRS}
+ )
+
+mark_as_advanced(TINYXML_INCLUDE_DIR TINYXML_LIBRARY)
+
+if(PC_TINYXML_FOUND)
+ set(Tinyxml_FOUND ON)
+ set(Tinyxml_INCLUDE_DIRS ${TINYXML_INCLUDE_DIR})
+ set(Tinyxml_LIBRARIES ${TINYXML_LIBRARY})
+endif(PC_TINYXML_FOUND)
diff --git a/lgogdownloader.cbp b/lgogdownloader.cbp
deleted file mode 100644
index dfb1012..0000000
--- a/lgogdownloader.cbp
+++ /dev/null
@@ -1,76 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/main.cpp b/main.cpp
index 0ae59ed..dcbb184 100644
--- a/main.cpp
+++ b/main.cpp
@@ -13,12 +13,6 @@
#include
#include
-#define VERSION_NUMBER "2.26"
-
-#ifndef VERSION_STRING
-# define VERSION_STRING "LGOGDownloader " VERSION_NUMBER
-#endif
-
namespace bpo = boost::program_options;
template void set_vm_value(std::map& vm, const std::string& option, const T& value)
diff --git a/man/CMakeLists.txt b/man/CMakeLists.txt
new file mode 100644
index 0000000..7f123b0
--- /dev/null
+++ b/man/CMakeLists.txt
@@ -0,0 +1,22 @@
+find_program(HELP2MAN help2man DOC "Location of the help2man program")
+find_program(GZIP gzip DOC "Location of the gzip program")
+mark_as_advanced(HELP2MAN)
+mark_as_advanced(GZIP)
+
+if(HELP2MAN AND GZIP)
+ set(H2M_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.supplemental.groff)
+ set(MAN_PAGE ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.1)
+ set(MAN_FILE ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.1.gz)
+ add_custom_command(
+ OUTPUT ${MAN_FILE}
+ COMMAND ${HELP2MAN} -N -i ${H2M_FILE} -o ${MAN_PAGE} ${PROJECT_BINARY_DIR}/${PROJECT_NAME}${CMAKE_EXECUTABLE_SUFFIX}
+ COMMAND ${GZIP} -f -9 ${MAN_PAGE}
+ MAIN_DEPENDENCY ${H2M_FILE}
+ COMMENT "Building man page"
+ VERBATIM
+ )
+ add_custom_target(manpage ALL DEPENDS ${MAN_FILE} ${PROJECT_NAME})
+ install(FILES ${MAN_FILE} DESTINATION ${INSTALL_SHARE_DIR}/man/man1)
+else(HELP2MAN AND GZIP)
+ message("WARNING: One of the following is missing: help2man, gzip; man page will not be generated")
+endif(HELP2MAN AND GZIP)
diff --git a/version.sh b/version.sh
deleted file mode 100644
index 113ebf6..0000000
--- a/version.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-version="LGOGDownloader `grep VERSION_NUMBER < main.cpp | head -n 1 | sed -e 's/.*\([0-9]\+\.[0-9]\+\).*/\1/'`"
-if [ -e .git/HEAD ]; then
- if git status | grep -q 'modified:'; then
- version="${version}M"
- fi
- version="$version git `git rev-parse --short HEAD`"
-fi
-echo "$version"