summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt21
1 files changed, 18 insertions, 3 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c26f57e6..60e6d1b2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -210,10 +210,23 @@ set(DIRS "${QT_LIBS_DIR}")
################################ Included Libs ################################
+include(ExternalProject)
+set_directory_properties(PROPERTIES EP_BASE External)
+
# Add quazip
add_definitions(-DQUAZIP_STATIC)
-add_subdirectory(depends/quazip)
-include_directories(depends/quazip)
+set(QUAZIP_VERSION "0.7.1")
+if(NOT EXISTS ${CMAKE_BINARY_DIR}/quazip-${QUAZIP_VERSION}.tar.gz)
+ file(DOWNLOAD http://downloads.sourceforge.net/project/quazip/quazip/${QUAZIP_VERSION}/quazip-${QUAZIP_VERSION}.tar.gz ${CMAKE_BINARY_DIR}/quazip-${QUAZIP_VERSION}.tar.gz)
+endif()
+ExternalProject_Add(QuaZIP
+ SOURCE_DIR <BINARY_DIR>/../Source/quazip-${QUAZIP_VERSION}
+ DOWNLOAD_COMMAND ${CMAKE_COMMAND} -E chdir <SOURCE_DIR>/.. ${CMAKE_COMMAND} -E tar xzf ${CMAKE_BINARY_DIR}/quazip-${QUAZIP_VERSION}.tar.gz
+ PATCH_COMMAND patch -p0 -i ${CMAKE_SOURCE_DIR}/quazip.patch
+ CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG} -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH} -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
+)
+include_directories("${CMAKE_BINARY_DIR}/External/Install/QuaZIP/include/quazip")
+set(QUAZIP_LIBRARIES -L"${CMAKE_BINARY_DIR}/External/Install/QuaZIP/lib" quazip)
# Add the java launcher and checker
add_subdirectory(depends/launcher)
@@ -728,10 +741,12 @@ add_executable(MultiMC MACOSX_BUNDLE WIN32 main.cpp ${MULTIMC_RCS})
# Link
target_link_libraries(MultiMC MultiMC_common)
-target_link_libraries(MultiMC_common xz-embedded unpack200 quazip libUtil LogicalGui ${MultiMC_LINK_ADDITIONAL_LIBS})
+target_link_libraries(MultiMC_common xz-embedded unpack200 libUtil LogicalGui ${QUAZIP_LIBRARIES} ${MultiMC_LINK_ADDITIONAL_LIBS})
qt5_use_modules(MultiMC Core Widgets Network Xml Concurrent WebKitWidgets ${MultiMC_QT_ADDITIONAL_MODULES})
qt5_use_modules(MultiMC_common Core Widgets Network Xml Concurrent WebKitWidgets ${MultiMC_QT_ADDITIONAL_MODULES})
+add_dependencies(MultiMC_common QuaZip)
+
################################ INSTALLATION AND PACKAGING ################################
######## Install ########