NOISSUE clean up some old cmake messes
This commit is contained in:
		| @@ -1,4 +1,4 @@ | ||||
| cmake_minimum_required(VERSION 3.2.0) | ||||
| cmake_minimum_required(VERSION 3.1) | ||||
|  | ||||
| string(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BUILD_DIR}" IS_IN_SOURCE_BUILD) | ||||
| if(IS_IN_SOURCE_BUILD) | ||||
| @@ -10,7 +10,7 @@ if(WIN32) | ||||
| 	cmake_policy(SET CMP0020 OLD) | ||||
| endif() | ||||
|  | ||||
| project(Megatron) | ||||
| project(MultiMC) | ||||
| enable_testing() | ||||
|  | ||||
| ######## Set CMake options ######## | ||||
| @@ -19,12 +19,13 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON) | ||||
|  | ||||
| ######## Set module path ######## | ||||
| set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/") | ||||
|  | ||||
| # Only used for test coverage | ||||
| set(MMC_SRC "${PROJECT_SOURCE_DIR}") | ||||
| set(MMC_BIN "${PROJECT_BINARY_DIR}") | ||||
|  | ||||
| # Output all executables and shared libs in the main build folder, not in subfolders. | ||||
| set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) | ||||
|  | ||||
| if(UNIX) | ||||
| 	set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) | ||||
| endif() | ||||
| @@ -32,7 +33,10 @@ endif() | ||||
| set(CMAKE_JAVA_TARGET_OUTPUT_DIR ${PROJECT_BINARY_DIR}/jars) | ||||
|  | ||||
| ######## Set compiler flags ######## | ||||
| include(UseCXX14) | ||||
| set(CMAKE_CXX_STANDARD_REQUIRED true) | ||||
| set(CMAKE_C_STANDARD_REQUIRED true) | ||||
| set(CMAKE_CXX_STANDARD 14) | ||||
| set(CMAKE_C_STANDARD 11) | ||||
| include(Coverage) | ||||
| include(GenerateExportHeader) | ||||
| set(CMAKE_CXX_FLAGS " -Wall ${CMAKE_CXX_FLAGS}") | ||||
| @@ -44,21 +48,7 @@ include(Coverity) | ||||
| ################################ 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) | ||||
|  | ||||
| include_directories( | ||||
| 	${Qt5Core_INCLUDE_DIRS} | ||||
| 	${Qt5Widgets_INCLUDE_DIRS} | ||||
| 	${Qt5Concurrent_INCLUDE_DIRS} | ||||
| 	${Qt5Test_INCLUDE_DIRS} | ||||
| 	${Qt5Network_INCLUDE_DIRS} | ||||
| 	${Qt5Xml_INCLUDE_DIRS} | ||||
| ) | ||||
| find_package(Qt5 COMPONENTS Core Widgets Concurrent Network Test Xml) | ||||
|  | ||||
| # The Qt5 cmake files don't provide its install paths, so ask qmake. | ||||
| include(QMakeQuery) | ||||
| @@ -97,27 +87,13 @@ else() | ||||
| set(QUAZIP_LIBRARIES -L"${CMAKE_BINARY_DIR}/External/Install/QuaZIP/lib" quazip) | ||||
| endif() | ||||
|  | ||||
| # Add the markdown parser thing | ||||
| add_subdirectory(depends/hoedown) | ||||
| include_directories(${HOEDOWN_INCLUDE_DIR}) | ||||
| add_subdirectory(depends/hoedown) # markdown parser | ||||
| add_subdirectory(depends/launcher) # java based launcher part for Minecraft | ||||
| add_subdirectory(depends/javacheck) # java compatibility checker | ||||
| add_subdirectory(depends/xz-embedded) # xz compression | ||||
| add_subdirectory(depends/pack200) # java pack200 compression | ||||
| add_subdirectory(depends/rainbow) # Qt extension for colors | ||||
|  | ||||
| # Add the java launcher and checker | ||||
| add_subdirectory(depends/launcher) | ||||
| add_subdirectory(depends/javacheck) | ||||
|  | ||||
| # Add xz decompression | ||||
| add_subdirectory(depends/xz-embedded) | ||||
| include_directories(${XZ_INCLUDE_DIR}) | ||||
|  | ||||
| # Add pack200 decompression | ||||
| add_subdirectory(depends/pack200) | ||||
| include_directories(${PACK200_INCLUDE_DIR}) | ||||
|  | ||||
| # Add color thingy | ||||
| add_subdirectory(depends/rainbow) | ||||
| include_directories(${RAINBOW_INCLUDE_DIR}) | ||||
|  | ||||
| # Add NBT library - with our preferred options | ||||
| set(NBT_BUILD_SHARED ON CACHE BOOL "Build NBT shared library") | ||||
| set(NBT_USE_ZLIB OFF CACHE BOOL "Build NBT library with zlib support") | ||||
| set(NBT_BUILD_TESTS OFF CACHE BOOL "Build NBT library tests") #FIXME: fix unit tests. | ||||
| @@ -125,26 +101,14 @@ add_subdirectory(depends/libnbtplusplus) | ||||
|  | ||||
| ######## MultiMC Libs ######## | ||||
|  | ||||
| # Add the util library. | ||||
| add_definitions(-DLIBUTIL_STATIC) | ||||
| add_subdirectory(depends/util) | ||||
| include_directories(${LIBUTIL_INCLUDE_DIR}) | ||||
|  | ||||
| # Add the GUI -> Logic connection header | ||||
| add_subdirectory(depends/LogicalGui) | ||||
| include_directories(${LOGICALGUI_INCLUDE_DIR}) | ||||
|  | ||||
| # Add the GUI -> Logic connection header | ||||
| add_subdirectory(depends/iconfix) | ||||
| include_directories(${ICONFIX_INCLUDE_DIR}) | ||||
| add_subdirectory(depends/util) # various utility functions | ||||
| add_subdirectory(depends/LogicalGui) # GUI -> Logic connection | ||||
| add_subdirectory(depends/iconfix) # fork of Qt's QIcon loader | ||||
|  | ||||
| include(Coverity) | ||||
|  | ||||
| ############################### Built Artifacts ############################### | ||||
|  | ||||
| add_subdirectory(tests) | ||||
|  | ||||
| add_subdirectory(logic) | ||||
|  | ||||
| add_subdirectory(application) | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| project(MultiMC-Application) | ||||
| project(application) | ||||
|  | ||||
| ######## Set URLs ######## | ||||
| set(MultiMC_NEWS_RSS_URL "http://multimc.org/rss.xml" CACHE STRING "URL to fetch MultiMC's news RSS feed from.") | ||||
| @@ -327,23 +327,18 @@ if(WIN32) | ||||
| 	set(MULTIMC_RCS resources/multimc.rc) | ||||
| endif() | ||||
|  | ||||
| # Link additional libraries | ||||
| if(WIN32) | ||||
| 	set(MultiMC_LINK_ADDITIONAL_LIBS ${MultiMC_LINK_ADDITIONAL_LIBS} Qt5::WinMain) | ||||
| endif(WIN32) | ||||
|  | ||||
| include_directories(../logic ${CMAKE_CURRENT_BINARY_DIR}/../logic) | ||||
|  | ||||
| # Qt 5 stuff | ||||
| qt5_wrap_ui(MULTIMC_UI ${MULTIMC_UIS}) | ||||
| qt5_add_resources(MULTIMC_RESOURCES ${MULTIMC_QRCS}) | ||||
|  | ||||
| # Add executable | ||||
| add_executable(MultiMC MACOSX_BUNDLE WIN32 ${MULTIMC_SOURCES} ${MULTIMC_UI} ${MULTIMC_RESOURCES} ${MULTIMC_RCS}) | ||||
| target_link_libraries(MultiMC MultiMC_logic xz-embedded unpack200 iconfix libUtil LogicalGui | ||||
| 	${QUAZIP_LIBRARIES} Qt5::Core Qt5::Xml Qt5::Widgets Qt5::Network Qt5::Concurrent | ||||
| 		hoedown rainbow | ||||
| 			${MultiMC_LINK_ADDITIONAL_LIBS}) | ||||
| target_link_libraries(MultiMC MultiMC_logic xz-embedded unpack200 iconfix MultiMC_util ${QUAZIP_LIBRARIES} hoedown rainbow) | ||||
|  | ||||
| if(WIN32) | ||||
| 	qt5_use_modules(MultiMC WinMain) | ||||
| endif(WIN32) | ||||
|  | ||||
|  | ||||
| ################################ INSTALLATION AND PACKAGING ################################ | ||||
|  | ||||
|   | ||||
| @@ -1,13 +0,0 @@ | ||||
| if(__USECXX11_CMAKE__) | ||||
|     return() | ||||
| endif() | ||||
| set(__USECXX11_CMAKE__ TRUE) | ||||
|  | ||||
| if(APPLE) | ||||
|     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++ -std=c++11") | ||||
| elseif(UNIX) | ||||
|     # assume GCC, add C++0x/C++11 stuff | ||||
|     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") | ||||
| elseif(MINGW) | ||||
|     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11") | ||||
| endif() | ||||
| @@ -1,13 +0,0 @@ | ||||
| if(__USECXX14_CMAKE__) | ||||
|     return() | ||||
| endif() | ||||
| set(__USECXX14_CMAKE__ TRUE) | ||||
|  | ||||
| if(APPLE) | ||||
|     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++ -std=c++1y") | ||||
| elseif(UNIX) | ||||
|     # assume GCC, add C++0x/C++11 stuff | ||||
|     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") | ||||
| elseif(MINGW) | ||||
|     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++14") | ||||
| endif() | ||||
| @@ -1,7 +1,4 @@ | ||||
| project(LogicalGui) | ||||
|  | ||||
| # Set the include dir path. | ||||
| set(LOGICALGUI_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" PARENT_SCOPE) | ||||
|  | ||||
| add_library(LogicalGui STATIC LogicalGui.h) | ||||
| target_include_directories(LogicalGui PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") | ||||
| qt5_use_modules(LogicalGui Core) | ||||
|   | ||||
| @@ -16,9 +16,8 @@ find_package(Qt5Core REQUIRED) | ||||
| include_directories(${Qt5Base_INCLUDE_DIRS}) | ||||
|  | ||||
| set(CLASSPARSER_HEADERS | ||||
| include/classparser_config.h | ||||
|  | ||||
| # Public headers | ||||
| include/classparser_config.h | ||||
| include/javautils.h | ||||
|  | ||||
| # Private headers | ||||
| @@ -35,14 +34,8 @@ src/javautils.cpp | ||||
| src/annotations.cpp | ||||
| ) | ||||
|  | ||||
| # Set the include dir path. | ||||
| set(LIBGROUPVIEW_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include" PARENT_SCOPE) | ||||
|  | ||||
| # Include self. | ||||
| include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) | ||||
| include_directories(${CMAKE_BINARY_DIR}/include) | ||||
|  | ||||
| add_definitions(-DCLASSPARSER_LIBRARY) | ||||
|  | ||||
| add_library(classparser SHARED ${CLASSPARSER_SOURCES} ${CLASSPARSER_HEADERS}) | ||||
| target_include_directories(classparser PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include") | ||||
| qt5_use_modules(classparser Core) | ||||
|   | ||||
| @@ -1,14 +1,14 @@ | ||||
| # hoedown 3.0.2 - https://github.com/hoedown/hoedown/archive/3.0.2.tar.gz | ||||
| project(hoedown) | ||||
| project(hoedown LANGUAGES C VERSION 3.0.2) | ||||
|  | ||||
| set(HOEDOWN_SOURCES | ||||
| hoedown/autolink.h | ||||
| hoedown/buffer.h | ||||
| hoedown/document.h | ||||
| hoedown/escape.h | ||||
| hoedown/html.h | ||||
| hoedown/stack.h | ||||
| hoedown/version.h | ||||
| include/hoedown/autolink.h | ||||
| include/hoedown/buffer.h | ||||
| include/hoedown/document.h | ||||
| include/hoedown/escape.h | ||||
| include/hoedown/html.h | ||||
| include/hoedown/stack.h | ||||
| include/hoedown/version.h | ||||
| src/autolink.c | ||||
| src/buffer.c | ||||
| src/document.c | ||||
| @@ -20,10 +20,7 @@ src/stack.c | ||||
| src/version.c | ||||
| ) | ||||
|  | ||||
| # Set the include dir path. | ||||
| set(HOEDOWN_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" PARENT_SCOPE) | ||||
|  | ||||
| # Include self. | ||||
| include_directories(${CMAKE_CURRENT_SOURCE_DIR}) | ||||
|  | ||||
| add_library(hoedown STATIC ${HOEDOWN_SOURCES}) | ||||
|  | ||||
| target_include_directories(hoedown PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) | ||||
|   | ||||
| @@ -1,12 +1,9 @@ | ||||
| cmake_minimum_required(VERSION 2.8.11) | ||||
| cmake_minimum_required(VERSION 3.1) | ||||
| project(iconfix) | ||||
|  | ||||
| find_package(Qt5Core REQUIRED QUIET) | ||||
| find_package(Qt5Widgets REQUIRED QUIET) | ||||
|  | ||||
| include_directories(${Qt5Core_INCLUDE_DIRS}) | ||||
| include_directories(${Qt5Widgets_INCLUDE_DIRS}) | ||||
|  | ||||
| set(ICONFIX_SOURCES | ||||
| xdgicon.h | ||||
| xdgicon.cpp | ||||
| @@ -15,6 +12,7 @@ internal/qiconloader.cpp | ||||
| internal/qiconloader_p.h | ||||
| ) | ||||
|  | ||||
| set(ICONFIX_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" PARENT_SCOPE) | ||||
| add_library(iconfix STATIC ${ICONFIX_SOURCES}) | ||||
| target_include_directories(iconfix PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) | ||||
|  | ||||
| qt5_use_modules(iconfix Core Widgets) | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| cmake_minimum_required(VERSION 2.8.6) | ||||
| cmake_minimum_required(VERSION 3.1) | ||||
| project(launcher Java) | ||||
| find_package(Java 1.6 REQUIRED COMPONENTS Development) | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| cmake_minimum_required(VERSION 2.8.6) | ||||
| cmake_minimum_required(VERSION 3.1) | ||||
| project(launcher Java) | ||||
| find_package(Java 1.6 REQUIRED COMPONENTS Development) | ||||
|  | ||||
|   | ||||
 Submodule depends/libnbtplusplus updated: 9d17b0a9b9...5d0ffb50a5
									
								
							| @@ -1,24 +1,11 @@ | ||||
| cmake_minimum_required(VERSION 2.6) | ||||
|  | ||||
| if(WIN32) | ||||
| 	# In Qt 5.1+ we have our own main() function, don't autolink to qtmain on Windows | ||||
| 	cmake_policy(SET CMP0020 OLD) | ||||
| endif() | ||||
| cmake_minimum_required(VERSION 3.1) | ||||
|  | ||||
| project(unpack200) | ||||
|  | ||||
| option(PACK200_BUILD_BINARY "Build a tiny utility that decompresses pack200 streams" OFF) | ||||
|  | ||||
| # Find ZLIB for quazip | ||||
| # Use system zlib on unix and Qt ZLIB on Windows | ||||
| if(UNIX) | ||||
| 	find_package(ZLIB REQUIRED) | ||||
| else(UNIX) | ||||
| 	get_filename_component(ZLIB_FOUND_DIR "${Qt5Core_DIR}/../../../include/QtZlib" ABSOLUTE) | ||||
| 	set(ZLIB_INCLUDE_DIRS ${ZLIB_FOUND_DIR} CACHE PATH "Path to ZLIB headers of Qt") | ||||
| 	set(ZLIB_LIBRARIES "") | ||||
| 	if(NOT EXISTS "${ZLIB_INCLUDE_DIRS}/zlib.h") | ||||
| 		message("Please specify a valid zlib include dir") | ||||
| 	endif(NOT EXISTS "${ZLIB_INCLUDE_DIRS}/zlib.h") | ||||
| endif(UNIX) | ||||
| find_package(ZLIB REQUIRED) | ||||
|  | ||||
| set(PACK200_SRC | ||||
| 	include/unpack200.h | ||||
| @@ -41,19 +28,14 @@ set(PACK200_SRC | ||||
|  | ||||
| set(CMAKE_POSITION_INDEPENDENT_CODE ON) | ||||
|  | ||||
| set(PACK200_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include" PARENT_SCOPE) | ||||
| include_directories( | ||||
| 	include | ||||
| 	${ZLIB_INCLUDE_DIRS} | ||||
| ) | ||||
| add_library(unpack200 STATIC ${PACK200_SRC}) | ||||
| target_include_directories(unpack200 | ||||
| 	PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include" | ||||
| 	PRIVATE ${ZLIB_INCLUDE_DIRS}) | ||||
|  | ||||
| if(UNIX) | ||||
| 	target_link_libraries(unpack200 ${ZLIB_LIBRARIES}) | ||||
| else() | ||||
| 	# zlib is part of Qt on windows. use it. | ||||
| 	qt5_use_modules(unpack200 Core) | ||||
| target_link_libraries(unpack200 ${ZLIB_LIBRARIES}) | ||||
|  | ||||
| if(PACK200_BUILD_BINARY) | ||||
| 	add_executable(anti200 anti200.cpp) | ||||
| 	target_link_libraries(anti200 unpack200) | ||||
| endif() | ||||
|  | ||||
| add_executable(anti200 anti200.cpp) | ||||
| target_link_libraries(anti200 unpack200) | ||||
|   | ||||
| @@ -1,20 +1,15 @@ | ||||
| cmake_minimum_required(VERSION 2.8.11) | ||||
| cmake_minimum_required(VERSION 3.1) | ||||
| project(rainbow) | ||||
|  | ||||
| find_package(Qt5Core REQUIRED QUIET) | ||||
| find_package(Qt5Gui REQUIRED QUIET) | ||||
|  | ||||
| include_directories(${Qt5Core_INCLUDE_DIRS}) | ||||
| include_directories(${Qt5Gui_INCLUDE_DIRS}) | ||||
|  | ||||
| set(RAINBOW_SOURCES | ||||
| include/rainbow_config.h | ||||
| include/rainbow.h | ||||
| src/rainbow.cpp | ||||
| ) | ||||
|  | ||||
| add_definitions(-DRAINBOW_LIBRARY) | ||||
| set(RAINBOW_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include" PARENT_SCOPE) | ||||
| add_library(rainbow SHARED ${RAINBOW_SOURCES}) | ||||
| target_include_directories(rainbow PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include") | ||||
|  | ||||
| qt5_use_modules(rainbow Core Gui) | ||||
|   | ||||
| @@ -1,42 +1,28 @@ | ||||
| project(libUtil) | ||||
| project(MultiMC_util) | ||||
|  | ||||
| include(UseCXX14) | ||||
| include(Coverage) | ||||
|  | ||||
| # Find Qt | ||||
| find_package(Qt5Core REQUIRED) | ||||
|  | ||||
| # Include Qt headers. | ||||
| include_directories(${Qt5Base_INCLUDE_DIRS}) | ||||
| find_package(Qt5Gui REQUIRED) | ||||
|  | ||||
| set(LIBUTIL_SOURCES | ||||
| 	include/libutil_config.h | ||||
|  | ||||
| 	include/pathutils.h | ||||
| 	src/pathutils.cpp | ||||
|  | ||||
| 	include/osutils.h | ||||
|  | ||||
| 	include/userutils.h | ||||
| 	src/userutils.cpp | ||||
|  | ||||
| 	include/cmdutils.h | ||||
| 	src/cmdutils.cpp | ||||
|  | ||||
| 	include/modutils.h | ||||
| 	src/modutils.cpp | ||||
| 	include/cmdutils.h | ||||
| 	include/modutils.h | ||||
| 	include/osutils.h | ||||
| 	include/pathutils.h | ||||
| 	include/userutils.h | ||||
| ) | ||||
|  | ||||
| # Set the include dir path. | ||||
| set(LIBUTIL_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include" PARENT_SCOPE) | ||||
|  | ||||
| # Static link! | ||||
| add_definitions(-DLIBUTIL_STATIC) | ||||
|  | ||||
| add_definitions(-DLIBUTIL_LIBRARY) | ||||
|  | ||||
| set(CMAKE_POSITION_INDEPENDENT_CODE ON) | ||||
|  | ||||
| add_library(libUtil STATIC ${LIBUTIL_SOURCES}) | ||||
| qt5_use_modules(libUtil Core) | ||||
| target_link_libraries(libUtil) | ||||
| add_library(MultiMC_util STATIC ${LIBUTIL_SOURCES}) | ||||
|  | ||||
| qt5_use_modules(MultiMC_util Core Gui) | ||||
| generate_export_header(MultiMC_util) | ||||
| target_include_directories(MultiMC_util PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/include) | ||||
| set_property(TARGET MultiMC_util PROPERTY CXX_STANDARD 14) | ||||
|   | ||||
| @@ -25,7 +25,7 @@ | ||||
| #include <QHash> | ||||
| #include <QStringList> | ||||
|  | ||||
| #include "libutil_config.h" | ||||
| #include "multimc_util_export.h" | ||||
|  | ||||
| /** | ||||
|  * @file libutil/include/cmdutils.h | ||||
| @@ -42,7 +42,7 @@ namespace Commandline | ||||
|  * @param args the argument string | ||||
|  * @return a QStringList containing all arguments | ||||
|  */ | ||||
| LIBUTIL_EXPORT QStringList splitArgs(QString args); | ||||
| MULTIMC_UTIL_EXPORT QStringList splitArgs(QString args); | ||||
|  | ||||
| /** | ||||
|  * @brief The FlagStyle enum | ||||
| @@ -85,7 +85,7 @@ enum Enum | ||||
| /** | ||||
|  * @brief The ParsingError class | ||||
|  */ | ||||
| class LIBUTIL_EXPORT ParsingError : public std::runtime_error | ||||
| class MULTIMC_UTIL_EXPORT ParsingError : public std::runtime_error | ||||
| { | ||||
| public: | ||||
| 	ParsingError(const QString &what); | ||||
| @@ -94,7 +94,7 @@ public: | ||||
| /** | ||||
|  * @brief The Parser class | ||||
|  */ | ||||
| class LIBUTIL_EXPORT Parser | ||||
| class MULTIMC_UTIL_EXPORT Parser | ||||
| { | ||||
| public: | ||||
| 	/** | ||||
|   | ||||
| @@ -1,28 +0,0 @@ | ||||
| /* Copyright 2013-2015 MultiMC Contributors | ||||
|  * | ||||
|  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|  * you may not use this file except in compliance with the License. | ||||
|  * You may obtain a copy of the License at | ||||
|  * | ||||
|  *     http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, software | ||||
|  * distributed under the License is distributed on an "AS IS" BASIS, | ||||
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|  * See the License for the specific language governing permissions and | ||||
|  * limitations under the License. | ||||
|  */ | ||||
|  | ||||
| #pragma once | ||||
|  | ||||
| #include <QtCore/QtGlobal> | ||||
|  | ||||
| #ifdef LIBUTIL_STATIC | ||||
| #define LIBUTIL_EXPORT | ||||
| #else | ||||
| #ifdef LIBUTIL_LIBRARY | ||||
| #define LIBUTIL_EXPORT Q_DECL_EXPORT | ||||
| #else | ||||
| #define LIBUTIL_EXPORT Q_DECL_IMPORT | ||||
| #endif | ||||
| #endif | ||||
| @@ -3,7 +3,7 @@ | ||||
| #include <QString> | ||||
| #include <QList> | ||||
|  | ||||
| #include "libutil_config.h" | ||||
| #include "multimc_util_export.h" | ||||
|  | ||||
| class QUrl; | ||||
|  | ||||
| @@ -107,7 +107,7 @@ private: | ||||
| 	void parse(); | ||||
| }; | ||||
|  | ||||
| LIBUTIL_EXPORT bool versionIsInInterval(const QString &version, const QString &interval); | ||||
| LIBUTIL_EXPORT bool versionIsInInterval(const Version &version, const QString &interval); | ||||
| MULTIMC_UTIL_EXPORT bool versionIsInInterval(const QString &version, const QString &interval); | ||||
| MULTIMC_UTIL_EXPORT bool versionIsInInterval(const Version &version, const QString &interval); | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -18,12 +18,12 @@ | ||||
| #include <QString> | ||||
| #include <QDir> | ||||
|  | ||||
| #include "libutil_config.h" | ||||
| #include "multimc_util_export.h" | ||||
|  | ||||
| LIBUTIL_EXPORT QString PathCombine(QString path1, QString path2); | ||||
| LIBUTIL_EXPORT QString PathCombine(QString path1, QString path2, QString path3); | ||||
| MULTIMC_UTIL_EXPORT QString PathCombine(QString path1, QString path2); | ||||
| MULTIMC_UTIL_EXPORT QString PathCombine(QString path1, QString path2, QString path3); | ||||
|  | ||||
| LIBUTIL_EXPORT QString AbsolutePath(QString path); | ||||
| MULTIMC_UTIL_EXPORT QString AbsolutePath(QString path); | ||||
|  | ||||
| /** | ||||
|  * Normalize path | ||||
| @@ -35,37 +35,37 @@ LIBUTIL_EXPORT QString AbsolutePath(QString path); | ||||
|  */ | ||||
| QString NormalizePath(QString path); | ||||
|  | ||||
| LIBUTIL_EXPORT QString RemoveInvalidFilenameChars(QString string, QChar replaceWith = '-'); | ||||
| MULTIMC_UTIL_EXPORT QString RemoveInvalidFilenameChars(QString string, QChar replaceWith = '-'); | ||||
|  | ||||
| LIBUTIL_EXPORT QString DirNameFromString(QString string, QString inDir = "."); | ||||
| MULTIMC_UTIL_EXPORT QString DirNameFromString(QString string, QString inDir = "."); | ||||
|  | ||||
| /** | ||||
|  * Creates all the folders in a path for the specified path | ||||
|  * last segment of the path is treated as a file name and is ignored! | ||||
|  */ | ||||
| LIBUTIL_EXPORT bool ensureFilePathExists(QString filenamepath); | ||||
| MULTIMC_UTIL_EXPORT bool ensureFilePathExists(QString filenamepath); | ||||
|  | ||||
| /** | ||||
|  * Creates all the folders in a path for the specified path | ||||
|  * last segment of the path is treated as a folder name and is created! | ||||
|  */ | ||||
| LIBUTIL_EXPORT bool ensureFolderPathExists(QString filenamepath); | ||||
| MULTIMC_UTIL_EXPORT bool ensureFolderPathExists(QString filenamepath); | ||||
|  | ||||
| /** | ||||
|  * Copy a folder recursively | ||||
|  */ | ||||
| LIBUTIL_EXPORT bool copyPath(const QString &src, const QString &dst, bool follow_symlinks = true); | ||||
| MULTIMC_UTIL_EXPORT bool copyPath(const QString &src, const QString &dst, bool follow_symlinks = true); | ||||
|  | ||||
| /** | ||||
|  * Delete a folder recursively | ||||
|  */ | ||||
| LIBUTIL_EXPORT bool deletePath(QString path); | ||||
| MULTIMC_UTIL_EXPORT bool deletePath(QString path); | ||||
|  | ||||
| /// Opens the given file in the default application. | ||||
| LIBUTIL_EXPORT void openFileInDefaultProgram(QString filename); | ||||
| MULTIMC_UTIL_EXPORT void openFileInDefaultProgram(QString filename); | ||||
|  | ||||
| /// Opens the given directory in the default application. | ||||
| LIBUTIL_EXPORT void openDirInDefaultProgram(QString dirpath, bool ensureExists = false); | ||||
| MULTIMC_UTIL_EXPORT void openDirInDefaultProgram(QString dirpath, bool ensureExists = false); | ||||
|  | ||||
| /// Checks if the a given Path contains "!" | ||||
| LIBUTIL_EXPORT bool checkProblemticPathJava(QDir folder); | ||||
| MULTIMC_UTIL_EXPORT bool checkProblemticPathJava(QDir folder); | ||||
|   | ||||
| @@ -2,16 +2,16 @@ | ||||
|  | ||||
| #include <QString> | ||||
|  | ||||
| #include "libutil_config.h" | ||||
| #include "multimc_util_export.h" | ||||
|  | ||||
| namespace Util | ||||
| { | ||||
| // Get the Directory representing the User's Desktop | ||||
| LIBUTIL_EXPORT QString getDesktopDir(); | ||||
| MULTIMC_UTIL_EXPORT QString getDesktopDir(); | ||||
|  | ||||
| // Create a shortcut at *location*, pointing to *dest* called with the arguments *args* | ||||
| // call it *name* and assign it the icon *icon* | ||||
| // return true if operation succeeded | ||||
| LIBUTIL_EXPORT bool createShortCut(QString location, QString dest, QStringList args, | ||||
| MULTIMC_UTIL_EXPORT bool createShortCut(QString location, QString dest, QStringList args, | ||||
| 								   QString name, QString iconLocation); | ||||
| } | ||||
|   | ||||
| @@ -1,32 +1,26 @@ | ||||
| cmake_minimum_required(VERSION 2.6) | ||||
| project(xz-embedded) | ||||
| cmake_minimum_required(VERSION 3.1) | ||||
| project(xz-embedded LANGUAGES C) | ||||
|  | ||||
| option(XZ_BUILD_BCJ "Build xz-embedded with BCJ support (native binary optimization)" OFF) | ||||
| option(XZ_BUILD_CRC64 "Build xz-embedded with CRC64 checksum support" ON) | ||||
| option(XZ_BUILD_MINIDEC "Build a tiny utility that decompresses xz streams" OFF) | ||||
|  | ||||
| set(CMAKE_C_FLAGS "-std=c99") | ||||
|  | ||||
| include_directories(include) | ||||
| set(XZ_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include" PARENT_SCOPE) | ||||
|  | ||||
| # See include/xz.h for manual feature configuration | ||||
| # tweak this list and xz.h to fit your needs | ||||
|  | ||||
| set(XZ_SOURCES | ||||
| 	include/xz.h | ||||
| 	src/xz_config.h | ||||
| 	src/xz_crc32.c | ||||
| 	src/xz_crc64.c | ||||
| 	src/xz_dec_lzma2.c | ||||
| 	src/xz_dec_stream.c | ||||
| 	src/xz_lzma2.h | ||||
| 	src/xz_private.h | ||||
| 	src/xz_stream.h | ||||
| #	src/xz_dec_bcj.c | ||||
| ) | ||||
| # TODO: look into what would be needed for plain old lzma | ||||
|  | ||||
| add_library(xz-embedded STATIC ${XZ_SOURCES}) | ||||
| add_executable(xzminidec xzminidec.c) | ||||
| target_link_libraries(xzminidec xz-embedded) | ||||
| target_include_directories(xz-embedded PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include") | ||||
| set_property(TARGET xz-embedded PROPERTY C_STANDARD 99) | ||||
|  | ||||
| if(${XZ_BUILD_MINIDEC}) | ||||
| 	add_executable(xzminidec xzminidec.c) | ||||
| 	target_link_libraries(xzminidec xz-embedded) | ||||
| 	set_property(TARGET xzminidec PROPERTY C_STANDARD 99) | ||||
| endif() | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| project(MultiMC-Logic) | ||||
| project(MultiMC_logic) | ||||
|  | ||||
| set(LOGIC_SOURCES | ||||
| 	# LOGIC - Base classes and infrastructure | ||||
| @@ -303,36 +303,18 @@ set(LOGIC_SOURCES | ||||
| ) | ||||
| ################################ COMPILE ################################ | ||||
|  | ||||
| if(WIN32) | ||||
|     add_definitions(-DZ_PREFIX) | ||||
| endif() | ||||
| # we need zlib | ||||
| find_package(ZLIB REQUIRED) | ||||
|  | ||||
| # Add common library | ||||
| add_library(MultiMC_logic SHARED ${LOGIC_SOURCES}) | ||||
|  | ||||
| set_target_properties(MultiMC_logic PROPERTIES | ||||
|     CXX_VISIBILITY_PRESET hidden | ||||
|     VISIBILITY_INLINES_HIDDEN 1) | ||||
| set_target_properties(MultiMC_logic PROPERTIES CXX_VISIBILITY_PRESET hidden VISIBILITY_INLINES_HIDDEN 1) | ||||
|  | ||||
| generate_export_header(MultiMC_logic) | ||||
|  | ||||
| # Use system zlib on unix and Qt ZLIB on Windows | ||||
| if(UNIX) | ||||
| 	find_package(ZLIB REQUIRED) | ||||
| else(UNIX) | ||||
| 	get_filename_component(ZLIB_FOUND_DIR "${Qt5Core_DIR}/../../../include/QtZlib" ABSOLUTE) | ||||
| 	set(ZLIB_INCLUDE_DIRS ${ZLIB_FOUND_DIR} CACHE PATH "Path to ZLIB headers of Qt") | ||||
| 	set(ZLIB_LIBRARIES "") | ||||
| 	if(NOT EXISTS "${ZLIB_INCLUDE_DIRS}/zlib.h") | ||||
| 		message("Please specify a valid zlib include dir") | ||||
| 	endif(NOT EXISTS "${ZLIB_INCLUDE_DIRS}/zlib.h") | ||||
| endif(UNIX) | ||||
|  | ||||
| # Link | ||||
| target_link_libraries(MultiMC_logic xz-embedded unpack200 iconfix libUtil LogicalGui ${QUAZIP_LIBRARIES} nbt++ | ||||
| 	Qt5::Core Qt5::Xml Qt5::Widgets Qt5::Network Qt5::Concurrent | ||||
| 		 ${ZLIB_LIBRARIES} ${MultiMC_LINK_ADDITIONAL_LIBS}) | ||||
|  | ||||
| target_link_libraries(MultiMC_logic xz-embedded unpack200 iconfix MultiMC_util LogicalGui ${QUAZIP_LIBRARIES} nbt++ ${ZLIB_LIBRARIES}) | ||||
| qt5_use_modules(MultiMC_logic Core Xml Widgets Network Concurrent) | ||||
| add_dependencies(MultiMC_logic QuaZIP) | ||||
|  | ||||
| include_directories(${CMAKE_CURRENT_BINARY_DIR}) | ||||
| # Mark and export headers | ||||
| target_include_directories(MultiMC_logic PUBLIC "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}" PRIVATE "${ZLIB_INCLUDE_DIRS}") | ||||
|   | ||||
| @@ -1,21 +1,18 @@ | ||||
| # run the unit tests with `make test` | ||||
| find_package(Qt5 COMPONENTS Test Core Network) | ||||
|  | ||||
| include_directories(../logic ${CMAKE_CURRENT_BINARY_DIR}/../logic) | ||||
| include_directories(../depends/util/include/) | ||||
|  | ||||
| unset(MultiMC_TESTS) | ||||
| macro(add_unit_test name) | ||||
| 	unset(srcs) | ||||
| 	foreach(arg ${testname} ${ARGN}) | ||||
| 		list(APPEND srcs ${CMAKE_CURRENT_SOURCE_DIR}/${arg}) | ||||
| 	if(WIN32) | ||||
| 		list(APPEND srcs ${CMAKE_CURRENT_SOURCE_DIR}/test.rc) | ||||
| 	endif() | ||||
| 		if(WIN32) | ||||
| 			list(APPEND srcs ${CMAKE_CURRENT_SOURCE_DIR}/test.rc) | ||||
| 		endif() | ||||
| 	endforeach() | ||||
| 	add_executable(tst_${name} ${srcs}) | ||||
| 	qt5_use_modules(tst_${name} Test Core Network) | ||||
| 	target_link_libraries(tst_${name} MultiMC_logic) | ||||
| 	qt5_use_modules(tst_${name} Test Core Network) | ||||
| 	list(APPEND MultiMC_TESTS tst_${name}) | ||||
| 	add_test(NAME ${name} COMMAND tst_${name}) | ||||
| endmacro() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user