From faddeb2c130157496cd2fd2853fd33a4fc95a0d1 Mon Sep 17 00:00:00 2001 From: Andrew Date: Thu, 21 Feb 2013 10:32:13 -0600 Subject: [PATCH] Reorganized the main CMakeLists file and added an icon on Windows. --- CMakeLists.txt | 197 +++++++++++++++++++++--------------- multimc.rc | 1 + resources/icons/MultiMC.ico | Bin 0 -> 76126 bytes 3 files changed, 117 insertions(+), 81 deletions(-) create mode 100644 multimc.rc create mode 100644 resources/icons/MultiMC.ico diff --git a/CMakeLists.txt b/CMakeLists.txt index eea4ded54..e6a1d0cca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,31 +1,34 @@ cmake_minimum_required(VERSION 2.8.9) project(MultiMC) -set(CMAKE_AUTOMOC ON) -set(CMAKE_INCLUDE_CURRENT_DIR ON) +######## Set CMake options ######## +SET(CMAKE_AUTOMOC ON) +SET(CMAKE_INCLUDE_CURRENT_DIR ON) +# Output all executables and shared libs in the main build folder, not in subfolders. SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) -#### Check for machine endianness #### -INCLUDE(TestBigEndian) -TEST_BIG_ENDIAN(BIGENDIAN) -IF(${BIGENDIAN}) - ADD_DEFINITIONS(-DMULTIMC_BIG_ENDIAN) -ENDIF(${BIGENDIAN}) + +################################ INCLUDE LIBRARIES ################################ # First, include header overrides include_directories(hacks) -#### Find the required Qt parts #### + +######## 3rd Party Libs ######## + +# Find the required Qt parts find_package(Qt5Widgets REQUIRED) find_package(Qt5Network REQUIRED) -#find_package(Qt5Declarative) include_directories(${Qt5Widgets_INCLUDE_DIRS}) -# find ZLIB for quazip +# Find ZLIB for quazip find_package(ZLIB REQUIRED) + +######## Included Libs ######## + # Add quazip add_subdirectory(quazip) @@ -37,6 +40,8 @@ include_directories(patchlib) add_subdirectory(launcher) +######## MultiMC Libs ######## + # Add the util library. add_subdirectory(libutil) include_directories(${LIBMMCUTIL_INCLUDE_DIR}) @@ -53,64 +58,84 @@ include_directories(${LIBMMCINST_INCLUDE_DIR}) add_subdirectory(plugins/stdinstance) + +################################ SET UP BUILD OPTIONS ################################ + +######## Check endianness ######## +INCLUDE(TestBigEndian) +TEST_BIG_ENDIAN(BIGENDIAN) +IF(${BIGENDIAN}) + ADD_DEFINITIONS(-DMULTIMC_BIG_ENDIAN) +ENDIF(${BIGENDIAN}) + + +######## Set module path ######## +SET(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}") + + +######## Set compiler flags ######## IF(APPLE) - # assume clang 4.1.0+, add C++0x/C++11 stuff - message(STATUS "Using APPLE CMAKE_CXX_FLAGS") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -stdlib=libc++") + # assume clang 4.1.0+, add C++0x/C++11 stuff + message(STATUS "Using APPLE CMAKE_CXX_FLAGS") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -stdlib=libc++") 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") + # 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") + MESSAGE(STATUS "Using MINGW CMAKE_CXX_FLAGS") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x") ENDIF() -# Set the path where CMake will look for modules. -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) -set(MultiMC_VERSION_MAJOR 5) -set(MultiMC_VERSION_MINOR 0) -set(MultiMC_VERSION_REV 0) - +# Jenkins build number. SET(MultiMC_VERSION_BUILD 0 CACHE STRING "Build number.") -message(STATUS "MultiMC build #${MultiMC_VERSION_BUILD}") +MESSAGE(STATUS "MultiMC build #${MultiMC_VERSION_BUILD}") -IF (DEFINED MultiMC_BUILD_TAG) - message(STATUS "Build tag: ${MultiMC_BUILD_TAG}") -ELSE () - message(STATUS "No build tag specified.") -ENDIF () -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}") - -SET(MultiMC_Extra_Label "") - -IF (WIN32) - SET(MultiMC_JOB_NAME "MultiMC4Windows" CACHE STRING "Jenkins job name.") -ELSEIF(UNIX AND APPLE) - SET(MultiMC_JOB_NAME "MultiMC4OSX" CACHE STRING "Jenkins job name.") - # This is here because the scheme doesn't exactly apply to every kind of build... - SET(MultiMC_Extra_Label ",label=osx") +######## Set Jenkins info ######## +# Jenkins build tag +IF(DEFINED MultiMC_BUILD_TAG) + MESSAGE(STATUS "Build tag: ${MultiMC_BUILD_TAG}") ELSE() - SET(MultiMC_JOB_NAME "MultiMC4Linux" CACHE STRING "Jenkins job name.") + MESSAGE(STATUS "No build tag specified.") 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.") +ELSEIF(UNIX AND APPLE) + SET(MultiMC_JOB_NAME "MultiMC5OSX" CACHE STRING "Jenkins job name.") +ELSE() + SET(MultiMC_JOB_NAME "MultiMC5Linux" CACHE STRING "Jenkins job name.") +ENDIF() + +# Jenkins URL SET(MultiMC_JOB_URL "http://ci.forkk.net/job/${MultiMC_JOB_NAME}/arch=${MultiMC_ARCH}${MultiMC_Extra_Label}/" CACHE STRING "URL of the jenkins job to pull updates from.") -message(STATUS "Job URL: ${MultiMC_JOB_URL}") +MESSAGE(STATUS "Job URL: ${MultiMC_JOB_URL}") +######## Configure header ######## configure_file("${PROJECT_SOURCE_DIR}/config.h.in" "${PROJECT_BINARY_DIR}/config.h") + +################################ FILES ################################ + +######## Headers ######## SET(MULTIMC_HEADERS gui/mainwindow.h gui/modeditwindow.h @@ -139,6 +164,8 @@ tasks/task.h tasks/logintask.h ) + +######## Sources ######## SET(MULTIMC_SOURCES main.cpp @@ -162,7 +189,9 @@ tasks/task.cpp tasks/logintask.cpp ) -SET(MULTIMC5_UIS + +######## UIs ######## +SET(MULTIMC_UIS gui/mainwindow.ui gui/modeditwindow.ui gui/settingsdialog.ui @@ -171,39 +200,51 @@ gui/logindialog.ui gui/taskdialog.ui ) -################################ Install ################################ -################ ICNS File ################ +######## Windows resource files ######## +IF(WIN32) +SET(MULTIMC_RCS multimc.rc) +ENDIF() + +################################ COMPILE ################################ + +# ICNS file for OS X IF(APPLE) SET(MACOSX_BUNDLE_ICON_FILE MultiMC.icns) 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) - -################ Build ################ - -IF (WIN32) +# Link additional libraries +IF(WIN32) SET(MultiMC_LINK_ADDITIONAL_LIBS ${MultiMC_LINK_ADDITIONAL_LIBS} - Qt5::WinMain + Qt5::WinMain # Link WinMain ) -ENDIF (WIN32) +ENDIF(WIN32) +# Tell CMake that MultiMCLauncher.jar is generated. SET_SOURCE_FILES_PROPERTIES(resources/MultiMCLauncher.jar GENERATED) -QT5_WRAP_UI(MULTIMC_UI ${MULTIMC5_UIS}) +# Qt 5 stuff +QT5_WRAP_UI(MULTIMC_UI ${MULTIMC_UIS}) QT5_ADD_RESOURCES(MULTIMC_QRC multimc.qrc) -add_executable(MultiMC MACOSX_BUNDLE WIN32 ${MULTIMC_SOURCES} ${MULTIMC_HEADERS} ${MULTIMC_UI} ${MULTIMC_QRC}) -qt5_use_modules(MultiMC Widgets Network) -target_link_libraries(MultiMC quazip patchlib -libmmcutil libmmcsettings libmmcinst +# Add executable +ADD_EXECUTABLE(MultiMC MACOSX_BUNDLE WIN32 + ${MULTIMC_SOURCES} ${MULTIMC_HEADERS} ${MULTIMC_UI} ${MULTIMC_QRC} ${MULTIMC_RCS}) + +# Link +QT5_USE_MODULES(MultiMC Widgets Network) +TARGET_LINK_LIBRARIES(MultiMC quazip patchlib +libmmcutil libmmcsettings libmmcinst ${MultiMC_LINK_ADDITIONAL_LIBS}) -add_dependencies(MultiMC MultiMCLauncher libmmcutil libmmcsettings libmmcinst) +ADD_DEPENDENCIES(MultiMC MultiMCLauncher libmmcutil libmmcsettings libmmcinst) -################ Dirs ################ +################################ INSTALLATION AND PACKAGING ################################ + +######## Plugin and library folders ######## SET(PLUGIN_DEST_DIR bin) SET(QTCONF_DEST_DIR bin) @@ -214,6 +255,7 @@ IF(WIN32) SET(QTCONF_DEST_DIR .) SET(APPS "\${CMAKE_INSTALL_PREFIX}/MultiMC.exe") ENDIF() + IF(APPLE) SET(PLUGIN_DEST_DIR MultiMC.app/Contents/MacOS) SET(QTCONF_DEST_DIR MultiMC.app/Contents/Resources) @@ -224,19 +266,20 @@ SET(QT_PLUGINS_DIR ${Qt5_DIR}/plugins) SET(QT_LIBRARY_DIRS ${Qt5_DIR}/lib) -################ OS X Bundle Info ################ +######## OS X Bundle Info ######## IF(APPLE) SET(MACOSX_BUNDLE_BUNDLE_NAME "MultiMC") SET(MACOSX_BUNDLE_INFO_STRING "MultiMC Minecraft launcher and management utility.") - SET(MACOSX_BUNDLE_BUNDLE_VERSION "${MultiMC_VERSION_MAJOR}.${MultiMC_VERSION_MINOR}.${MultiMC_VERSION_REV}.${MultiMC_VERSION_BUILD}") + SET(MACOSX_BUNDLE_BUNDLE_VERSION + "${MultiMC_VERSION_MAJOR}.${MultiMC_VERSION_MINOR}.${MultiMC_VERSION_REV}.${MultiMC_VERSION_BUILD}") #SET(MACOSX_BUNDLE_GUI_IDENTIFIER "") SET(MACOSX_BUNDLE_ICON_FILE MultiMC.icns) ENDIF(APPLE) -################ Install ################ +######## Install ######## -# Executable +#### Executable #### IF(WIN32) INSTALL(TARGETS MultiMC BUNDLE DESTINATION . COMPONENT Runtime @@ -257,7 +300,8 @@ INSTALL(TARGETS MultiMC ENDIF() ENDIF() -# Plugins + +#### Plugins #### # Image formats INSTALL(DIRECTORY "${QT_PLUGINS_DIR}/imageformats" DESTINATION ${PLUGIN_DEST_DIR} COMPONENT Runtime) @@ -286,16 +330,7 @@ INSTALL(CODE " " COMPONENT Runtime) -#GET_TARGET_PROPERTY(BINARY_LOCATION MultiMC LOCATION) -#CONFIGURE_FILE( -# "${CMAKE_CURRENT_SOURCE_DIR}/dependencies.cmake.in" -# "${CMAKE_CURRENT_BINARY_DIR}/dependencies.cmake" -# @ONLY -# ) -#INSTALL(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/dependencies.cmake") - - -################ Package ################ +######## Package ######## # Package with CPack IF(UNIX) diff --git a/multimc.rc b/multimc.rc new file mode 100644 index 000000000..decf7d3ab --- /dev/null +++ b/multimc.rc @@ -0,0 +1 @@ +IDI_ICON1 ICON DISCARDABLE "resources/icons/MultiMC.ico" diff --git a/resources/icons/MultiMC.ico b/resources/icons/MultiMC.ico new file mode 100644 index 0000000000000000000000000000000000000000..734af0fb1004cc7afc5115cc1d689980d009ec44 GIT binary patch literal 76126 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 GIs^b=zPu#> literal 0 HcmV?d00001