2013-01-11 01:25:40 +00:00
|
|
|
cmake_minimum_required(VERSION 2.8.9)
|
2013-09-26 12:49:58 +01:00
|
|
|
|
2013-10-06 01:09:21 +01:00
|
|
|
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()
|
2013-09-26 12:49:58 +01:00
|
|
|
|
2013-02-05 18:09:20 +00:00
|
|
|
project(MultiMC)
|
2013-01-11 01:25:40 +00:00
|
|
|
|
2013-02-21 16:32:13 +00:00
|
|
|
######## Set CMake options ########
|
|
|
|
SET(CMAKE_AUTOMOC ON)
|
|
|
|
SET(CMAKE_INCLUDE_CURRENT_DIR ON)
|
2013-09-08 19:18:55 +01:00
|
|
|
SET(FILES_TO_TRANSLATE )
|
2013-01-11 01:25:40 +00:00
|
|
|
|
2013-02-21 16:32:13 +00:00
|
|
|
# Output all executables and shared libs in the main build folder, not in subfolders.
|
2013-02-21 01:10:09 +00:00
|
|
|
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
|
2013-01-11 01:25:40 +00:00
|
|
|
|
2013-02-21 20:52:23 +00:00
|
|
|
IF(UNIX)
|
|
|
|
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
|
|
|
|
ENDIF()
|
|
|
|
|
2013-02-21 18:35:33 +00:00
|
|
|
######## Set compiler flags ########
|
|
|
|
IF(APPLE)
|
|
|
|
message(STATUS "Using APPLE CMAKE_CXX_FLAGS")
|
2013-08-26 03:45:40 +01:00
|
|
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
|
2013-02-21 18:35:33 +00:00
|
|
|
ELSEIF(UNIX)
|
|
|
|
# assume GCC, add C++0x/C++11 stuff
|
|
|
|
MESSAGE(STATUS "Using UNIX CMAKE_CXX_FLAGS")
|
|
|
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
|
|
|
|
ELSEIF(MINGW)
|
|
|
|
MESSAGE(STATUS "Using MINGW CMAKE_CXX_FLAGS")
|
|
|
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x")
|
|
|
|
ENDIF()
|
2013-02-21 16:32:13 +00:00
|
|
|
|
|
|
|
################################ INCLUDE LIBRARIES ################################
|
2013-01-11 01:25:40 +00:00
|
|
|
|
2013-02-21 16:32:13 +00:00
|
|
|
######## 3rd Party Libs ########
|
|
|
|
|
|
|
|
# Find the required Qt parts
|
2013-02-20 14:32:26 +00:00
|
|
|
find_package(Qt5Widgets REQUIRED)
|
|
|
|
find_package(Qt5Network REQUIRED)
|
2013-09-08 19:18:55 +01:00
|
|
|
find_package(Qt5LinguistTools REQUIRED)
|
2013-01-11 01:25:40 +00:00
|
|
|
|
|
|
|
include_directories(${Qt5Widgets_INCLUDE_DIRS})
|
|
|
|
|
2013-02-21 16:32:13 +00:00
|
|
|
######## Included Libs ########
|
|
|
|
|
2013-01-11 01:25:40 +00:00
|
|
|
# Add quazip
|
2013-08-17 12:40:51 +01:00
|
|
|
add_subdirectory(depends/quazip)
|
2013-08-26 01:53:29 +01:00
|
|
|
include_directories(depends/quazip)
|
2013-01-11 01:25:40 +00:00
|
|
|
|
2013-02-21 01:10:09 +00:00
|
|
|
# Add the java launcher
|
2013-08-17 12:40:51 +01:00
|
|
|
add_subdirectory(depends/launcher)
|
2013-02-21 01:10:09 +00:00
|
|
|
|
2013-09-28 17:43:30 +01:00
|
|
|
# Add xz decompression
|
|
|
|
add_subdirectory(depends/xz-embedded)
|
2013-09-30 01:34:46 +01:00
|
|
|
include_directories(${XZ_INCLUDE_DIR})
|
2013-09-28 17:43:30 +01:00
|
|
|
|
|
|
|
# Add pack200 decompression
|
|
|
|
add_subdirectory(depends/pack200)
|
2013-09-30 01:34:46 +01:00
|
|
|
include_directories(${PACK200_INCLUDE_DIR})
|
2013-09-28 17:43:30 +01:00
|
|
|
|
2013-02-21 16:32:13 +00:00
|
|
|
######## MultiMC Libs ########
|
|
|
|
|
2013-02-21 01:10:09 +00:00
|
|
|
# Add the util library.
|
2013-08-17 12:40:51 +01:00
|
|
|
add_subdirectory(depends/util)
|
2013-02-26 22:47:39 +00:00
|
|
|
include_directories(${LIBUTIL_INCLUDE_DIR})
|
2013-02-21 01:10:09 +00:00
|
|
|
|
|
|
|
# Add the settings library.
|
2013-08-17 12:40:51 +01:00
|
|
|
add_subdirectory(depends/settings)
|
2013-02-26 22:47:39 +00:00
|
|
|
include_directories(${LIBSETTINGS_INCLUDE_DIR})
|
2013-02-21 01:10:09 +00:00
|
|
|
|
2013-03-11 21:19:17 +00:00
|
|
|
# Add the group view library.
|
2013-08-17 12:40:51 +01:00
|
|
|
add_subdirectory(depends/groupview)
|
2013-03-11 21:19:17 +00:00
|
|
|
include_directories(${LIBGROUPVIEW_INCLUDE_DIR})
|
|
|
|
|
2013-02-21 16:32:13 +00:00
|
|
|
################################ SET UP BUILD OPTIONS ################################
|
|
|
|
|
|
|
|
######## Check endianness ########
|
|
|
|
INCLUDE(TestBigEndian)
|
|
|
|
TEST_BIG_ENDIAN(BIGENDIAN)
|
|
|
|
IF(${BIGENDIAN})
|
2013-03-20 00:15:19 +00:00
|
|
|
ADD_DEFINITIONS(-DMULTIMC_BIG_ENDIAN)
|
2013-02-21 16:32:13 +00:00
|
|
|
ENDIF(${BIGENDIAN})
|
|
|
|
|
|
|
|
|
|
|
|
######## Set module path ########
|
|
|
|
SET(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}")
|
|
|
|
|
|
|
|
|
|
|
|
######## Set version numbers ########
|
|
|
|
SET(MultiMC_VERSION_MAJOR 5)
|
|
|
|
SET(MultiMC_VERSION_MINOR 0)
|
|
|
|
SET(MultiMC_VERSION_REV 0)
|
2013-01-11 01:25:40 +00:00
|
|
|
|
2013-10-01 23:01:41 +01:00
|
|
|
# Build number
|
2013-01-11 01:25:40 +00:00
|
|
|
SET(MultiMC_VERSION_BUILD 0 CACHE STRING "Build number.")
|
2013-02-21 16:32:13 +00:00
|
|
|
MESSAGE(STATUS "MultiMC build #${MultiMC_VERSION_BUILD}")
|
|
|
|
|
2013-10-01 23:01:41 +01:00
|
|
|
# Custom target to just print the version.
|
|
|
|
ADD_CUSTOM_TARGET(version echo "Version: ${MultiMC_VERSION_MAJOR}.${MultiMC_VERSION_MINOR}.${MultiMC_VERSION_REV}.${MultiMC_VERSION_BUILD}")
|
|
|
|
|
2013-02-21 17:02:48 +00:00
|
|
|
# Check the current Git commit
|
|
|
|
execute_process(COMMAND git rev-parse HEAD
|
|
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
|
|
RESULT_VARIABLE GIT_COMMIT_CHECK_RESULTVAR
|
|
|
|
OUTPUT_VARIABLE GIT_COMMIT_CHECK_OUTVAR
|
|
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
|
|
)
|
|
|
|
|
|
|
|
# If Git executed successfully
|
|
|
|
IF(GIT_COMMIT_CHECK_RESULTVAR EQUAL 0)
|
|
|
|
SET(MultiMC_GIT_COMMIT "${GIT_COMMIT_CHECK_OUTVAR}")
|
|
|
|
MESSAGE(STATUS "Git commit: ${MultiMC_GIT_COMMIT}")
|
|
|
|
ELSE()
|
|
|
|
SET(MultiMC_GIT_COMMIT "Unknown")
|
|
|
|
MESSAGE(STATUS "Failed to check Git commit. ${GIT_COMMIT_CHECK_RESULTVAR}")
|
|
|
|
ENDIF()
|
|
|
|
|
2013-02-21 16:32:13 +00:00
|
|
|
|
|
|
|
######## Set Jenkins info ########
|
|
|
|
# Jenkins build tag
|
|
|
|
IF(DEFINED MultiMC_BUILD_TAG)
|
|
|
|
MESSAGE(STATUS "Build tag: ${MultiMC_BUILD_TAG}")
|
|
|
|
ELSE()
|
|
|
|
MESSAGE(STATUS "No build tag specified.")
|
2013-03-20 00:15:19 +00:00
|
|
|
SET(MultiMC_BUILD_TAG custom)
|
2013-02-21 16:32:13 +00:00
|
|
|
ENDIF()
|
|
|
|
|
|
|
|
# Architecture detection
|
|
|
|
IF(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
|
|
|
SET(MultiMC_ARCH "x64" CACHE STRING "Architecture we're building for.")
|
|
|
|
ELSE()
|
|
|
|
SET(MultiMC_ARCH "x86" CACHE STRING "Architecture we're building for.")
|
|
|
|
ENDIF()
|
|
|
|
MESSAGE(STATUS "Architecture is ${MultiMC_ARCH}")
|
|
|
|
|
|
|
|
# Jenkins job name
|
|
|
|
IF(WIN32)
|
|
|
|
SET(MultiMC_JOB_NAME "MultiMC5Windows" CACHE STRING "Jenkins job name.")
|
2013-01-11 01:25:40 +00:00
|
|
|
ELSEIF(UNIX AND APPLE)
|
2013-02-21 16:32:13 +00:00
|
|
|
SET(MultiMC_JOB_NAME "MultiMC5OSX" CACHE STRING "Jenkins job name.")
|
2013-01-11 01:25:40 +00:00
|
|
|
ELSE()
|
2013-02-21 16:32:13 +00:00
|
|
|
SET(MultiMC_JOB_NAME "MultiMC5Linux" CACHE STRING "Jenkins job name.")
|
2013-01-11 01:25:40 +00:00
|
|
|
ENDIF()
|
|
|
|
|
2013-02-21 16:32:13 +00:00
|
|
|
# Jenkins URL
|
2013-01-11 01:25:40 +00:00
|
|
|
SET(MultiMC_JOB_URL "http://ci.forkk.net/job/${MultiMC_JOB_NAME}/arch=${MultiMC_ARCH}${MultiMC_Extra_Label}/"
|
2013-03-20 00:15:19 +00:00
|
|
|
CACHE STRING "URL of the jenkins job to pull updates from.")
|
2013-02-21 16:32:13 +00:00
|
|
|
MESSAGE(STATUS "Job URL: ${MultiMC_JOB_URL}")
|
2013-01-11 01:25:40 +00:00
|
|
|
|
2013-02-21 16:32:13 +00:00
|
|
|
######## Configure header ########
|
2013-01-11 01:25:40 +00:00
|
|
|
configure_file("${PROJECT_SOURCE_DIR}/config.h.in"
|
2013-03-20 00:15:19 +00:00
|
|
|
"${PROJECT_BINARY_DIR}/include/config.h")
|
2013-01-11 01:25:40 +00:00
|
|
|
|
2013-02-21 16:32:13 +00:00
|
|
|
|
2013-04-01 18:04:40 +01:00
|
|
|
######## Other Stuff ########
|
|
|
|
|
|
|
|
ADD_DEFINITIONS(-DQUAZIP_STATIC)
|
2013-08-26 01:53:29 +01:00
|
|
|
ADD_DEFINITIONS(-DLIBSETTINGS_STATIC)
|
|
|
|
ADD_DEFINITIONS(-DLIBUTIL_STATIC)
|
|
|
|
ADD_DEFINITIONS(-DLIBGROUPVIEW_STATIC)
|
2013-04-01 18:04:40 +01:00
|
|
|
|
2013-02-21 16:32:13 +00:00
|
|
|
################################ FILES ################################
|
|
|
|
|
2013-09-22 03:21:36 +01:00
|
|
|
######## Sources and headers ########
|
|
|
|
SET(MULTIMC_SOURCES
|
|
|
|
# Application base
|
2013-09-07 03:00:58 +01:00
|
|
|
MultiMC.h
|
2013-09-22 03:21:36 +01:00
|
|
|
MultiMC.cpp
|
2013-09-07 03:00:58 +01:00
|
|
|
MultiMCVersion.h
|
2013-07-28 23:59:35 +01:00
|
|
|
|
2013-10-06 00:13:40 +01:00
|
|
|
# Logging
|
|
|
|
logger/QsDebugOutput.cpp
|
|
|
|
logger/QsDebugOutput.h
|
|
|
|
logger/QsLog.cpp
|
|
|
|
logger/QsLog.h
|
|
|
|
logger/QsLogDest.cpp
|
|
|
|
logger/QsLogDest.h
|
|
|
|
|
2013-11-04 01:53:05 +00:00
|
|
|
# GUI - windows
|
|
|
|
gui/MainWindow.h
|
|
|
|
gui/MainWindow.cpp
|
|
|
|
gui/ConsoleWindow.h
|
|
|
|
gui/ConsoleWindow.cpp
|
|
|
|
|
|
|
|
# GUI - dialogs
|
|
|
|
gui/dialogs/SettingsDialog.h
|
|
|
|
gui/dialogs/SettingsDialog.cpp
|
|
|
|
gui/dialogs/CopyInstanceDialog.h
|
|
|
|
gui/dialogs/CopyInstanceDialog.cpp
|
|
|
|
gui/dialogs/dialogs/
|
|
|
|
gui/dialogs/NewInstanceDialog.cpp
|
|
|
|
gui/dialogs/LoginDialog.h
|
|
|
|
gui/dialogs/LoginDialog.cpp
|
|
|
|
gui/dialogs/ProgressDialog.h
|
|
|
|
gui/dialogs/ProgressDialog.cpp
|
|
|
|
gui/dialogs/AboutDialog.h
|
|
|
|
gui/dialogs/AboutDialog.cpp
|
|
|
|
gui/dialogs/VersionSelectDialog.h
|
|
|
|
gui/dialogs/VersionSelectDialog.cpp
|
|
|
|
gui/dialogs/LwjglSelectDialog.h
|
|
|
|
gui/dialogs/LwjglSelectDialog.cpp
|
|
|
|
gui/dialogs/InstanceSettings.h
|
|
|
|
gui/dialogs/InstanceSettings.cpp
|
|
|
|
gui/dialogs/IconPickerDialog.h
|
|
|
|
gui/dialogs/IconPickerDialog.cpp
|
|
|
|
gui/dialogs/LegacyModEditDialog.h
|
|
|
|
gui/dialogs/LegacyModEditDialog.cpp
|
|
|
|
gui/dialogs/OneSixModEditDialog.h
|
|
|
|
gui/dialogs/OneSixModEditDialog.cpp
|
|
|
|
gui/dialogs/ModEditDialogCommon.h
|
|
|
|
gui/dialogs/ModEditDialogCommon.cpp
|
|
|
|
gui/dialogs/EditNotesDialog.h
|
|
|
|
gui/dialogs/EditNotesDialog.cpp
|
|
|
|
gui/dialogs/CustomMessageBox.h
|
|
|
|
gui/dialogs/CustomMessageBox.cpp
|
2013-11-18 18:05:35 +00:00
|
|
|
gui/dialogs/AccountListDialog.h
|
|
|
|
gui/dialogs/AccountListDialog.cpp
|
2013-11-04 01:53:05 +00:00
|
|
|
|
|
|
|
# GUI - widgets
|
|
|
|
gui/widgets/InstanceDelegate.h
|
|
|
|
gui/widgets/InstanceDelegate.cpp
|
|
|
|
gui/widgets/ModListView.h
|
|
|
|
gui/widgets/ModListView.cpp
|
|
|
|
gui/widgets/LabeledToolButton.h
|
|
|
|
gui/widgets/LabeledToolButton.cpp
|
|
|
|
gui/widgets/MCModInfoFrame.h
|
|
|
|
gui/widgets/MCModInfoFrame.cpp
|
2013-08-17 12:40:51 +01:00
|
|
|
|
|
|
|
# Base classes and infrastructure
|
2013-09-15 23:54:39 +01:00
|
|
|
logic/BaseVersion.h
|
2013-08-17 12:40:51 +01:00
|
|
|
logic/MinecraftVersion.h
|
|
|
|
logic/InstanceFactory.h
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/InstanceFactory.cpp
|
2013-08-17 12:40:51 +01:00
|
|
|
logic/BaseUpdate.h
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/BaseUpdate.cpp
|
2013-08-17 12:40:51 +01:00
|
|
|
logic/BaseInstance.h
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/BaseInstance.cpp
|
2013-08-17 12:40:51 +01:00
|
|
|
logic/BaseInstance_p.h
|
2013-09-22 03:21:36 +01:00
|
|
|
|
2013-08-17 12:40:51 +01:00
|
|
|
logic/MinecraftProcess.h
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/MinecraftProcess.cpp
|
2013-08-17 12:40:51 +01:00
|
|
|
logic/Mod.h
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/Mod.cpp
|
2013-08-17 12:40:51 +01:00
|
|
|
logic/ModList.h
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/ModList.cpp
|
2013-08-17 12:40:51 +01:00
|
|
|
|
2013-09-07 03:00:58 +01:00
|
|
|
# Basic instance launcher for starting from terminal
|
|
|
|
logic/InstanceLauncher.h
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/InstanceLauncher.cpp
|
2013-09-07 03:00:58 +01:00
|
|
|
|
2013-08-17 12:40:51 +01:00
|
|
|
# network stuffs
|
2013-10-26 18:55:48 +01:00
|
|
|
logic/net/NetAction.h
|
2013-09-08 01:15:20 +01:00
|
|
|
logic/net/FileDownload.h
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/net/FileDownload.cpp
|
2013-09-08 01:15:20 +01:00
|
|
|
logic/net/ByteArrayDownload.h
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/net/ByteArrayDownload.cpp
|
2013-09-08 01:15:20 +01:00
|
|
|
logic/net/CacheDownload.h
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/net/CacheDownload.cpp
|
2013-09-30 01:34:46 +01:00
|
|
|
logic/net/ForgeXzDownload.h
|
|
|
|
logic/net/ForgeXzDownload.cpp
|
2013-10-26 18:55:48 +01:00
|
|
|
logic/net/NetJob.h
|
|
|
|
logic/net/NetJob.cpp
|
2013-09-06 20:58:51 +01:00
|
|
|
logic/net/HttpMetaCache.h
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/net/HttpMetaCache.cpp
|
2013-09-22 23:23:50 +01:00
|
|
|
logic/net/LoginTask.h
|
|
|
|
logic/net/LoginTask.cpp
|
2013-10-26 18:55:48 +01:00
|
|
|
logic/net/S3ListBucket.h
|
|
|
|
logic/net/S3ListBucket.cpp
|
|
|
|
|
2013-11-11 18:59:59 +00:00
|
|
|
# Yggdrasil login stuff
|
|
|
|
logic/auth/MojangAccount.h
|
|
|
|
logic/auth/MojangAccount.cpp
|
2013-11-13 18:38:28 +00:00
|
|
|
logic/auth/YggdrasilTask.h
|
|
|
|
logic/auth/YggdrasilTask.cpp
|
2013-11-13 22:59:50 +00:00
|
|
|
logic/auth/AuthenticateTask.h
|
|
|
|
logic/auth/AuthenticateTask.cpp
|
2013-11-11 18:59:59 +00:00
|
|
|
|
2013-08-17 12:40:51 +01:00
|
|
|
|
|
|
|
# legacy instances
|
|
|
|
logic/LegacyInstance.h
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/LegacyInstance.cpp
|
2013-08-17 12:40:51 +01:00
|
|
|
logic/LegacyInstance_p.h
|
|
|
|
logic/LegacyUpdate.h
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/LegacyUpdate.cpp
|
2013-08-17 12:40:51 +01:00
|
|
|
logic/LegacyForge.h
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/LegacyForge.cpp
|
2013-08-17 12:40:51 +01:00
|
|
|
|
|
|
|
# 1.6 instances
|
|
|
|
logic/OneSixAssets.h
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/OneSixAssets.cpp
|
2013-08-17 12:40:51 +01:00
|
|
|
logic/OneSixInstance.h
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/OneSixInstance.cpp
|
2013-08-17 12:40:51 +01:00
|
|
|
logic/OneSixInstance_p.h
|
|
|
|
logic/OneSixUpdate.h
|
|
|
|
logic/OneSixUpdate.cpp
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/OneSixVersion.h
|
2013-09-11 22:43:17 +01:00
|
|
|
logic/OneSixVersion.cpp
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/OneSixLibrary.h
|
2013-09-11 22:43:17 +01:00
|
|
|
logic/OneSixLibrary.cpp
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/OneSixRule.h
|
2013-09-11 22:43:17 +01:00
|
|
|
logic/OneSixRule.cpp
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/OpSys.h
|
2013-09-11 22:43:17 +01:00
|
|
|
logic/OpSys.cpp
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/ForgeInstaller.h
|
|
|
|
logic/ForgeInstaller.cpp
|
2013-08-17 12:40:51 +01:00
|
|
|
|
|
|
|
# Nostalgia
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/NostalgiaInstance.h
|
2013-08-17 12:40:51 +01:00
|
|
|
logic/NostalgiaInstance.cpp
|
|
|
|
|
|
|
|
# Lists
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/lists/InstanceList.h
|
2013-08-17 12:40:51 +01:00
|
|
|
logic/lists/InstanceList.cpp
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/lists/IconList.h
|
2013-09-15 23:54:39 +01:00
|
|
|
logic/lists/IconList.cpp
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/lists/BaseVersionList.h
|
2013-09-15 23:54:39 +01:00
|
|
|
logic/lists/BaseVersionList.cpp
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/lists/MinecraftVersionList.h
|
2013-08-17 12:40:51 +01:00
|
|
|
logic/lists/MinecraftVersionList.cpp
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/lists/LwjglVersionList.h
|
2013-08-17 12:40:51 +01:00
|
|
|
logic/lists/LwjglVersionList.cpp
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/lists/ForgeVersionList.h
|
2013-09-15 23:54:39 +01:00
|
|
|
logic/lists/ForgeVersionList.cpp
|
2013-10-14 02:59:21 +01:00
|
|
|
logic/lists/JavaVersionList.h
|
|
|
|
logic/lists/JavaVersionList.cpp
|
2013-11-18 18:05:35 +00:00
|
|
|
logic/lists/MojangAccountList.h
|
|
|
|
logic/lists/MojangAccountList.cpp
|
2013-09-15 23:54:39 +01:00
|
|
|
|
|
|
|
# misc model/view
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/EnabledItemFilter.h
|
2013-09-15 23:54:39 +01:00
|
|
|
logic/EnabledItemFilter.cpp
|
2013-08-17 12:40:51 +01:00
|
|
|
|
|
|
|
# Tasks
|
2013-09-22 03:21:36 +01:00
|
|
|
logic/tasks/ProgressProvider.h
|
|
|
|
logic/tasks/Task.h
|
2013-08-17 12:40:51 +01:00
|
|
|
logic/tasks/Task.cpp
|
2013-09-22 23:23:50 +01:00
|
|
|
|
2013-10-05 01:08:13 +01:00
|
|
|
# Utilities
|
|
|
|
logic/JavaUtils.h
|
|
|
|
logic/JavaUtils.cpp
|
2013-11-03 15:20:26 +00:00
|
|
|
logic/NagUtils.h
|
|
|
|
logic/NagUtils.cpp
|
2013-09-22 03:21:36 +01:00
|
|
|
|
2013-02-21 01:10:09 +00:00
|
|
|
)
|
|
|
|
|
2013-02-21 16:32:13 +00:00
|
|
|
|
|
|
|
######## UIs ########
|
|
|
|
SET(MULTIMC_UIS
|
2013-11-04 01:53:05 +00:00
|
|
|
|
|
|
|
# Windows
|
|
|
|
gui/MainWindow.ui
|
|
|
|
gui/ConsoleWindow.ui
|
|
|
|
|
|
|
|
# Dialogs
|
|
|
|
gui/dialogs/SettingsDialog.ui
|
|
|
|
gui/dialogs/CopyInstanceDialog.ui
|
|
|
|
gui/dialogs/NewInstanceDialog.ui
|
|
|
|
gui/dialogs/LoginDialog.ui
|
|
|
|
gui/dialogs/AboutDialog.ui
|
|
|
|
gui/dialogs/VersionSelectDialog.ui
|
|
|
|
gui/dialogs/LwjglSelectDialog.ui
|
|
|
|
gui/dialogs/InstanceSettings.ui
|
|
|
|
gui/dialogs/ProgressDialog.ui
|
|
|
|
gui/dialogs/IconPickerDialog.ui
|
|
|
|
gui/dialogs/LegacyModEditDialog.ui
|
|
|
|
gui/dialogs/OneSixModEditDialog.ui
|
|
|
|
gui/dialogs/EditNotesDialog.ui
|
2013-11-18 18:05:35 +00:00
|
|
|
gui/dialogs/AccountListDialog.ui
|
2013-11-04 01:53:05 +00:00
|
|
|
|
|
|
|
# Widgets/other
|
|
|
|
gui/widgets/MCModInfoFrame.ui
|
2013-01-20 00:16:07 +00:00
|
|
|
)
|
|
|
|
|
2013-09-22 03:21:36 +01:00
|
|
|
set (FILES_TO_TRANSLATE ${FILES_TO_TRANSLATE} ${MULTIMC_SOURCES} ${MULTIMC_UIS})
|
2013-09-08 19:18:55 +01:00
|
|
|
|
2013-02-18 18:59:01 +00:00
|
|
|
|
2013-02-21 16:32:13 +00:00
|
|
|
######## Windows resource files ########
|
|
|
|
IF(WIN32)
|
|
|
|
SET(MULTIMC_RCS multimc.rc)
|
|
|
|
ENDIF()
|
|
|
|
|
2013-10-18 17:42:41 +01:00
|
|
|
####### X11 Stuff #######
|
|
|
|
IF(UNIX AND NOT APPLE)
|
|
|
|
SET(MultiMC_QT_ADDITIONAL_MODULES ${MultiMC_QT_ADDITIONAL_MODULES} X11Extras)
|
|
|
|
SET(MultiMC_LINK_ADDITIONAL_LIBS ${MultiMC_LINK_ADDITIONAL_LIBS} xcb)
|
2013-11-04 01:53:05 +00:00
|
|
|
LIST(APPEND MULTIMC_SOURCES gui/Platform_X11.cpp)
|
2013-10-18 17:42:41 +01:00
|
|
|
ELSE()
|
2013-11-04 01:53:05 +00:00
|
|
|
LIST(APPEND MULTIMC_SOURCES gui/Platform_Other.cpp)
|
2013-10-18 17:42:41 +01:00
|
|
|
ENDIF()
|
|
|
|
|
2013-02-21 16:32:13 +00:00
|
|
|
|
|
|
|
################################ COMPILE ################################
|
2013-02-18 18:59:01 +00:00
|
|
|
|
2013-02-21 16:32:13 +00:00
|
|
|
# ICNS file for OS X
|
2013-02-18 18:59:01 +00:00
|
|
|
IF(APPLE)
|
2013-03-11 21:19:17 +00:00
|
|
|
SET(MACOSX_BUNDLE_ICON_FILE MultiMC.icns)
|
2013-02-18 18:59:01 +00:00
|
|
|
SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_SOURCE_DIR}/MultiMC.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
|
|
|
|
SET(MULTIMC_SOURCES ${MULTIMC_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/MultiMC.icns)
|
|
|
|
ENDIF(APPLE)
|
|
|
|
|
2013-02-21 16:32:13 +00:00
|
|
|
# Link additional libraries
|
|
|
|
IF(WIN32)
|
2013-03-20 00:15:19 +00:00
|
|
|
SET(MultiMC_LINK_ADDITIONAL_LIBS ${MultiMC_LINK_ADDITIONAL_LIBS}
|
|
|
|
Qt5::WinMain # Link WinMain
|
|
|
|
)
|
2013-02-21 16:32:13 +00:00
|
|
|
ENDIF(WIN32)
|
2013-02-05 18:09:20 +00:00
|
|
|
|
2013-02-21 16:32:13 +00:00
|
|
|
# Tell CMake that MultiMCLauncher.jar is generated.
|
2013-01-11 01:25:40 +00:00
|
|
|
SET_SOURCE_FILES_PROPERTIES(resources/MultiMCLauncher.jar GENERATED)
|
|
|
|
|
2013-02-21 16:32:13 +00:00
|
|
|
# Qt 5 stuff
|
|
|
|
QT5_WRAP_UI(MULTIMC_UI ${MULTIMC_UIS})
|
2013-01-11 01:25:40 +00:00
|
|
|
QT5_ADD_RESOURCES(MULTIMC_QRC multimc.qrc)
|
|
|
|
|
2013-02-21 16:32:13 +00:00
|
|
|
# Add executable
|
|
|
|
ADD_EXECUTABLE(MultiMC MACOSX_BUNDLE WIN32
|
2013-09-22 03:21:36 +01:00
|
|
|
${MULTIMC_SOURCES} ${MULTIMC_UI} ${MULTIMC_QRC} ${MULTIMC_RCS})
|
2013-02-21 16:32:13 +00:00
|
|
|
|
|
|
|
# Link
|
2013-09-30 02:26:23 +01:00
|
|
|
TARGET_LINK_LIBRARIES(MultiMC xz-embedded unpack200 quazip libUtil libSettings libGroupView ${MultiMC_LINK_ADDITIONAL_LIBS})
|
2013-10-18 17:42:41 +01:00
|
|
|
QT5_USE_MODULES(MultiMC Core Widgets Network Xml ${MultiMC_QT_ADDITIONAL_MODULES})
|
2013-09-28 10:00:34 +01:00
|
|
|
ADD_DEPENDENCIES(MultiMC MultiMCLauncher)
|
2013-06-30 21:39:57 +01:00
|
|
|
|
|
|
|
option(BUILD_KEYRING_TEST "Build the simple keyring test binary" OFF)
|
|
|
|
IF(BUILD_KEYRING_TEST)
|
|
|
|
# test.cpp
|
|
|
|
ADD_EXECUTABLE(Test test.cpp)
|
|
|
|
QT5_USE_MODULES(Test Core)
|
|
|
|
TARGET_LINK_LIBRARIES(Test libUtil libSettings)
|
|
|
|
ENDIF()
|
|
|
|
|
2013-02-21 16:32:13 +00:00
|
|
|
################################ INSTALLATION AND PACKAGING ################################
|
2013-02-21 20:55:35 +00:00
|
|
|
# use QtCreator's QTDIR var
|
|
|
|
IF(DEFINED ENV{QTDIR})
|
2013-03-20 00:15:19 +00:00
|
|
|
SET(Qt5_DIR $ENV{QTDIR})
|
2013-02-21 20:55:35 +00:00
|
|
|
ENDIF()
|
2013-02-12 16:14:23 +00:00
|
|
|
|
2013-02-21 16:32:13 +00:00
|
|
|
######## Plugin and library folders ########
|
2013-02-12 16:14:23 +00:00
|
|
|
|
2013-09-19 18:19:01 +01:00
|
|
|
SET(PLUGIN_DEST_DIR plugins)
|
|
|
|
SET(QTCONF_DEST_DIR .)
|
|
|
|
SET(APPS "\${CMAKE_INSTALL_PREFIX}/MultiMC")
|
2013-02-12 16:14:23 +00:00
|
|
|
|
2013-02-12 17:57:18 +00:00
|
|
|
IF(WIN32)
|
2013-02-21 01:10:09 +00:00
|
|
|
SET(PLUGIN_DEST_DIR .)
|
|
|
|
SET(QTCONF_DEST_DIR .)
|
|
|
|
SET(APPS "\${CMAKE_INSTALL_PREFIX}/MultiMC.exe")
|
2013-02-18 18:59:01 +00:00
|
|
|
ENDIF()
|
2013-02-21 16:32:13 +00:00
|
|
|
|
2013-09-19 18:19:01 +01:00
|
|
|
IF(UNIX)
|
2013-02-18 18:59:01 +00:00
|
|
|
IF(APPLE)
|
|
|
|
SET(PLUGIN_DEST_DIR MultiMC.app/Contents/MacOS)
|
|
|
|
SET(QTCONF_DEST_DIR MultiMC.app/Contents/Resources)
|
2013-03-20 00:15:19 +00:00
|
|
|
SET(APPS "\${CMAKE_INSTALL_PREFIX}/MultiMC.app")
|
2013-09-19 18:19:01 +01:00
|
|
|
ELSE()
|
|
|
|
SET(APPS "\${CMAKE_INSTALL_PREFIX}/bin/MultiMC")
|
|
|
|
ENDIF()
|
2013-02-12 17:57:18 +00:00
|
|
|
ENDIF()
|
|
|
|
|
2013-02-18 18:59:01 +00:00
|
|
|
SET(QT_PLUGINS_DIR ${Qt5_DIR}/plugins)
|
|
|
|
SET(QT_LIBRARY_DIRS ${Qt5_DIR}/lib)
|
2013-02-12 17:57:18 +00:00
|
|
|
|
|
|
|
|
2013-02-21 16:32:13 +00:00
|
|
|
######## OS X Bundle Info ########
|
2013-02-12 18:49:13 +00:00
|
|
|
|
2013-02-18 18:59:01 +00:00
|
|
|
IF(APPLE)
|
|
|
|
SET(MACOSX_BUNDLE_BUNDLE_NAME "MultiMC")
|
|
|
|
SET(MACOSX_BUNDLE_INFO_STRING "MultiMC Minecraft launcher and management utility.")
|
2013-02-21 16:32:13 +00:00
|
|
|
SET(MACOSX_BUNDLE_BUNDLE_VERSION
|
|
|
|
"${MultiMC_VERSION_MAJOR}.${MultiMC_VERSION_MINOR}.${MultiMC_VERSION_REV}.${MultiMC_VERSION_BUILD}")
|
2013-02-18 18:59:01 +00:00
|
|
|
#SET(MACOSX_BUNDLE_GUI_IDENTIFIER "")
|
|
|
|
SET(MACOSX_BUNDLE_ICON_FILE MultiMC.icns)
|
|
|
|
ENDIF(APPLE)
|
2013-02-12 18:49:13 +00:00
|
|
|
|
2013-02-21 16:32:13 +00:00
|
|
|
######## Install ########
|
2013-02-12 17:57:18 +00:00
|
|
|
|
2013-02-21 16:32:13 +00:00
|
|
|
#### Executable ####
|
2013-02-05 18:09:20 +00:00
|
|
|
IF(WIN32)
|
2013-02-18 18:59:01 +00:00
|
|
|
INSTALL(TARGETS MultiMC
|
|
|
|
BUNDLE DESTINATION . COMPONENT Runtime
|
2013-09-19 18:19:01 +01:00
|
|
|
LIBRARY DESTINATION . COMPONENT Runtime
|
2013-02-21 01:10:09 +00:00
|
|
|
RUNTIME DESTINATION . COMPONENT Runtime
|
2013-02-18 18:59:01 +00:00
|
|
|
)
|
|
|
|
ENDIF()
|
|
|
|
IF(UNIX)
|
|
|
|
IF(APPLE)
|
|
|
|
INSTALL(TARGETS MultiMC
|
|
|
|
BUNDLE DESTINATION . COMPONENT Runtime
|
|
|
|
RUNTIME DESTINATION MultiMC.app/Contents/MacOS COMPONENT Runtime
|
|
|
|
)
|
2013-02-05 18:09:20 +00:00
|
|
|
ELSE()
|
2013-02-18 18:59:01 +00:00
|
|
|
INSTALL(TARGETS MultiMC
|
|
|
|
BUNDLE DESTINATION . COMPONENT Runtime
|
2013-09-19 18:19:01 +01:00
|
|
|
RUNTIME DESTINATION bin COMPONENT Runtime
|
2013-02-18 18:59:01 +00:00
|
|
|
)
|
2013-10-01 22:30:30 +01:00
|
|
|
INSTALL(PROGRAMS package/linux/MultiMC DESTINATION .)
|
2013-02-18 18:59:01 +00:00
|
|
|
ENDIF()
|
2013-02-05 18:09:20 +00:00
|
|
|
ENDIF()
|
|
|
|
|
2013-02-21 16:32:13 +00:00
|
|
|
|
|
|
|
#### Plugins ####
|
2013-02-12 16:14:23 +00:00
|
|
|
|
2013-09-19 18:19:01 +01:00
|
|
|
OPTION(MultiMC_INSTALL_SHARED_LIBS "if set, Qt's shared libraries will be copied to the installation directory on install")
|
|
|
|
|
|
|
|
IF (MultiMC_INSTALL_SHARED_LIBS)
|
|
|
|
# Image formats
|
|
|
|
INSTALL(DIRECTORY "${QT_PLUGINS_DIR}/imageformats" DESTINATION ${PLUGIN_DEST_DIR} COMPONENT Runtime)
|
|
|
|
|
|
|
|
# Platform plugins
|
|
|
|
INSTALL(DIRECTORY "${QT_PLUGINS_DIR}/platforms" DESTINATION ${PLUGIN_DEST_DIR} COMPONENT Runtime)
|
|
|
|
|
|
|
|
# qtconf
|
|
|
|
INSTALL(CODE "
|
|
|
|
FILE(WRITE \"\${CMAKE_INSTALL_PREFIX}/${QTCONF_DEST_DIR}/qt.conf\" \"\")
|
|
|
|
" COMPONENT Runtime)
|
|
|
|
|
|
|
|
|
|
|
|
# Dirs to look for dependencies.
|
|
|
|
SET(DIRS "${QT_LIBRARY_DIRS}")
|
|
|
|
|
|
|
|
INSTALL(CODE "
|
|
|
|
file(GLOB_RECURSE QTPLUGINS
|
|
|
|
\"\${CMAKE_INSTALL_PREFIX}/${PLUGIN_DEST_DIR}/plugins/*${CMAKE_SHARED_LIBRARY_SUFFIX}\")
|
|
|
|
include(BundleUtilities)
|
|
|
|
fixup_bundle(\"${APPS}\" \"\${QTPLUGINS}\" \"${DIRS}\")
|
|
|
|
" COMPONENT Runtime)
|
|
|
|
ENDIF()
|
2013-02-06 06:37:51 +00:00
|
|
|
|
2013-02-05 18:09:20 +00:00
|
|
|
|
2013-02-21 16:32:13 +00:00
|
|
|
######## Package ########
|
2013-02-05 18:09:20 +00:00
|
|
|
|
|
|
|
# Package with CPack
|
|
|
|
IF(UNIX)
|
2013-03-20 00:15:19 +00:00
|
|
|
if(APPLE)
|
|
|
|
SET(CPACK_GENERATOR "ZIP")
|
|
|
|
else()
|
|
|
|
SET(CPACK_GENERATOR "TGZ")
|
|
|
|
endif()
|
2013-02-05 18:09:20 +00:00
|
|
|
ELSEIF(WIN32)
|
2013-03-20 00:15:19 +00:00
|
|
|
SET(CPACK_GENERATOR "ZIP")
|
2013-02-05 18:09:20 +00:00
|
|
|
ENDIF()
|
2013-02-12 17:57:18 +00:00
|
|
|
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()
|
|
|
|
|
2013-02-05 18:09:20 +00:00
|
|
|
INCLUDE(CPack)
|
2013-03-19 20:17:35 +00:00
|
|
|
|
|
|
|
include_directories(${PROJECT_BINARY_DIR}/include)
|
2013-09-08 19:18:55 +01:00
|
|
|
|
|
|
|
### translation stuff
|
|
|
|
|
|
|
|
file (GLOB TRANSLATIONS_FILES translations/*.ts)
|
|
|
|
|
|
|
|
option (UPDATE_TRANSLATIONS "Update source translation translations/*.ts files (WARNING: make clean will delete the source .ts files! Danger!)")
|
|
|
|
if (UPDATE_TRANSLATIONS)
|
|
|
|
qt5_create_translation(QM_FILES ${FILES_TO_TRANSLATE} ${TRANSLATIONS_FILES})
|
|
|
|
else (UPDATE_TRANSLATIONS)
|
|
|
|
qt5_add_translation(QM_FILES ${TRANSLATIONS_FILES})
|
|
|
|
endif (UPDATE_TRANSLATIONS)
|
|
|
|
|
2013-10-01 22:13:21 +01:00
|
|
|
add_custom_target (translations DEPENDS ${QM_FILES})
|
2013-09-08 19:18:55 +01:00
|
|
|
|
2013-09-11 22:43:17 +01:00
|
|
|
install(FILES ${QM_FILES} DESTINATION ${CMAKE_INSTALL_PREFIX}/translations)
|