summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2015-02-09 01:51:14 +0100
committerPetr Mrázek <peterix@gmail.com>2015-04-12 20:57:18 +0200
commitdb877ba121ff87a4e029daf8555d85dfef45993a (patch)
tree7673f83c404b3883f0a4fcf6b492f0c4125c293c /CMakeLists.txt
parent4730f54df7edf4775dfddf45f77c60edd86c32d9 (diff)
downloadMultiMC-db877ba121ff87a4e029daf8555d85dfef45993a.tar
MultiMC-db877ba121ff87a4e029daf8555d85dfef45993a.tar.gz
MultiMC-db877ba121ff87a4e029daf8555d85dfef45993a.tar.lz
MultiMC-db877ba121ff87a4e029daf8555d85dfef45993a.tar.xz
MultiMC-db877ba121ff87a4e029daf8555d85dfef45993a.zip
NOISSUE move everything.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt784
1 files changed, 5 insertions, 779 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f06a7902..53de9aa0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -10,13 +10,12 @@ if(WIN32)
cmake_policy(SET CMP0020 OLD)
endif()
-project(MultiMC)
+project(Megatron)
enable_testing()
######## Set CMake options ########
set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
-set(FILES_TO_TRANSLATE )
######## Set module path ########
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/")
@@ -47,7 +46,6 @@ find_package(Qt5Concurrent REQUIRED)
find_package(Qt5Network REQUIRED)
find_package(Qt5Test REQUIRED)
find_package(Qt5Xml REQUIRED)
-find_package(Qt5LinguistTools REQUIRED)
find_package(Qt5WebKitWidgets REQUIRED)
include_directories(
@@ -78,95 +76,6 @@ if(${BIGENDIAN})
add_definitions(-DMULTIMC_BIG_ENDIAN)
endif(${BIGENDIAN})
-######## Set URLs ########
-set(MultiMC_NEWS_RSS_URL "http://multimc.org/rss.xml" CACHE STRING "URL to fetch MultiMC's news RSS feed from.")
-
-######## Set version numbers ########
-set(MultiMC_VERSION_MAJOR 0)
-set(MultiMC_VERSION_MINOR 4)
-set(MultiMC_VERSION_HOTFIX 5)
-
-# Build number
-set(MultiMC_VERSION_BUILD -1 CACHE STRING "Build number. -1 for no build number.")
-
-# Version type
-set(MultiMC_VERSION_TYPE "Custom" CACHE STRING "MultiMC's version type. This should be one of 'Custom', 'Release', 'ReleaseCandidate', or 'Development', depending on what type of version this is.")
-
-# Build platform.
-set(MultiMC_BUILD_PLATFORM "" CACHE STRING "A short string identifying the platform that this build was built for. Only used by the notification system and to display in the about dialog.")
-
-# Version channel
-set(MultiMC_VERSION_CHANNEL "" CACHE STRING "The current build's channel. Included in the version string.")
-
-# Channel list URL
-set(MultiMC_CHANLIST_URL "" CACHE STRING "URL for the channel list.")
-
-# Updater enabled?
-set(MultiMC_UPDATER false CACHE BOOL "Whether or not the update system is enabled. If this is enabled, you must also set MultiMC_CHANLIST_URL and MultiMC_VERSION_CHANNEL in order for it to work properly.")
-
-# Notification URL
-set(MultiMC_NOTIFICATION_URL "" CACHE STRING "URL for checking for notifications.")
-
-set(MultiMC_RELEASE_VERSION_NAME "${MultiMC_VERSION_MAJOR}.${MultiMC_VERSION_MINOR}")
-if(MultiMC_VERSION_HOTFIX GREATER 0)
- set(MultiMC_RELEASE_VERSION_NAME "${MultiMC_RELEASE_VERSION_NAME}.${MultiMC_VERSION_HOTFIX}")
-endif()
-
-# Build a version string to display in the configure logs.
-if(MultiMC_VERSION_TYPE STREQUAL "Custom")
- message(STATUS "Version Type: Custom")
- set(MultiMC_VERSION_STRING "${MultiMC_RELEASE_VERSION_NAME}")
-elseif(MultiMC_VERSION_TYPE STREQUAL "Release")
- message(STATUS "Version Type: Stable Release")
- set(MultiMC_VERSION_STRING "${MultiMC_RELEASE_VERSION_NAME}")
-elseif(MultiMC_VERSION_TYPE STREQUAL "Development")
- message(STATUS "Version Type: Development")
- set(MultiMC_VERSION_STRING "${MultiMC_RELEASE_VERSION_NAME}-dev${MultiMC_VERSION_BUILD}")
-else()
- message(ERROR "Invalid build type.")
-endif()
-
-message(STATUS "MultiMC 5 Version: ${MultiMC_VERSION_STRING}")
-
-# If the update system is enabled, make sure MultiMC_CHANLIST_URL and MultiMC_VERSION_CHANNEL are set.
-if(MultiMC_UPDATER)
- if(MultiMC_VERSION_CHANNEL STREQUAL "")
- message(FATAL_ERROR "Update system is enabled, but MultiMC_VERSION_CHANNEL is not set.\n"
- "Please ensure the CMake variables MultiMC_VERSION_CHANNEL, MultiMC_CHANLIST_URL, and MultiMC_VERSION_BUILD are set.")
- endif()
- if(MultiMC_CHANLIST_URL STREQUAL "")
- message(FATAL_ERROR "Update system is enabled, but MultiMC_CHANLIST_URL is not set.\n"
- "Please ensure the CMake variables MultiMC_VERSION_CHANNEL, MultiMC_CHANLIST_URL, and MultiMC_VERSION_BUILD are set.")
- endif()
- if(MultiMC_VERSION_BUILD LESS 0)
- message(FATAL_ERROR "Update system is enabled, but MultiMC_VERSION_BUILD is not set.\n"
- "Please ensure the CMake variables MultiMC_VERSION_CHANNEL, MultiMC_CHANLIST_URL, and MultiMC_VERSION_BUILD are set.")
- endif()
- message(STATUS "Updater is enabled. Channel list URL: ${MultiMC_CHANLIST_URL}")
-endif()
-
-#### Updater-related build config options ####
-option(MultiMC_UPDATER_DRY_RUN "Enable updater dry-run mode -- for updater development." OFF)
-option(MultiMC_UPDATER_FORCE_LOCAL "Do not download updated updater -- for updater development." OFF)
-
-if(MultiMC_UPDATER_DRY_RUN)
- set(MultiMC_UPDATER_DRY_RUN_value "true")
-else()
- set(MultiMC_UPDATER_DRY_RUN_value "false")
-endif()
-
-if(MultiMC_UPDATER_FORCE_LOCAL)
- set(MultiMC_UPDATER_FORCE_LOCAL_value "true")
-else()
- set(MultiMC_UPDATER_FORCE_LOCAL_value "false")
-endif()
-
-#### For QuickMods
-option(MultiMC_WEBKIT_INSPECTOR "Enable the QWebInspector for debugging" OFF)
-if(MultiMC_WEBKIT_INSPECTOR)
- add_definitions(-DWEBKIT_INSPECTOR)
-endif()
-
#### Custom target to just print the version.
add_custom_target(version echo "Version: ${MultiMC_VERSION_STRING}")
@@ -175,40 +84,6 @@ include(GitFunctions)
git_run(COMMAND rev-parse HEAD DEFAULT "Unknown" OUTPUT_VAR MultiMC_GIT_COMMIT)
message(STATUS "Git commit: ${MultiMC_GIT_COMMIT}")
-######## Configure header ########
-configure_file("${PROJECT_SOURCE_DIR}/BuildConfig.cpp.in" "${PROJECT_BINARY_DIR}/BuildConfig.cpp")
-
-######## Packaging/install paths setup ########
-
-if(UNIX AND APPLE)
- set(BINARY_DEST_DIR MultiMC.app/Contents/MacOS)
- set(PLUGIN_DEST_DIR MultiMC.app/Contents/MacOS)
- set(QTCONF_DEST_DIR MultiMC.app/Contents/Resources)
- set(APPS "\${CMAKE_INSTALL_PREFIX}/MultiMC.app")
-
- set(MACOSX_BUNDLE_BUNDLE_NAME "MultiMC")
- set(MACOSX_BUNDLE_INFO_STRING "MultiMC Minecraft launcher and management utility.")
- set(MACOSX_BUNDLE_GUI_IDENTIFIER "org.multimc.MultiMC5")
- set(MACOSX_BUNDLE_BUNDLE_VERSION "${MultiMC_VERSION_MAJOR}.${MultiMC_VERSION_MINOR}.${MultiMC_VERSION_HOTFIX}.${MultiMC_VERSION_BUILD}")
- set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${MultiMC_VERSION_MAJOR}.${MultiMC_VERSION_MINOR}.${MultiMC_VERSION_HOTFIX}.${MultiMC_VERSION_BUILD}")
- set(MACOSX_BUNDLE_LONG_VERSION_STRING "${MultiMC_VERSION_MAJOR}.${MultiMC_VERSION_MINOR}.${MultiMC_VERSION_HOTFIX}.${MultiMC_VERSION_BUILD}")
- set(MACOSX_BUNDLE_ICON_FILE MultiMC.icns)
- set(MACOSX_BUNDLE_COPYRIGHT "Copyright 2014 MultiMC Contributors")
-elseif(UNIX)
- set(BINARY_DEST_DIR bin)
- set(PLUGIN_DEST_DIR plugins)
- set(QTCONF_DEST_DIR .)
- set(APPS "\${CMAKE_INSTALL_PREFIX}/bin/MultiMC")
-elseif(WIN32)
- set(BINARY_DEST_DIR .)
- set(PLUGIN_DEST_DIR .)
- set(QTCONF_DEST_DIR .)
- set(APPS "\${CMAKE_INSTALL_PREFIX}/MultiMC.exe")
-endif()
-
-# directories to look for dependencies
-set(DIRS ${QT_LIBS_DIR} ${QT_LIBEXECS_DIR})
-
################################ Included Libs ################################
include(ExternalProject)
@@ -259,660 +134,11 @@ include_directories(${LOGICALGUI_INCLUDE_DIR})
add_subdirectory(depends/iconfix)
include_directories(${ICONFIX_INCLUDE_DIR})
-################################ FILES ################################
-
-######## Sources and headers ########
-SET(MULTIMC_SOURCES
- # Application base
- MultiMC.h
- MultiMC.cpp
- MMCError.h
- BuildConfig.h
- ${PROJECT_BINARY_DIR}/BuildConfig.cpp
-
- # GUI - general utilities
- gui/GuiUtil.h
- gui/GuiUtil.cpp
- gui/ColumnResizer.h
- gui/ColumnResizer.cpp
- gui/InstanceProxyModel.h
- gui/InstanceProxyModel.cpp
-
- # GUI - windows
- gui/MainWindow.h
- gui/MainWindow.cpp
- gui/ConsoleWindow.h
- gui/ConsoleWindow.cpp
-
- gui/InstancePageProvider.h
- gui/InstancePageProvider.cpp
-
- # GUI - page dialog pages
- gui/pages/BasePage.h
- gui/pages/VersionPage.cpp
- gui/pages/VersionPage.h
- gui/pages/TexturePackPage.h
- gui/pages/ResourcePackPage.h
- gui/pages/ModFolderPage.cpp
- gui/pages/ModFolderPage.h
- gui/pages/NotesPage.cpp
- gui/pages/NotesPage.h
- gui/pages/LegacyUpgradePage.cpp
- gui/pages/LegacyUpgradePage.h
- gui/pages/LegacyJarModPage.cpp
- gui/pages/LegacyJarModPage.h
- gui/pages/LogPage.cpp
- gui/pages/LogPage.h
- gui/pages/InstanceSettingsPage.cpp
- gui/pages/InstanceSettingsPage.h
- gui/pages/ScreenshotsPage.cpp
- gui/pages/ScreenshotsPage.h
- gui/pages/OtherLogsPage.cpp
- gui/pages/OtherLogsPage.h
-
- # GUI - global settings pages
- gui/pages/global/AccountListPage.cpp
- gui/pages/global/AccountListPage.h
- gui/pages/global/ExternalToolsPage.cpp
- gui/pages/global/ExternalToolsPage.h
- gui/pages/global/JavaPage.cpp
- gui/pages/global/JavaPage.h
- gui/pages/global/MinecraftPage.cpp
- gui/pages/global/MinecraftPage.h
- gui/pages/global/MultiMCPage.cpp
- gui/pages/global/MultiMCPage.h
- gui/pages/global/ProxyPage.cpp
- gui/pages/global/ProxyPage.h
-
- # GUI - dialogs
- gui/dialogs/AboutDialog.cpp
- gui/dialogs/AboutDialog.h
- gui/dialogs/AccountSelectDialog.cpp
- gui/dialogs/AccountSelectDialog.h
- gui/dialogs/CopyInstanceDialog.cpp
- gui/dialogs/CopyInstanceDialog.h
- gui/dialogs/CustomMessageBox.cpp
- gui/dialogs/CustomMessageBox.h
- gui/dialogs/EditAccountDialog.cpp
- gui/dialogs/EditAccountDialog.h
- gui/dialogs/IconPickerDialog.cpp
- gui/dialogs/IconPickerDialog.h
- gui/dialogs/LoginDialog.cpp
- gui/dialogs/LoginDialog.h
- gui/dialogs/ModEditDialogCommon.cpp
- gui/dialogs/ModEditDialogCommon.h
- gui/dialogs/NewInstanceDialog.cpp
- gui/dialogs/NewInstanceDialog.h
- gui/dialogs/NotificationDialog.cpp
- gui/dialogs/NotificationDialog.h
- gui/pagedialog/PageDialog.cpp
- gui/pagedialog/PageDialog.h
- gui/dialogs/ProgressDialog.cpp
- gui/dialogs/ProgressDialog.h
- gui/dialogs/UpdateDialog.cpp
- gui/dialogs/UpdateDialog.h
- gui/dialogs/VersionSelectDialog.cpp
- gui/dialogs/VersionSelectDialog.h
-
-
- # GUI - widgets
- gui/widgets/Common.cpp
- gui/widgets/Common.h
- gui/widgets/IconLabel.cpp
- gui/widgets/IconLabel.h
- gui/widgets/LabeledToolButton.cpp
- gui/widgets/LabeledToolButton.h
- gui/widgets/LineSeparator.cpp
- gui/widgets/LineSeparator.h
- gui/widgets/MCModInfoFrame.cpp
- gui/widgets/MCModInfoFrame.h
- gui/widgets/ModListView.cpp
- gui/widgets/ModListView.h
- gui/widgets/PageContainer.cpp
- gui/widgets/PageContainer.h
- gui/widgets/PageContainer_p.h
- gui/widgets/ServerStatus.cpp
- gui/widgets/ServerStatus.h
- gui/widgets/VersionListView.cpp
- gui/widgets/VersionListView.h
-
-
- # GUI - instance group view
- gui/groupview/GroupedProxyModel.cpp
- gui/groupview/GroupedProxyModel.h
- gui/groupview/GroupView.cpp
- gui/groupview/GroupView.h
- gui/groupview/InstanceDelegate.cpp
- gui/groupview/InstanceDelegate.h
- gui/groupview/VisualGroup.cpp
- gui/groupview/VisualGroup.h
-
- # LOGIC - Base classes and infrastructure
- logic/BaseVersion.h
- logic/BaseProcess.h
- logic/BaseProcess.cpp
- logic/BaseInstance.h
- logic/BaseInstance.cpp
- logic/minecraft/Mod.h
- logic/minecraft/Mod.cpp
- logic/minecraft/ModList.h
- logic/minecraft/ModList.cpp
-
- # sets and maps for deciding based on versions
- logic/minecraft/VersionFilterData.h
- logic/minecraft/VersionFilterData.cpp
-
- # Annoying nag screen logic
- gui/NagUtils.h
- gui/NagUtils.cpp
-
- # Player skin utilities
- logic/minecraft/SkinUtils.h
- logic/minecraft/SkinUtils.cpp
-
- # misc model filter
-
- # JSON parsing helpers
- logic/MMCJson.h
- logic/MMCJson.cpp
-
- # RW lock protected map
- logic/RWStorage.h
-
- # A variable that has an implicit default value and keeps track of changes
- logic/DefaultVariable.h
-
- # network stuffs
- logic/Env.h
- logic/Env.cpp
- logic/net/NetAction.h
- logic/net/MD5EtagDownload.h
- logic/net/MD5EtagDownload.cpp
- logic/net/ByteArrayDownload.h
- logic/net/ByteArrayDownload.cpp
- logic/net/CacheDownload.h
- logic/net/CacheDownload.cpp
- logic/net/NetJob.h
- logic/net/NetJob.cpp
- logic/net/HttpMetaCache.h
- logic/net/HttpMetaCache.cpp
- logic/net/PasteUpload.h
- logic/net/PasteUpload.cpp
- logic/net/URLConstants.h
- logic/net/URLConstants.cpp
-
- # Yggdrasil login stuff
- logic/auth/AuthSession.h
- logic/auth/AuthSession.cpp
- logic/auth/MojangAccountList.h
- logic/auth/MojangAccountList.cpp
- logic/auth/MojangAccount.h
- logic/auth/MojangAccount.cpp
- logic/auth/YggdrasilTask.h
- logic/auth/YggdrasilTask.cpp
- logic/auth/flows/AuthenticateTask.h
- logic/auth/flows/AuthenticateTask.cpp
- logic/auth/flows/RefreshTask.cpp
- logic/auth/flows/RefreshTask.cpp
- logic/auth/flows/ValidateTask.h
- logic/auth/flows/ValidateTask.cpp
-
- # Update system
- logic/updater/GoUpdate.h
- logic/updater/GoUpdate.cpp
- logic/updater/UpdateChecker.h
- logic/updater/UpdateChecker.cpp
- logic/updater/DownloadTask.h
- logic/updater/DownloadTask.cpp
-
- # Notifications - short warning messages
- logic/notifications/NotificationChecker.h
- logic/notifications/NotificationChecker.cpp
-
- # News System
- logic/news/NewsChecker.h
- logic/news/NewsChecker.cpp
- logic/news/NewsEntry.h
- logic/news/NewsEntry.cpp
-
- # Status system
- logic/status/StatusChecker.h
- logic/status/StatusChecker.cpp
-
- # legacy instances
- logic/minecraft/LegacyInstance.h
- logic/minecraft/LegacyInstance.cpp
- logic/minecraft/LegacyUpdate.h
- logic/minecraft/LegacyUpdate.cpp
-
- # OneSix instances
- logic/minecraft/OneSixUpdate.h
- logic/minecraft/OneSixUpdate.cpp
- logic/minecraft/OneSixInstance.h
- logic/minecraft/OneSixInstance.cpp
-
- # a smart pointer wrapper intended for safer use with Qt signal/slot mechanisms
- logic/QObjectPtr.h
-
- # Common utils for instances
- logic/minecraft/JarUtils.h
- logic/minecraft/JarUtils.cpp
-
- # Minecraft support
- logic/minecraft/GradleSpecifier.h
- logic/minecraft/MinecraftProfile.cpp
- logic/minecraft/MinecraftProfile.h
- logic/minecraft/JarMod.cpp
- logic/minecraft/JarMod.h
- logic/minecraft/MinecraftInstance.cpp
- logic/minecraft/MinecraftInstance.h
- logic/minecraft/MinecraftProcess.cpp
- logic/minecraft/MinecraftProcess.h
- logic/minecraft/MinecraftVersion.cpp
- logic/minecraft/MinecraftVersion.h
- logic/minecraft/MinecraftVersionList.cpp
- logic/minecraft/MinecraftVersionList.h
- logic/minecraft/NullProfileStrategy.h
- logic/minecraft/OneSixLibrary.cpp
- logic/minecraft/OneSixLibrary.h
- logic/minecraft/OneSixProfileStrategy.cpp
- logic/minecraft/OneSixProfileStrategy.h
- logic/minecraft/OneSixRule.cpp
- logic/minecraft/OneSixRule.h
- logic/minecraft/OpSys.cpp
- logic/minecraft/OpSys.h
- logic/minecraft/ParseUtils.cpp
- logic/minecraft/ParseUtils.h
- logic/minecraft/ProfileUtils.cpp
- logic/minecraft/ProfileUtils.h
- logic/minecraft/ProfileStrategy.h
- logic/minecraft/RawLibrary.cpp
- logic/minecraft/RawLibrary.h
- logic/minecraft/VersionBuilder.cpp
- logic/minecraft/VersionBuilder.h
- logic/minecraft/VersionBuildError.h
- logic/minecraft/VersionFile.cpp
- logic/minecraft/VersionFile.h
- logic/minecraft/ProfilePatch.h
- logic/minecraft/VersionSource.h
-
- # A Recursive file system watcher
- logic/RecursiveFileSystemWatcher.h
- logic/RecursiveFileSystemWatcher.cpp
-
- # Various base classes
- logic/BaseInstaller.h
- logic/BaseInstaller.cpp
- logic/BaseVersionList.h
- logic/BaseVersionList.cpp
-
- logic/InstanceList.h
- logic/InstanceList.cpp
- logic/minecraft/LwjglVersionList.h
- logic/minecraft/LwjglVersionList.cpp
-
- # FTB
- logic/ftb/OneSixFTBInstance.h
- logic/ftb/OneSixFTBInstance.cpp
- logic/ftb/LegacyFTBInstance.h
- logic/ftb/LegacyFTBInstance.cpp
- logic/ftb/FTBProfileStrategy.h
- logic/ftb/FTBProfileStrategy.cpp
- logic/ftb/FTBPlugin.h
- logic/ftb/FTBPlugin.cpp
-
- # the screenshots feature
- logic/screenshots/Screenshot.h
- logic/screenshots/ImgurUpload.h
- logic/screenshots/ImgurUpload.cpp
- logic/screenshots/ImgurAlbumCreation.h
- logic/screenshots/ImgurAlbumCreation.cpp
-
- # Icons
- logic/icons/MMCIcon.h
- logic/icons/MMCIcon.cpp
- logic/icons/IconList.h
- logic/icons/IconList.cpp
-
- # Tasks
- logic/tasks/ProgressProvider.h
- logic/tasks/Task.h
- logic/tasks/Task.cpp
- logic/tasks/ThreadTask.h
- logic/tasks/ThreadTask.cpp
- logic/tasks/SequentialTask.h
- logic/tasks/SequentialTask.cpp
-
- # Settings
- logic/settings/INIFile.cpp
- logic/settings/INIFile.h
- logic/settings/INISettingsObject.cpp
- logic/settings/INISettingsObject.h
- logic/settings/OverrideSetting.cpp
- logic/settings/OverrideSetting.h
- logic/settings/Setting.cpp
- logic/settings/Setting.h
- logic/settings/SettingsObject.cpp
- logic/settings/SettingsObject.h
-
- # Java related code
- logic/java/JavaChecker.h
- logic/java/JavaChecker.cpp
- logic/java/JavaUtils.h
- logic/java/JavaUtils.cpp
- logic/java/JavaVersionList.h
- logic/java/JavaVersionList.cpp
- logic/java/JavaCheckerJob.h
- logic/java/JavaCheckerJob.cpp
-
- # Assets
- logic/minecraft/AssetsUtils.h
- logic/minecraft/AssetsUtils.cpp
-
- # Tools
- logic/tools/BaseExternalTool.h
- logic/tools/BaseExternalTool.cpp
- logic/tools/MCEditTool.h
- logic/tools/MCEditTool.cpp
- logic/tools/BaseProfiler.h
- logic/tools/BaseProfiler.cpp
- logic/tools/JProfiler.h
- logic/tools/JProfiler.cpp
- logic/tools/JVisualVM.h
- logic/tools/JVisualVM.cpp
-
- # Forge and all things forge related
- logic/forge/ForgeVersion.h
- logic/forge/ForgeVersion.cpp
- logic/forge/ForgeVersionList.h
- logic/forge/ForgeVersionList.cpp
- logic/forge/ForgeMirror.h
- logic/forge/ForgeMirrors.h
- logic/forge/ForgeMirrors.cpp
- logic/forge/ForgeXzDownload.h
- logic/forge/ForgeXzDownload.cpp
- logic/forge/LegacyForge.h
- logic/forge/LegacyForge.cpp
- logic/forge/ForgeInstaller.h
- logic/forge/ForgeInstaller.cpp
-
- # Liteloader and related things
- logic/liteloader/LiteLoaderInstaller.h
- logic/liteloader/LiteLoaderInstaller.cpp
- logic/liteloader/LiteLoaderVersionList.h
- logic/liteloader/LiteLoaderVersionList.cpp
-
- # Translations
- logic/trans/TranslationDownloader.h
- logic/trans/TranslationDownloader.cpp
-)
-
-
-######## UIs ########
-SET(MULTIMC_UIS
- # Option pages
- gui/pages/VersionPage.ui
- gui/pages/ModFolderPage.ui
- gui/pages/LegacyUpgradePage.ui
- gui/pages/LegacyJarModPage.ui
- gui/pages/LogPage.ui
- gui/pages/InstanceSettingsPage.ui
- gui/pages/NotesPage.ui
- gui/pages/ScreenshotsPage.ui
- gui/pages/OtherLogsPage.ui
-
- # Global settings pages
- gui/pages/global/AccountListPage.ui
- gui/pages/global/ExternalToolsPage.ui
- gui/pages/global/JavaPage.ui
- gui/pages/global/MinecraftPage.ui
- gui/pages/global/MultiMCPage.ui
- gui/pages/global/ProxyPage.ui
-
- # Dialogs
- gui/dialogs/CopyInstanceDialog.ui
- gui/dialogs/NewInstanceDialog.ui
- gui/dialogs/AboutDialog.ui
- gui/dialogs/VersionSelectDialog.ui
- gui/dialogs/ProgressDialog.ui
- gui/dialogs/IconPickerDialog.ui
- gui/dialogs/AccountSelectDialog.ui
- gui/dialogs/EditAccountDialog.ui
- gui/dialogs/LoginDialog.ui
- gui/dialogs/UpdateDialog.ui
- gui/dialogs/NotificationDialog.ui
-
- # Widgets/other
- gui/widgets/MCModInfoFrame.ui
-)
-
-set(FILES_TO_TRANSLATE)
-foreach(file ${MULTIMC_SOURCES})
- get_filename_component(absfile "${file}" ABSOLUTE)
- list(APPEND FILES_TO_TRANSLATE "${absfile}")
-endforeach()
-
-foreach(file ${MULTIMC_UIS})
- get_filename_component(absfile "${file}" ABSOLUTE)
- list(APPEND FILES_TO_TRANSLATE "${absfile}")
-endforeach()
-
-set(MULTIMC_QRCS
- resources/backgrounds/backgrounds.qrc
- resources/multimc/multimc.qrc
- resources/pe_dark/pe_dark.qrc
- resources/pe_light/pe_light.qrc
- resources/pe_colored/pe_colored.qrc
- resources/pe_blue/pe_blue.qrc
- resources/OSX/OSX.qrc
- resources/iOS/iOS.qrc
- resources/instances/instances.qrc
- resources/versions/versions.qrc
-)
-
-
-######## Windows resource files ########
-if(WIN32)
- set(MULTIMC_RCS resources/multimc.rc)
-endif()
-
-####### X11 Stuff #######
-if(UNIX AND NOT APPLE)
- find_package(Qt5X11Extras REQUIRED)
- set(MultiMC_LINK_ADDITIONAL_LIBS ${MultiMC_LINK_ADDITIONAL_LIBS} Qt5::X11Extras)
- set(MultiMC_LINK_ADDITIONAL_LIBS ${MultiMC_LINK_ADDITIONAL_LIBS} xcb)
- list(APPEND MULTIMC_SOURCES gui/Platform_X11.cpp)
-else()
- list(APPEND MULTIMC_SOURCES gui/Platform_Other.cpp)
-endif()
-
-
-################################ COMPILE ################################
-
-# Link additional libraries
-if(WIN32)
- set(MultiMC_LINK_ADDITIONAL_LIBS ${MultiMC_LINK_ADDITIONAL_LIBS} Qt5::WinMain)
-endif(WIN32)
-
-# Tell CMake that MultiMCLauncher.jar is generated.
-#SET_SOURCE_FILES_PROPERTIES(${PROJECT_BINARY_DIR}/depends/launcher/MultiMCLauncher.jar GENERATED)
-#SET_SOURCE_FILES_PROPERTIES(${PROJECT_BINARY_DIR}/depends/javacheck/JavaCheck.jar GENERATED)
-
-# Qt 5 stuff
-qt5_wrap_ui(MULTIMC_UI ${MULTIMC_UIS})
-qt5_add_resources(MULTIMC_RESOURCES ${MULTIMC_QRCS})
-
-# Add common library
-add_library(MultiMC_common STATIC ${MULTIMC_SOURCES} ${MULTIMC_UI} ${MULTIMC_RESOURCES})
-
-# Add executable
-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 iconfix libUtil LogicalGui
- ${QUAZIP_LIBRARIES} Qt5::Core Qt5::Xml Qt5::Widgets Qt5::Network Qt5::Concurrent Qt5::WebKitWidgets
- ${MultiMC_LINK_ADDITIONAL_LIBS}
-)
-
-target_link_libraries(MultiMC_common Qt5::Core Qt5::Widgets Qt5::Network Qt5::Concurrent Qt5::WebKitWidgets
- ${MultiMC_LINK_ADDITIONAL_LIBS}
-)
-
-add_dependencies(MultiMC_common QuaZIP)
-
-################################ INSTALLATION AND PACKAGING ################################
-
-######## Install ########
-
-#### Executable ####
-if(APPLE AND UNIX) ## OSX
- install(TARGETS MultiMC
- BUNDLE DESTINATION . COMPONENT Runtime
- RUNTIME DESTINATION MultiMC.app/Contents/MacOS COMPONENT Runtime
- )
-
-elseif(UNIX) ## LINUX and similar
- install(TARGETS MultiMC
- BUNDLE DESTINATION . COMPONENT Runtime
- RUNTIME DESTINATION bin COMPONENT Runtime
- )
- install(PROGRAMS package/linux/MultiMC DESTINATION .)
-
-elseif(WIN32) ## WINDOWS
- install(TARGETS MultiMC
- BUNDLE DESTINATION . COMPONENT Runtime
- LIBRARY DESTINATION . COMPONENT Runtime
- RUNTIME DESTINATION . COMPONENT Runtime
- )
-endif()
-
-#### Dist package logic ####
-
-if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
- # Image formats
- install(
- DIRECTORY "${QT_PLUGINS_DIR}/imageformats"
- DESTINATION ${PLUGIN_DEST_DIR}
- COMPONENT Runtime
- REGEX "tga|tiff|mng" EXCLUDE
- )
- # Icon engines
- install(
- DIRECTORY "${QT_PLUGINS_DIR}/iconengines"
- DESTINATION ${PLUGIN_DEST_DIR}
- COMPONENT Runtime
- REGEX "fontawesome" EXCLUDE
- )
- # Platform plugins
- install(
- DIRECTORY "${QT_PLUGINS_DIR}/platforms"
- DESTINATION ${PLUGIN_DEST_DIR}
- COMPONENT Runtime
- REGEX "minimal|linuxfb|offscreen" EXCLUDE
- )
-else()
- # Image formats
- install(
- DIRECTORY "${QT_PLUGINS_DIR}/imageformats"
- DESTINATION ${PLUGIN_DEST_DIR}
- COMPONENT Runtime
- REGEX "tga|tiff|mng" EXCLUDE
- REGEX "d\\." EXCLUDE
- REGEX "_debug\\." EXCLUDE
- )
- # Icon engines
- install(
- DIRECTORY "${QT_PLUGINS_DIR}/iconengines"
- DESTINATION ${PLUGIN_DEST_DIR}
- COMPONENT Runtime
- REGEX "fontawesome" EXCLUDE
- REGEX "d\\." EXCLUDE
- REGEX "_debug\\." EXCLUDE
- )
- # Platform plugins
- install(
- DIRECTORY "${QT_PLUGINS_DIR}/platforms"
- DESTINATION ${PLUGIN_DEST_DIR}
- COMPONENT Runtime
- REGEX "minimal|linuxfb|offscreen" EXCLUDE
- REGEX "d\\." EXCLUDE
- REGEX "_debug\\." EXCLUDE
- )
- if(APPLE)
- # Accessible plugin to make buttons look decent on osx
- install(
- DIRECTORY "${QT_PLUGINS_DIR}/accessible"
- DESTINATION ${PLUGIN_DEST_DIR}
- COMPONENT Runtime
- REGEX "quick" EXCLUDE
- REGEX "d\\." EXCLUDE
- REGEX "_debug\\." EXCLUDE
- )
- endif()
-endif()
-
-# qtconf
-install(
- CODE "
-file(WRITE \"\${CMAKE_INSTALL_PREFIX}/${QTCONF_DEST_DIR}/qt.conf\" \"\")
-"
- COMPONENT Runtime
-)
-
-# ICNS file for OS X
-if(APPLE)
- install(FILES resources/MultiMC.icns DESTINATION MultiMC.app/Contents/Resources)
-endif()
-
-configure_file(
- "${CMAKE_CURRENT_SOURCE_DIR}/install_prereqs.cmake.in"
- "${CMAKE_CURRENT_BINARY_DIR}/install_prereqs.cmake"
- @ONLY
-)
-install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/install_prereqs.cmake" COMPONENT Runtime)
-
-
-
-######## Package ########
-
-# Package with CPack
-if(UNIX)
- if(APPLE)
- set(CPACK_GENERATOR "ZIP")
- else()
- set(CPACK_GENERATOR "TGZ")
- endif()
-elseif(WIN32)
- set(CPACK_GENERATOR "ZIP")
-endif()
-set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY 0)
-
-set(CPACK_PACKAGE_NAME "MultiMC 5")
-set(CPACK_PACKAGE_VENDOR "")
-set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "MultiMC - Minecraft launcher and management tool.")
-set(CPACK_PACKAGE_VERSION "${MultiMC_VERSION_MAJOR}.${MultiMC_VERSION_MINOR}.${MultiMC_VERSION_REV}.${MultiMC_VERSION_BUILD}")
-set(CPACK_PACKAGE_VERSION_MAJOR ${MultiMC_VERSION_MAJOR})
-set(CPACK_PACKAGE_VERSION_MINOR ${MultiMC_VERSION_MINOR})
-set(CPACK_PACKAGE_VERSION_PATCH ${MultiMC_VERSION_REV})
-
-if(CPACK_GENERATOR STREQUAL "NSIS")
- set(CPACK_PACKAGE_FILE_NAME "Setup-MultiMC")
-else()
- set(CPACK_PACKAGE_FILE_NAME "MultiMC")
-endif()
-
-if(WIN32)
- set(CPACK_PACKAGE_INSTALL_DIRECTORY "MultiMC 5")
-endif()
-
-include(CPack)
-
include(Coverity)
-# Translations
-add_subdirectory(translations)
-
# Tests
add_subdirectory(tests)
+
+add_subdirectory(logic)
+
+add_subdirectory(application)