aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitmodules4
-rw-r--r--CMakeLists.txt32
-rw-r--r--launcher/CMakeLists.txt3
-rw-r--r--launcher/InstanceImportTask.cpp5
-rw-r--r--launcher/MMCZip.cpp7
-rw-r--r--launcher/MMCZip.h11
-rw-r--r--launcher/minecraft/MinecraftLoadAndCheck.h5
-rw-r--r--launcher/minecraft/MinecraftUpdate.h5
-rw-r--r--launcher/minecraft/World.cpp7
-rw-r--r--launcher/minecraft/launch/ExtractNatives.cpp6
-rw-r--r--launcher/minecraft/mod/LocalModParseTask.cpp7
-rw-r--r--launcher/modplatform/atlauncher/ATLPackInstallTask.cpp4
-rw-r--r--launcher/modplatform/legacy_ftb/PackInstallTask.h7
-rw-r--r--launcher/modplatform/technic/SingleZipPackInstallTask.h4
-rw-r--r--launcher/modplatform/technic/TechnicPackProcessor.cpp8
-rw-r--r--libraries/classparser/CMakeLists.txt2
-rw-r--r--libraries/classparser/src/classparser.cpp6
m---------libraries/quazip0
18 files changed, 106 insertions, 17 deletions
diff --git a/.gitmodules b/.gitmodules
index cff26810..10575207 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -2,3 +2,7 @@
path = libraries/libnbtplusplus
url = https://github.com/MultiMC/libnbtplusplus.git
pushurl = git@github.com:MultiMC/libnbtplusplus.git
+
+[submodule "libraries/quazip"]
+ path = libraries/quazip
+ url = https://github.com/stachenov/quazip.git
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 35deff04..2ebc0dfd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -80,6 +80,11 @@ set(Launcher_DISCORD_URL "https://discord.gg/Z52pwxWCHP" CACHE STRING "URL for t
# Subreddit URL
set(Launcher_SUBREDDIT_URL "" CACHE STRING "URL for the subreddit.")
+# Builds
+set(Launcher_FORCE_BUNDLED_LIBS OFF CACHE BOOL "Prevent using system libraries, if they are available as submodules")
+set(Launcher_QT_VERSION_MAJOR "5" CACHE STRING "Major Qt version to build against")
+
+
#### Check the current Git commit and branch
include(GetGitRevisionDescription)
get_git_head_revision(Launcher_GIT_REFSPEC Launcher_GIT_COMMIT)
@@ -96,14 +101,19 @@ add_custom_target(tcversion echo "\\#\\#teamcity[setParameter name=\\'env.LAUNCH
################################ 3rd Party Libs ################################
# Find the required Qt parts
-find_package(Qt5Core REQUIRED)
-find_package(Qt5Widgets REQUIRED)
-find_package(Qt5Concurrent REQUIRED)
-find_package(Qt5Network REQUIRED)
-find_package(Qt5Test REQUIRED)
-find_package(Qt5Xml REQUIRED)
-
-find_package(QuaZip-Qt5 REQUIRED)
+set(QT_VERSION_MAJOR ${Launcher_QT_VERSION_MAJOR})
+find_package(Qt${QT_VERSION_MAJOR}Core REQUIRED)
+find_package(Qt${QT_VERSION_MAJOR}Widgets REQUIRED)
+find_package(Qt${QT_VERSION_MAJOR}Concurrent REQUIRED)
+find_package(Qt${QT_VERSION_MAJOR}Network REQUIRED)
+find_package(Qt${QT_VERSION_MAJOR}Test REQUIRED)
+find_package(Qt${QT_VERSION_MAJOR}Xml REQUIRED)
+
+if (NOT Launcher_FORCE_BUNDLED_LIBS)
+ find_package(QuaZip-Qt${QT_VERSION_MAJOR} REQUIRED)
+else()
+ MESSAGE(STATUS "Not looking for QuaZip via find_package")
+endif()
# The Qt5 cmake files don't provide its install paths, so ask qmake.
include(QMakeQuery)
@@ -251,6 +261,12 @@ add_subdirectory(libraries/hoedown) # markdown parser
add_subdirectory(libraries/launcher) # java based launcher part for Minecraft
add_subdirectory(libraries/javacheck) # java compatibility checker
add_subdirectory(libraries/xz-embedded) # xz compression
+if (NOT QuaZip-Qt${QT_VERSION_MAJOR}_FOUND)
+ set(QUAZIP_QT_MAJOR_VERSION ${QT_VERSION_MAJOR})
+ add_compile_definitions(QUAZIP_USE_SUBMODULE)
+ MESSAGE(STATUS "Adding QuaZip submodule, with QT_VERSION_MAJOR ${QUAZIP_QT_MAJOR_VERSION}")
+ add_subdirectory(libraries/quazip) # zip manipulation library
+endif()
add_subdirectory(libraries/rainbow) # Qt extension for colors
add_subdirectory(libraries/iconfix) # fork of Qt's QIcon loader
add_subdirectory(libraries/LocalPeer) # fork of a library from Qt solutions
diff --git a/launcher/CMakeLists.txt b/launcher/CMakeLists.txt
index 0ef27f6b..c704563b 100644
--- a/launcher/CMakeLists.txt
+++ b/launcher/CMakeLists.txt
@@ -899,7 +899,6 @@ endif()
add_library(Launcher_logic STATIC ${LOGIC_SOURCES} ${LAUNCHER_SOURCES} ${LAUNCHER_UI} ${LAUNCHER_RESOURCES})
target_link_libraries(Launcher_logic
systeminfo
- Launcher_quazip
Launcher_classparser
${NBT_NAME}
${ZLIB_LIBRARIES}
@@ -917,7 +916,7 @@ target_link_libraries(Launcher_logic
)
target_link_libraries(Launcher_logic
Launcher_iconfix
- ${QUAZIP_LIBRARIES}
+ QuaZip::QuaZip
hoedown
Launcher_rainbow
LocalPeer
diff --git a/launcher/InstanceImportTask.cpp b/launcher/InstanceImportTask.cpp
index 6e2dd912..8aab91c5 100644
--- a/launcher/InstanceImportTask.cpp
+++ b/launcher/InstanceImportTask.cpp
@@ -29,7 +29,12 @@
#include "modplatform/flame/FileResolvingTask.h"
#include "modplatform/flame/PackManifest.h"
#include "Json.h"
+
+#ifdef QUAZIP_USE_SUBMODULE
+#include <quazip/quazipdir.h>
+#else
#include <QuaZip-Qt5-1.2/quazip/quazipdir.h>
+#endif
#include "modplatform/technic/TechnicPackProcessor.h"
#include "icons/IconList.h"
diff --git a/launcher/MMCZip.cpp b/launcher/MMCZip.cpp
index e1906a0c..74c9b388 100644
--- a/launcher/MMCZip.cpp
+++ b/launcher/MMCZip.cpp
@@ -12,10 +12,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
+#ifdef QUAZIP_USE_SUBMODULE
+#include <quazip/quazip.h>
+#include <quazip/quazipdir.h>
+#include <quazip/quazipfile.h>
+#else
#include <QuaZip-Qt5-1.2/quazip/quazip.h>
#include <QuaZip-Qt5-1.2/quazip/quazipdir.h>
#include <QuaZip-Qt5-1.2/quazip/quazipfile.h>
+#endif
#include "MMCZip.h"
#include "FileSystem.h"
diff --git a/launcher/MMCZip.h b/launcher/MMCZip.h
index 5260f856..5983aa37 100644
--- a/launcher/MMCZip.h
+++ b/launcher/MMCZip.h
@@ -19,13 +19,14 @@
#include <QFileInfo>
#include <QSet>
#include "minecraft/mod/Mod.h"
+#include "nonstd/optional"
#include <functional>
-//#include <QuaZip-Qt5-1.2/quazip/JlCompress.h>
-// TODO: Blocked by https://github.com/stachenov/quazip/pull/141
-// For now, checkout https://github.com/Scrumplex/quazip/tree/expose-jlcompress-fns at ../../quazip
-#include <../../quazip/quazip/JlCompress.h>
-#include <nonstd/optional>
+#ifdef QUAZIP_USE_SUBMODULE
+#include <quazip/JlCompress.h>
+#else
+#include <QuaZip-Qt5-1.2/quazip/JlCompress.h>
+#endif
namespace MMCZip
{
diff --git a/launcher/minecraft/MinecraftLoadAndCheck.h b/launcher/minecraft/MinecraftLoadAndCheck.h
index 4e673a4b..1aeb79f8 100644
--- a/launcher/minecraft/MinecraftLoadAndCheck.h
+++ b/launcher/minecraft/MinecraftLoadAndCheck.h
@@ -20,7 +20,12 @@
#include <QUrl>
#include "tasks/Task.h"
+
+#ifdef QUAZIP_USE_SUBMODULE
+#include <quazip/quazip.h>
+#else
#include <QuaZip-Qt5-1.2/quazip/quazip.h>
+#endif
#include "QObjectPtr.h"
diff --git a/launcher/minecraft/MinecraftUpdate.h b/launcher/minecraft/MinecraftUpdate.h
index a1df4b3f..36c4310b 100644
--- a/launcher/minecraft/MinecraftUpdate.h
+++ b/launcher/minecraft/MinecraftUpdate.h
@@ -22,7 +22,12 @@
#include "net/NetJob.h"
#include "tasks/Task.h"
#include "minecraft/VersionFilterData.h"
+
+#ifdef QUAZIP_USE_SUBMODULE
+#include <quazip/quazip.h>
+#else
#include <QuaZip-Qt5-1.2/quazip/quazip.h>
+#endif
class MinecraftVersion;
class MinecraftInstance;
diff --git a/launcher/minecraft/World.cpp b/launcher/minecraft/World.cpp
index 95892d43..8fd77919 100644
--- a/launcher/minecraft/World.cpp
+++ b/launcher/minecraft/World.cpp
@@ -26,9 +26,16 @@
#include <io/stream_reader.h>
#include <tag_string.h>
#include <tag_primitive.h>
+
+#ifdef QUAZIP_USE_SUBMODULE
+#include <quazip/quazip.h>
+#include <quazip/quazipfile.h>
+#include <quazip/quazipdir.h>
+#else
#include <QuaZip-Qt5-1.2/quazip/quazip.h>
#include <QuaZip-Qt5-1.2/quazip/quazipfile.h>
#include <QuaZip-Qt5-1.2/quazip/quazipdir.h>
+#endif
#include <QCoreApplication>
diff --git a/launcher/minecraft/launch/ExtractNatives.cpp b/launcher/minecraft/launch/ExtractNatives.cpp
index 744e7ac6..5f13f730 100644
--- a/launcher/minecraft/launch/ExtractNatives.cpp
+++ b/launcher/minecraft/launch/ExtractNatives.cpp
@@ -17,8 +17,14 @@
#include <minecraft/MinecraftInstance.h>
#include <launch/LaunchTask.h>
+#ifdef QUAZIP_USE_SUBMODULE
+#include <quazip/quazip.h>
+#include <quazip/quazipdir.h>
+#else
#include <QuaZip-Qt5-1.2/quazip/quazip.h>
#include <QuaZip-Qt5-1.2/quazip/quazipdir.h>
+#endif
+
#include "MMCZip.h"
#include "FileSystem.h"
#include <QDir>
diff --git a/launcher/minecraft/mod/LocalModParseTask.cpp b/launcher/minecraft/mod/LocalModParseTask.cpp
index fa3a4538..651b96ac 100644
--- a/launcher/minecraft/mod/LocalModParseTask.cpp
+++ b/launcher/minecraft/mod/LocalModParseTask.cpp
@@ -4,8 +4,15 @@
#include <QJsonObject>
#include <QJsonArray>
#include <QJsonValue>
+
+#ifdef QUAZIP_USE_SUBMODULE
+#include <quazip/quazip.h>
+#include <quazip/quazipfile.h>
+#else
#include <QuaZip-Qt5-1.2/quazip/quazip.h>
#include <QuaZip-Qt5-1.2/quazip/quazipfile.h>
+#endif
+
#include <toml.h>
#include "settings/INIFile.h"
diff --git a/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp b/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp
index 30a61026..c4f4b96f 100644
--- a/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp
+++ b/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp
@@ -19,7 +19,11 @@
#include <QtConcurrent/QtConcurrent>
+#ifdef QUAZIP_USE_SUBMODULE
+#include <quazip/quazip.h>
+#else
#include <QuaZip-Qt5-1.2/quazip/quazip.h>
+#endif
#include "MMCZip.h"
#include "minecraft/OneSixVersionFormat.h"
diff --git a/launcher/modplatform/legacy_ftb/PackInstallTask.h b/launcher/modplatform/legacy_ftb/PackInstallTask.h
index 6797971c..2cdfee7a 100644
--- a/launcher/modplatform/legacy_ftb/PackInstallTask.h
+++ b/launcher/modplatform/legacy_ftb/PackInstallTask.h
@@ -1,8 +1,15 @@
#pragma once
#include "InstanceTask.h"
#include "net/NetJob.h"
+
+#ifdef QUAZIP_USE_SUBMODULE
+#include <quazip/quazip.h>
+#include <quazip/quazipdir.h>
+#else
#include "QuaZip-Qt5-1.2/quazip/quazip.h"
#include "QuaZip-Qt5-1.2/quazip/quazipdir.h"
+#endif
+
#include "meta/Index.h"
#include "meta/Version.h"
#include "meta/VersionList.h"
diff --git a/launcher/modplatform/technic/SingleZipPackInstallTask.h b/launcher/modplatform/technic/SingleZipPackInstallTask.h
index 58594136..d3bdc00b 100644
--- a/launcher/modplatform/technic/SingleZipPackInstallTask.h
+++ b/launcher/modplatform/technic/SingleZipPackInstallTask.h
@@ -18,7 +18,11 @@
#include "InstanceTask.h"
#include "net/NetJob.h"
+#ifdef QUAZIP_USE_SUBMODULE
+#include <quazip/quazip.h>
+#else
#include "QuaZip-Qt5-1.2/quazip/quazip.h"
+#endif
#include <QFutureWatcher>
#include <QStringList>
diff --git a/launcher/modplatform/technic/TechnicPackProcessor.cpp b/launcher/modplatform/technic/TechnicPackProcessor.cpp
index f5c011f5..a8b4d05b 100644
--- a/launcher/modplatform/technic/TechnicPackProcessor.cpp
+++ b/launcher/modplatform/technic/TechnicPackProcessor.cpp
@@ -19,9 +19,17 @@
#include <Json.h>
#include <minecraft/MinecraftInstance.h>
#include <minecraft/PackProfile.h>
+
+#ifdef QUAZIP_USE_SUBMODULE
+#include <quazip/quazip.h>
+#include <quazip/quazipdir.h>
+#include <quazip/quazipfile.h>
+#else
#include <QuaZip-Qt5-1.2/quazip/quazip.h>
#include <QuaZip-Qt5-1.2/quazip/quazipdir.h>
#include <QuaZip-Qt5-1.2/quazip/quazipfile.h>
+#endif
+
#include <settings/INISettingsObject.h>
#include <memory>
diff --git a/libraries/classparser/CMakeLists.txt b/libraries/classparser/CMakeLists.txt
index c07e871c..fc510e68 100644
--- a/libraries/classparser/CMakeLists.txt
+++ b/libraries/classparser/CMakeLists.txt
@@ -38,4 +38,4 @@ add_definitions(-DCLASSPARSER_LIBRARY)
add_library(Launcher_classparser STATIC ${CLASSPARSER_SOURCES} ${CLASSPARSER_HEADERS})
target_include_directories(Launcher_classparser PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include")
-target_link_libraries(Launcher_classparser Launcher_quazip Qt5::Core)
+target_link_libraries(Launcher_classparser QuaZip::QuaZip Qt5::Core)
diff --git a/libraries/classparser/src/classparser.cpp b/libraries/classparser/src/classparser.cpp
index a47d1aad..b7612a41 100644
--- a/libraries/classparser/src/classparser.cpp
+++ b/libraries/classparser/src/classparser.cpp
@@ -18,7 +18,13 @@
#include "classparser.h"
#include <QFile>
+
+#ifdef QUAZIP_USE_SUBMODULE
+#include <quazip/quazipfile.h>
+#else
#include <QuaZip-Qt5-1.2/quazip/quazipfile.h>
+#endif
+
#include <QDebug>
namespace classparser
diff --git a/libraries/quazip b/libraries/quazip
new file mode 160000
+Subproject 09ec1d10c6d627f895109b21728dda000cbfa7d