summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/ISSUE_TEMPLATE.md12
-rw-r--r--CMakeLists.txt4
-rw-r--r--application/CMakeLists.txt654
-rw-r--r--cmake/GetGitRevisionDescription.cmake150
-rw-r--r--cmake/GetGitRevisionDescription.cmake.in30
-rw-r--r--cmake/GitFunctions.cmake38
-rw-r--r--cmake/MacOSXBundleInfo.plist.in68
-rw-r--r--cmake/UnitTest.cmake80
-rw-r--r--cmake/UnitTest/TestUtil.h20
-rw-r--r--cmake/UnitTest/generate_test_data.cmake30
10 files changed, 543 insertions, 543 deletions
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
index d95423cf..58596fa0 100644
--- a/.github/ISSUE_TEMPLATE.md
+++ b/.github/ISSUE_TEMPLATE.md
@@ -2,16 +2,16 @@
Before submitting this issue, please make sure you have:
1. Filled out this form completely, the only optional field is "additional info".
- - Use as many details as possible and state the problem clearly.
+ - Use as many details as possible and state the problem clearly.
2. Proof-read your ENTIRE issue report.
- - Grammar and spelling mistakes make issue reports harder to understand.
+ - Grammar and spelling mistakes make issue reports harder to understand.
3. Made sure your problem is not caused by an issue in your own modpack.
- - We provide support for MultiMC, not your modpack. Problems with your modpack will be ignored.
+ - We provide support for MultiMC, not your modpack. Problems with your modpack will be ignored.
4. Given the issue a descriptive title.
- - A good title includes a brief summary of the issue and avoids things such as "Help" and "What?!".
- Use of UPPERCASE is discouraged, as it reads like someone is screaming.
+ - A good title includes a brief summary of the issue and avoids things such as "Help" and "What?!".
+ Use of UPPERCASE is discouraged, as it reads like someone is screaming.
5. Place all information below the ---- of lines.
- - It makes the issue look pretty
+ - It makes the issue look pretty
If you believe your issue to be a bug, please make sure you check the wiki page: https://github.com/MultiMC/MultiMC5/wiki/Report-a-Bug
-->
diff --git a/CMakeLists.txt b/CMakeLists.txt
index bfc9527a..e920708a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -44,8 +44,8 @@ set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Werror=return-type")
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 6)
+set(MultiMC_VERSION_MAJOR 0)
+set(MultiMC_VERSION_MINOR 6)
set(MultiMC_VERSION_HOTFIX 2)
# Build number
diff --git a/application/CMakeLists.txt b/application/CMakeLists.txt
index 9ec59a2d..2ba23828 100644
--- a/application/CMakeLists.txt
+++ b/application/CMakeLists.txt
@@ -7,292 +7,292 @@ configure_file("${PROJECT_SOURCE_DIR}/BuildConfig.cpp.in" "${PROJECT_BINARY_DIR}
######## Sources and headers ########
SET(MULTIMC_SOURCES
- # Application base
- main.cpp
- MultiMC.h
- MultiMC.cpp
- BuildConfig.h
- ${PROJECT_BINARY_DIR}/BuildConfig.cpp
- UpdateController.cpp
- UpdateController.h
+ # Application base
+ main.cpp
+ MultiMC.h
+ MultiMC.cpp
+ BuildConfig.h
+ ${PROJECT_BINARY_DIR}/BuildConfig.cpp
+ UpdateController.cpp
+ UpdateController.h
- # GUI - general utilities
- GuiUtil.h
- GuiUtil.cpp
- ColumnResizer.h
- ColumnResizer.cpp
- InstanceProxyModel.h
- InstanceProxyModel.cpp
- VersionProxyModel.h
- VersionProxyModel.cpp
- ColorCache.h
- ColorCache.cpp
- HoeDown.h
+ # GUI - general utilities
+ GuiUtil.h
+ GuiUtil.cpp
+ ColumnResizer.h
+ ColumnResizer.cpp
+ InstanceProxyModel.h
+ InstanceProxyModel.cpp
+ VersionProxyModel.h
+ VersionProxyModel.cpp
+ ColorCache.h
+ ColorCache.cpp
+ HoeDown.h
- # Super secret!
- KonamiCode.h
- KonamiCode.cpp
+ # Super secret!
+ KonamiCode.h
+ KonamiCode.cpp
- # GUI - windows
- MainWindow.h
- MainWindow.cpp
- InstanceWindow.h
- InstanceWindow.cpp
+ # GUI - windows
+ MainWindow.h
+ MainWindow.cpp
+ InstanceWindow.h
+ InstanceWindow.cpp
- # GUI - setup wizard
- setupwizard/SetupWizard.h
- setupwizard/SetupWizard.cpp
- setupwizard/AnalyticsWizardPage.cpp
- setupwizard/AnalyticsWizardPage.h
- setupwizard/BaseWizardPage.h
- setupwizard/JavaWizardPage.cpp
- setupwizard/JavaWizardPage.h
- setupwizard/LanguageWizardPage.cpp
- setupwizard/LanguageWizardPage.h
+ # GUI - setup wizard
+ setupwizard/SetupWizard.h
+ setupwizard/SetupWizard.cpp
+ setupwizard/AnalyticsWizardPage.cpp
+ setupwizard/AnalyticsWizardPage.h
+ setupwizard/BaseWizardPage.h
+ setupwizard/JavaWizardPage.cpp
+ setupwizard/JavaWizardPage.h
+ setupwizard/LanguageWizardPage.cpp
+ setupwizard/LanguageWizardPage.h
- # GUI - themes
- themes/FusionTheme.cpp
- themes/FusionTheme.h
- themes/BrightTheme.cpp
- themes/BrightTheme.h
- themes/CustomTheme.cpp
- themes/CustomTheme.h
- themes/DarkTheme.cpp
- themes/DarkTheme.h
- themes/ITheme.cpp
- themes/ITheme.h
- themes/SystemTheme.cpp
- themes/SystemTheme.h
+ # GUI - themes
+ themes/FusionTheme.cpp
+ themes/FusionTheme.h
+ themes/BrightTheme.cpp
+ themes/BrightTheme.h
+ themes/CustomTheme.cpp
+ themes/CustomTheme.h
+ themes/DarkTheme.cpp
+ themes/DarkTheme.h
+ themes/ITheme.cpp
+ themes/ITheme.h
+ themes/SystemTheme.cpp
+ themes/SystemTheme.h
- # GUI - settings-specific wrappers for paged dialog
- SettingsUI.h
+ # GUI - settings-specific wrappers for paged dialog
+ SettingsUI.h
- # Processes
- LaunchController.h
- LaunchController.cpp
+ # Processes
+ LaunchController.h
+ LaunchController.cpp
- # page provider for instances
- InstancePageProvider.h
+ # page provider for instances
+ InstancePageProvider.h
- # Common java checking UI
- JavaCommon.h
- JavaCommon.cpp
+ # Common java checking UI
+ JavaCommon.h
+ JavaCommon.cpp
- # GUI - paged dialog base
- pages/BasePage.h
- pages/BasePageContainer.h
- pages/BasePageProvider.h
+ # GUI - paged dialog base
+ pages/BasePage.h
+ pages/BasePageContainer.h
+ pages/BasePageProvider.h
- # GUI - instance pages
- pages/instance/VersionPage.cpp
- pages/instance/VersionPage.h
- pages/instance/TexturePackPage.h
- pages/instance/ResourcePackPage.h
- pages/instance/ModFolderPage.cpp
- pages/instance/ModFolderPage.h
- pages/instance/NewModFolderPage.cpp
- pages/instance/NewModFolderPage.h
- pages/instance/NotesPage.cpp
- pages/instance/NotesPage.h
- pages/instance/LogPage.cpp
- pages/instance/LogPage.h
- pages/instance/InstanceSettingsPage.cpp
- pages/instance/InstanceSettingsPage.h
- pages/instance/ScreenshotsPage.cpp
- pages/instance/ScreenshotsPage.h
- pages/instance/OtherLogsPage.cpp
- pages/instance/OtherLogsPage.h
- pages/instance/ServersPage.cpp
- pages/instance/ServersPage.h
- pages/instance/LegacyUpgradePage.cpp
- pages/instance/LegacyUpgradePage.h
- pages/instance/WorldListPage.cpp
- pages/instance/WorldListPage.h
+ # GUI - instance pages
+ pages/instance/VersionPage.cpp
+ pages/instance/VersionPage.h
+ pages/instance/TexturePackPage.h
+ pages/instance/ResourcePackPage.h
+ pages/instance/ModFolderPage.cpp
+ pages/instance/ModFolderPage.h
+ pages/instance/NewModFolderPage.cpp
+ pages/instance/NewModFolderPage.h
+ pages/instance/NotesPage.cpp
+ pages/instance/NotesPage.h
+ pages/instance/LogPage.cpp
+ pages/instance/LogPage.h
+ pages/instance/InstanceSettingsPage.cpp
+ pages/instance/InstanceSettingsPage.h
+ pages/instance/ScreenshotsPage.cpp
+ pages/instance/ScreenshotsPage.h
+ pages/instance/OtherLogsPage.cpp
+ pages/instance/OtherLogsPage.h
+ pages/instance/ServersPage.cpp
+ pages/instance/ServersPage.h
+ pages/instance/LegacyUpgradePage.cpp
+ pages/instance/LegacyUpgradePage.h
+ pages/instance/WorldListPage.cpp
+ pages/instance/WorldListPage.h
- # GUI - global settings pages
- pages/global/AccountListPage.cpp
- pages/global/AccountListPage.h
- pages/global/CustomCommandsPage.cpp
- pages/global/CustomCommandsPage.h
- pages/global/ExternalToolsPage.cpp
- pages/global/ExternalToolsPage.h
- pages/global/JavaPage.cpp
- pages/global/JavaPage.h
- pages/global/MinecraftPage.cpp
- pages/global/MinecraftPage.h
- pages/global/MultiMCPage.cpp
- pages/global/MultiMCPage.h
- pages/global/ProxyPage.cpp
- pages/global/ProxyPage.h
- pages/global/PasteEEPage.cpp
- pages/global/PasteEEPage.h
- pages/global/PackagesPage.cpp
- pages/global/PackagesPage.h
+ # GUI - global settings pages
+ pages/global/AccountListPage.cpp
+ pages/global/AccountListPage.h
+ pages/global/CustomCommandsPage.cpp
+ pages/global/CustomCommandsPage.h
+ pages/global/ExternalToolsPage.cpp
+ pages/global/ExternalToolsPage.h
+ pages/global/JavaPage.cpp
+ pages/global/JavaPage.h
+ pages/global/MinecraftPage.cpp
+ pages/global/MinecraftPage.h
+ pages/global/MultiMCPage.cpp
+ pages/global/MultiMCPage.h
+ pages/global/ProxyPage.cpp
+ pages/global/ProxyPage.h
+ pages/global/PasteEEPage.cpp
+ pages/global/PasteEEPage.h
+ pages/global/PackagesPage.cpp
+ pages/global/PackagesPage.h
- # GUI - platform pages
- pages/modplatform/VanillaPage.cpp
- pages/modplatform/VanillaPage.h
- pages/modplatform/FTBPage.cpp
- pages/modplatform/FTBPage.h
- pages/modplatform/FtbListModel.h
- pages/modplatform/FtbListModel.cpp
- pages/modplatform/TwitchPage.cpp
- pages/modplatform/TwitchPage.h
- pages/modplatform/TechnicPage.cpp
- pages/modplatform/TechnicPage.h
- pages/modplatform/ImportPage.cpp
- pages/modplatform/ImportPage.h
+ # GUI - platform pages
+ pages/modplatform/VanillaPage.cpp
+ pages/modplatform/VanillaPage.h
+ pages/modplatform/FTBPage.cpp
+ pages/modplatform/FTBPage.h
+ pages/modplatform/FtbListModel.h
+ pages/modplatform/FtbListModel.cpp
+ pages/modplatform/TwitchPage.cpp
+ pages/modplatform/TwitchPage.h
+ pages/modplatform/TechnicPage.cpp
+ pages/modplatform/TechnicPage.h
+ pages/modplatform/ImportPage.cpp
+ pages/modplatform/ImportPage.h
- # GUI - dialogs
- dialogs/AboutDialog.cpp
- dialogs/AboutDialog.h
- dialogs/ProfileSelectDialog.cpp
- dialogs/ProfileSelectDialog.h
- dialogs/CopyInstanceDialog.cpp
- dialogs/CopyInstanceDialog.h
- dialogs/CustomMessageBox.cpp
- dialogs/CustomMessageBox.h
- dialogs/EditAccountDialog.cpp
- dialogs/EditAccountDialog.h
- dialogs/ExportInstanceDialog.cpp
- dialogs/ExportInstanceDialog.h
- dialogs/IconPickerDialog.cpp
- dialogs/IconPickerDialog.h
- dialogs/LoginDialog.cpp
- dialogs/LoginDialog.h
- dialogs/ModEditDialogCommon.cpp
- dialogs/ModEditDialogCommon.h
- dialogs/NewComponentDialog.cpp
- dialogs/NewComponentDialog.h
- dialogs/NewInstanceDialog.cpp
- dialogs/NewInstanceDialog.h
- dialogs/NotificationDialog.cpp
- dialogs/NotificationDialog.h
- pagedialog/PageDialog.cpp
- pagedialog/PageDialog.h
- dialogs/ProgressDialog.cpp
- dialogs/ProgressDialog.h
- dialogs/UpdateDialog.cpp
- dialogs/UpdateDialog.h
- dialogs/VersionSelectDialog.cpp
- dialogs/VersionSelectDialog.h
- dialogs/SkinUploadDialog.cpp
- dialogs/SkinUploadDialog.h
+ # GUI - dialogs
+ dialogs/AboutDialog.cpp
+ dialogs/AboutDialog.h
+ dialogs/ProfileSelectDialog.cpp
+ dialogs/ProfileSelectDialog.h
+ dialogs/CopyInstanceDialog.cpp
+ dialogs/CopyInstanceDialog.h
+ dialogs/CustomMessageBox.cpp
+ dialogs/CustomMessageBox.h
+ dialogs/EditAccountDialog.cpp
+ dialogs/EditAccountDialog.h
+ dialogs/ExportInstanceDialog.cpp
+ dialogs/ExportInstanceDialog.h
+ dialogs/IconPickerDialog.cpp
+ dialogs/IconPickerDialog.h
+ dialogs/LoginDialog.cpp
+ dialogs/LoginDialog.h
+ dialogs/ModEditDialogCommon.cpp
+ dialogs/ModEditDialogCommon.h
+ dialogs/NewComponentDialog.cpp
+ dialogs/NewComponentDialog.h
+ dialogs/NewInstanceDialog.cpp
+ dialogs/NewInstanceDialog.h
+ dialogs/NotificationDialog.cpp
+ dialogs/NotificationDialog.h
+ pagedialog/PageDialog.cpp
+ pagedialog/PageDialog.h
+ dialogs/ProgressDialog.cpp
+ dialogs/ProgressDialog.h
+ dialogs/UpdateDialog.cpp
+ dialogs/UpdateDialog.h
+ dialogs/VersionSelectDialog.cpp
+ dialogs/VersionSelectDialog.h
+ dialogs/SkinUploadDialog.cpp
+ dialogs/SkinUploadDialog.h
- # GUI - widgets
- widgets/Common.cpp
- widgets/Common.h
- widgets/CustomCommands.cpp
- widgets/CustomCommands.h
- widgets/FocusLineEdit.cpp
- widgets/FocusLineEdit.h
- widgets/IconLabel.cpp
- widgets/IconLabel.h
- widgets/JavaSettingsWidget.cpp
- widgets/JavaSettingsWidget.h
- widgets/LabeledToolButton.cpp
- widgets/LabeledToolButton.h
- widgets/LineSeparator.cpp
- widgets/LineSeparator.h
- widgets/LogView.cpp
- widgets/LogView.h
- widgets/MCModInfoFrame.cpp
- widgets/MCModInfoFrame.h
- widgets/ModListView.cpp
- widgets/ModListView.h
- widgets/PageContainer.cpp
- widgets/PageContainer.h
- widgets/PageContainer_p.h
- widgets/ServerStatus.cpp
- widgets/ServerStatus.h
- widgets/VersionListView.cpp
- widgets/VersionListView.h
- widgets/VersionSelectWidget.cpp
- widgets/VersionSelectWidget.h
- widgets/ProgressWidget.h
- widgets/ProgressWidget.cpp
+ # GUI - widgets
+ widgets/Common.cpp
+ widgets/Common.h
+ widgets/CustomCommands.cpp
+ widgets/CustomCommands.h
+ widgets/FocusLineEdit.cpp
+ widgets/FocusLineEdit.h
+ widgets/IconLabel.cpp
+ widgets/IconLabel.h
+ widgets/JavaSettingsWidget.cpp
+ widgets/JavaSettingsWidget.h
+ widgets/LabeledToolButton.cpp
+ widgets/LabeledToolButton.h
+ widgets/LineSeparator.cpp
+ widgets/LineSeparator.h
+ widgets/LogView.cpp
+ widgets/LogView.h
+ widgets/MCModInfoFrame.cpp
+ widgets/MCModInfoFrame.h
+ widgets/ModListView.cpp
+ widgets/ModListView.h
+ widgets/PageContainer.cpp
+ widgets/PageContainer.h
+ widgets/PageContainer_p.h
+ widgets/ServerStatus.cpp
+ widgets/ServerStatus.h
+ widgets/VersionListView.cpp
+ widgets/VersionListView.h
+ widgets/VersionSelectWidget.cpp
+ widgets/VersionSelectWidget.h
+ widgets/ProgressWidget.h
+ widgets/ProgressWidget.cpp
- # GUI - instance group view
- groupview/GroupedProxyModel.cpp
- groupview/GroupedProxyModel.h
- groupview/GroupView.cpp
- groupview/GroupView.h
- groupview/InstanceDelegate.cpp
- groupview/InstanceDelegate.h
- groupview/VisualGroup.cpp
- groupview/VisualGroup.h
- )
+ # GUI - instance group view
+ groupview/GroupedProxyModel.cpp
+ groupview/GroupedProxyModel.h
+ groupview/GroupView.cpp
+ groupview/GroupView.h
+ groupview/InstanceDelegate.cpp
+ groupview/InstanceDelegate.h
+ groupview/VisualGroup.cpp
+ groupview/VisualGroup.h
+ )
######## UIs ########
SET(MULTIMC_UIS
- # Instance pages
- pages/instance/VersionPage.ui
- pages/instance/ModFolderPage.ui
- pages/instance/NewModFolderPage.ui
- pages/instance/LogPage.ui
- pages/instance/InstanceSettingsPage.ui
- pages/instance/NotesPage.ui
- pages/instance/ScreenshotsPage.ui
- pages/instance/OtherLogsPage.ui
- pages/instance/LegacyUpgradePage.ui
- pages/instance/ServersPage.ui
- pages/instance/WorldListPage.ui
+ # Instance pages
+ pages/instance/VersionPage.ui
+ pages/instance/ModFolderPage.ui
+ pages/instance/NewModFolderPage.ui
+ pages/instance/LogPage.ui
+ pages/instance/InstanceSettingsPage.ui
+ pages/instance/NotesPage.ui
+ pages/instance/ScreenshotsPage.ui
+ pages/instance/OtherLogsPage.ui
+ pages/instance/LegacyUpgradePage.ui
+ pages/instance/ServersPage.ui
+ pages/instance/WorldListPage.ui
- # Global settings pages
- pages/global/AccountListPage.ui
- pages/global/ExternalToolsPage.ui
- pages/global/JavaPage.ui
- pages/global/MinecraftPage.ui
- pages/global/MultiMCPage.ui
- pages/global/ProxyPage.ui
- pages/global/PasteEEPage.ui
- pages/global/PackagesPage.ui
+ # Global settings pages
+ pages/global/AccountListPage.ui
+ pages/global/ExternalToolsPage.ui
+ pages/global/JavaPage.ui
+ pages/global/MinecraftPage.ui
+ pages/global/MultiMCPage.ui
+ pages/global/ProxyPage.ui
+ pages/global/PasteEEPage.ui
+ pages/global/PackagesPage.ui
- # Platform pages
- pages/modplatform/VanillaPage.ui
- pages/modplatform/FTBPage.ui
- pages/modplatform/TwitchPage.ui
- pages/modplatform/TechnicPage.ui
- pages/modplatform/ImportPage.ui
+ # Platform pages
+ pages/modplatform/VanillaPage.ui
+ pages/modplatform/FTBPage.ui
+ pages/modplatform/TwitchPage.ui
+ pages/modplatform/TechnicPage.ui
+ pages/modplatform/ImportPage.ui
- # Dialogs
- dialogs/CopyInstanceDialog.ui
- dialogs/NewComponentDialog.ui
- dialogs/NewInstanceDialog.ui
- dialogs/AboutDialog.ui
- dialogs/ProgressDialog.ui
- dialogs/IconPickerDialog.ui
- dialogs/ProfileSelectDialog.ui
- dialogs/EditAccountDialog.ui
- dialogs/ExportInstanceDialog.ui
- dialogs/LoginDialog.ui
- dialogs/UpdateDialog.ui
- dialogs/NotificationDialog.ui
- dialogs/SkinUploadDialog.ui
+ # Dialogs
+ dialogs/CopyInstanceDialog.ui
+ dialogs/NewComponentDialog.ui
+ dialogs/NewInstanceDialog.ui
+ dialogs/AboutDialog.ui
+ dialogs/ProgressDialog.ui
+ dialogs/IconPickerDialog.ui
+ dialogs/ProfileSelectDialog.ui
+ dialogs/EditAccountDialog.ui
+ dialogs/ExportInstanceDialog.ui
+ dialogs/LoginDialog.ui
+ dialogs/UpdateDialog.ui
+ dialogs/NotificationDialog.ui
+ dialogs/SkinUploadDialog.ui
- # Widgets/other
- widgets/CustomCommands.ui
- widgets/MCModInfoFrame.ui
+ # Widgets/other
+ widgets/CustomCommands.ui
+ widgets/MCModInfoFrame.ui
)
set(MULTIMC_QRCS
- resources/assets/assets.qrc
- 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/flat/flat.qrc
- resources/documents/documents.qrc
+ resources/assets/assets.qrc
+ 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/flat/flat.qrc
+ resources/documents/documents.qrc
)
######## Windows resource files ########
if(WIN32)
- set(MULTIMC_RCS resources/multimc.rc)
+ set(MULTIMC_RCS resources/multimc.rc)
endif()
# Qt 5 stuff
@@ -303,89 +303,89 @@ qt5_add_resources(MULTIMC_RESOURCES ${MULTIMC_QRCS})
add_executable(MultiMC MACOSX_BUNDLE WIN32 ${MULTIMC_SOURCES} ${MULTIMC_UI} ${MULTIMC_RESOURCES} ${MULTIMC_RCS})
target_link_libraries(MultiMC MultiMC_gui ${QUAZIP_LIBRARIES} hoedown MultiMC_rainbow LocalPeer ganalytics)
if(DEFINED MultiMC_APP_BINARY_NAME)
- set_target_properties(MultiMC PROPERTIES OUTPUT_NAME "${MultiMC_APP_BINARY_NAME}")
+ set_target_properties(MultiMC PROPERTIES OUTPUT_NAME "${MultiMC_APP_BINARY_NAME}")
endif()
if(DEFINED MultiMC_BINARY_RPATH)
- SET_TARGET_PROPERTIES(MultiMC PROPERTIES INSTALL_RPATH "${MultiMC_BINARY_RPATH}")
+ SET_TARGET_PROPERTIES(MultiMC PROPERTIES INSTALL_RPATH "${MultiMC_BINARY_RPATH}")
endif()
if(DEFINED MultiMC_APP_BINARY_DEFS)
- target_compile_definitions(MultiMC PRIVATE ${MultiMC_APP_BINARY_DEFS})
+ target_compile_definitions(MultiMC PRIVATE ${MultiMC_APP_BINARY_DEFS})
endif()
install(TARGETS MultiMC
- BUNDLE DESTINATION ${BUNDLE_DEST_DIR} COMPONENT Runtime
- LIBRARY DESTINATION ${LIBRARY_DEST_DIR} COMPONENT Runtime
- RUNTIME DESTINATION ${BINARY_DEST_DIR} COMPONENT Runtime
+ BUNDLE DESTINATION ${BUNDLE_DEST_DIR} COMPONENT Runtime
+ LIBRARY DESTINATION ${LIBRARY_DEST_DIR} COMPONENT Runtime
+ RUNTIME DESTINATION ${BINARY_DEST_DIR} COMPONENT Runtime
)
#### The MultiMC bundle mess! ####
# Bundle utilities are used to complete the portable packages - they add all the libraries that would otherwise be missing on the target system.
# NOTE: it seems that this absolutely has to be here, and nowhere else.
if(INSTALL_BUNDLE STREQUAL "full")
- # Add qt.conf - this makes Qt stop looking for things outside the bundle
- install(
- CODE "file(WRITE \"\${CMAKE_INSTALL_PREFIX}/${RESOURCES_DEST_DIR}/qt.conf\" \" \")"
- COMPONENT Runtime
- )
- # Bundle plugins
- 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|webp" 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|webp" EXCLUDE
- REGEX "d\\." EXCLUDE
- REGEX "_debug\\." EXCLUDE
- REGEX "\\.dSYM" EXCLUDE
- )
- # Icon engines
- install(
- DIRECTORY "${QT_PLUGINS_DIR}/iconengines"
- DESTINATION ${PLUGIN_DEST_DIR}
- COMPONENT Runtime
- REGEX "fontawesome" EXCLUDE
- REGEX "d\\." EXCLUDE
- REGEX "_debug\\." EXCLUDE
- REGEX "\\.dSYM" 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
- REGEX "\\.dSYM" EXCLUDE
- )
- 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)
+ # Add qt.conf - this makes Qt stop looking for things outside the bundle
+ install(
+ CODE "file(WRITE \"\${CMAKE_INSTALL_PREFIX}/${RESOURCES_DEST_DIR}/qt.conf\" \" \")"
+ COMPONENT Runtime
+ )
+ # Bundle plugins
+ 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|webp" 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|webp" EXCLUDE
+ REGEX "d\\." EXCLUDE
+ REGEX "_debug\\." EXCLUDE
+ REGEX "\\.dSYM" EXCLUDE
+ )
+ # Icon engines
+ install(
+ DIRECTORY "${QT_PLUGINS_DIR}/iconengines"
+ DESTINATION ${PLUGIN_DEST_DIR}
+ COMPONENT Runtime
+ REGEX "fontawesome" EXCLUDE
+ REGEX "d\\." EXCLUDE
+ REGEX "_debug\\." EXCLUDE
+ REGEX "\\.dSYM" 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
+ REGEX "\\.dSYM" EXCLUDE
+ )
+ 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)
endif()
diff --git a/cmake/GetGitRevisionDescription.cmake b/cmake/GetGitRevisionDescription.cmake
index 85eae156..39c2707b 100644
--- a/cmake/GetGitRevisionDescription.cmake
+++ b/cmake/GetGitRevisionDescription.cmake
@@ -31,7 +31,7 @@
# http://www.boost.org/LICENSE_1_0.txt)
if(__get_git_revision_description)
- return()
+ return()
endif()
set(__get_git_revision_description YES)
@@ -40,91 +40,91 @@ set(__get_git_revision_description YES)
get_filename_component(_gitdescmoddir ${CMAKE_CURRENT_LIST_FILE} PATH)
function(get_git_head_revision _refspecvar _hashvar)
- set(GIT_PARENT_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
- set(GIT_DIR "${GIT_PARENT_DIR}/.git")
- while(NOT EXISTS "${GIT_DIR}") # .git dir not found, search parent directories
- set(GIT_PREVIOUS_PARENT "${GIT_PARENT_DIR}")
- get_filename_component(GIT_PARENT_DIR ${GIT_PARENT_DIR} PATH)
- if(GIT_PARENT_DIR STREQUAL GIT_PREVIOUS_PARENT)
- # We have reached the root directory, we are not in git
- set(${_refspecvar} "GITDIR-NOTFOUND" PARENT_SCOPE)
- set(${_hashvar} "GITDIR-NOTFOUND" PARENT_SCOPE)
- return()
- endif()
- set(GIT_DIR "${GIT_PARENT_DIR}/.git")
- endwhile()
- # check if this is a submodule
- if(NOT IS_DIRECTORY ${GIT_DIR})
- file(READ ${GIT_DIR} submodule)
- string(REGEX REPLACE "gitdir: (.*)\n$" "\\1" GIT_DIR_RELATIVE ${submodule})
- get_filename_component(SUBMODULE_DIR ${GIT_DIR} PATH)
- get_filename_component(GIT_DIR ${SUBMODULE_DIR}/${GIT_DIR_RELATIVE} ABSOLUTE)
- endif()
- set(GIT_DATA "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/git-data")
- if(NOT EXISTS "${GIT_DATA}")
- file(MAKE_DIRECTORY "${GIT_DATA}")
- endif()
+ set(GIT_PARENT_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
+ set(GIT_DIR "${GIT_PARENT_DIR}/.git")
+ while(NOT EXISTS "${GIT_DIR}") # .git dir not found, search parent directories
+ set(GIT_PREVIOUS_PARENT "${GIT_PARENT_DIR}")
+ get_filename_component(GIT_PARENT_DIR ${GIT_PARENT_DIR} PATH)
+ if(GIT_PARENT_DIR STREQUAL GIT_PREVIOUS_PARENT)
+ # We have reached the root directory, we are not in git
+ set(${_refspecvar} "GITDIR-NOTFOUND" PARENT_SCOPE)
+ set(${_hashvar} "GITDIR-NOTFOUND" PARENT_SCOPE)
+ return()
+ endif()
+ set(GIT_DIR "${GIT_PARENT_DIR}/.git")
+ endwhile()
+ # check if this is a submodule
+ if(NOT IS_DIRECTORY ${GIT_DIR})
+ file(READ ${GIT_DIR} submodule)
+ string(REGEX REPLACE "gitdir: (.*)\n$" "\\1" GIT_DIR_RELATIVE ${submodule})
+ get_filename_component(SUBMODULE_DIR ${GIT_DIR} PATH)
+ get_filename_component(GIT_DIR ${SUBMODULE_DIR}/${GIT_DIR_RELATIVE} ABSOLUTE)
+ endif()
+ set(GIT_DATA "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/git-data")
+ if(NOT EXISTS "${GIT_DATA}")
+ file(MAKE_DIRECTORY "${GIT_DATA}")
+ endif()
- if(NOT EXISTS "${GIT_DIR}/HEAD")
- return()
- endif()
- set(HEAD_FILE "${GIT_DATA}/HEAD")
- configure_file("${GIT_DIR}/HEAD" "${HEAD_FILE}" COPYONLY)
+ if(NOT EXISTS "${GIT_DIR}/HEAD")
+ return()
+ endif()
+ set(HEAD_FILE "${GIT_DATA}/HEAD")
+ configure_file("${GIT_DIR}/HEAD" "${HEAD_FILE}" COPYONLY)
- configure_file("${_gitdescmoddir}/GetGitRevisionDescription.cmake.in"
- "${GIT_DATA}/grabRef.cmake"
- @ONLY)
- include("${GIT_DATA}/grabRef.cmake")
+ configure_file("${_gitdescmoddir}/GetGitRevisionDescription.cmake.in"
+ "${GIT_DATA}/grabRef.cmake"
+ @ONLY)
+ include("${GIT_DATA}/grabRef.cmake")
- set(${_refspecvar} "${HEAD_REF}" PARENT_SCOPE)
- set(${_hashvar} "${HEAD_HASH}" PARENT_SCOPE)
+ set(${_refspecvar} "${HEAD_REF}" PARENT_SCOPE)
+ set(${_hashvar} "${HEAD_HASH}" PARENT_SCOPE)
endfunction()
function(git_describe _var)
- if(NOT GIT_FOUND)
- find_package(Git QUIET)
- endif()
- get_git_head_revision(refspec hash)
- if(NOT GIT_FOUND)
- set(${_var} "GIT-NOTFOUND" PARENT_SCOPE)
- return()
- endif()
- if(NOT hash)
- set(${_var} "HEAD-HASH-NOTFOUND" PARENT_SCOPE)
- return()
- endif()
+ if(NOT GIT_FOUND)
+ find_package(Git QUIET)
+ endif()
+ get_git_head_revision(refspec hash)
+ if(NOT GIT_FOUND)
+ set(${_var} "GIT-NOTFOUND" PARENT_SCOPE)
+ return()
+ endif()
+ if(NOT hash)
+ set(${_var} "HEAD-HASH-NOTFOUND" PARENT_SCOPE)
+ return()
+ endif()
- # TODO sanitize
- #if((${ARGN}" MATCHES "&&") OR
- # (ARGN MATCHES "||") OR
- # (ARGN MATCHES "\\;"))
- # message("Please report the following error to the project!")
- # message(FATAL_ERROR "Looks like someone's doing something nefarious with git_describe! Passed arguments ${ARGN}")
- #endif()
+ # TODO sanitize
+ #if((${ARGN}" MATCHES "&&") OR
+ # (ARGN MATCHES "||") OR
+ # (ARGN MATCHES "\\;"))
+ # message("Please report the following error to the project!")
+ # message(FATAL_ERROR "Looks like someone's doing something nefarious with git_describe! Passed arguments ${ARGN}")
+ #endif()
- #message(STATUS "Arguments to execute_process: ${ARGN}")
+ #message(STATUS "Arguments to execute_process: ${ARGN}")
- execute_process(COMMAND
- "${GIT_EXECUTABLE}"
- describe
- ${hash}
- ${ARGN}
- WORKING_DIRECTORY
- "${CMAKE_CURRENT_SOURCE_DIR}"
- RESULT_VARIABLE
- res
- OUTPUT_VARIABLE
- out
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if(NOT res EQUAL 0)
- set(out "${out}-${res}-NOTFOUND")
- endif()
+ execute_process(COMMAND
+ "${GIT_EXECUTABLE}"
+ describe
+ ${hash}
+ ${ARGN}
+ WORKING_DIRECTORY
+ "${CMAKE_CURRENT_SOURCE_DIR}"
+ RESULT_VARIABLE
+ res
+ OUTPUT_VARIABLE
+ out
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(NOT res EQUAL 0)
+ set(out "${out}-${res}-NOTFOUND")
+ endif()
- set(${_var} "${out}" PARENT_SCOPE)
+ set(${_var} "${out}" PARENT_SCOPE)
endfunction()
function(git_get_exact_tag _var)
- git_describe(out --exact-match ${ARGN})
- set(${_var} "${out}" PARENT_SCOPE)
+ git_describe(out --exact-match ${ARGN})
+ set(${_var} "${out}" PARENT_SCOPE)
endfunction()
diff --git a/cmake/GetGitRevisionDescription.cmake.in b/cmake/GetGitRevisionDescription.cmake.in
index 6d8b708e..04db9a8e 100644
--- a/cmake/GetGitRevisionDescription.cmake.in
+++ b/cmake/GetGitRevisionDescription.cmake.in
@@ -19,23 +19,23 @@ file(READ "@HEAD_FILE@" HEAD_CONTENTS LIMIT 1024)
string(STRIP "${HEAD_CONTENTS}" HEAD_CONTENTS)
if(HEAD_CONTENTS MATCHES "ref")
- # named branch
- string(REPLACE "ref: " "" HEAD_REF "${HEAD_CONTENTS}")
- if(EXISTS "@GIT_DIR@/${HEAD_REF}")
- configure_file("@GIT_DIR@/${HEAD_REF}" "@GIT_DATA@/head-ref" COPYONLY)
- else()
- configure_file("@GIT_DIR@/packed-refs" "@GIT_DATA@/packed-refs" COPYONLY)
- file(READ "@GIT_DATA@/packed-refs" PACKED_REFS)
- if(${PACKED_REFS} MATCHES "([0-9a-z]*) ${HEAD_REF}")
- set(HEAD_HASH "${CMAKE_MATCH_1}")
- endif()
- endif()
+ # named branch
+ string(REPLACE "ref: " "" HEAD_REF "${HEAD_CONTENTS}")
+ if(EXISTS "@GIT_DIR@/${HEAD_REF}")
+ configure_file("@GIT_DIR@/${HEAD_REF}" "@GIT_DATA@/head-ref" COPYONLY)
+ else()
+ configure_file("@GIT_DIR@/packed-refs" "@GIT_DATA@/packed-refs" COPYONLY)
+ file(READ "@GIT_DATA@/packed-refs" PACKED_REFS)
+ if(${PACKED_REFS} MATCHES "([0-9a-z]*) ${HEAD_REF}")
+ set(HEAD_HASH "${CMAKE_MATCH_1}")
+ endif()
+ endif()
else()
- # detached HEAD
- configure_file("@GIT_DIR@/HEAD" "@GIT_DATA@/head-ref" COPYONLY)
+ # detached HEAD
+ configure_file("@GIT_DIR@/HEAD" "@GIT_DATA@/head-ref" COPYONLY)
endif()
if(NOT HEAD_HASH)
- file(READ "@GIT_DATA@/head-ref" HEAD_HASH LIMIT 1024)
- string(STRIP "${HEAD_HASH}" HEAD_HASH)
+ file(READ "@GIT_DATA@/head-ref" HEAD_HASH LIMIT 1024)
+ string(STRIP "${HEAD_HASH}" HEAD_HASH)
endif()
diff --git a/cmake/GitFunctions.cmake b/cmake/GitFunctions.cmake
index 898e7b01..a055b5de 100644
--- a/cmake/GitFunctions.cmake
+++ b/cmake/GitFunctions.cmake
@@ -9,29 +9,29 @@ include(CMakeParseArguments)
if(GIT_FOUND)
function(git_run)
- set(oneValueArgs OUTPUT_VAR DEFAULT)
- set(multiValueArgs COMMAND)
- cmake_parse_arguments(GIT_RUN "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
+ set(oneValueArgs OUTPUT_VAR DEFAULT)
+ set(multiValueArgs COMMAND)
+ cmake_parse_arguments(GIT_RUN "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
- execute_process(COMMAND ${GIT_EXECUTABLE} ${GIT_RUN_COMMAND}
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
- RESULT_VARIABLE GIT_RESULTVAR
- OUTPUT_VARIABLE GIT_OUTVAR
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
+ execute_process(COMMAND ${GIT_EXECUTABLE} ${GIT_RUN_COMMAND}
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+ RESULT_VARIABLE GIT_RESULTVAR
+ OUTPUT_VARIABLE GIT_OUTVAR
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
- if(GIT_RESULTVAR EQUAL 0)
- set(${GIT_RUN_OUTPUT_VAR} "${GIT_OUTVAR}" PARENT_SCOPE)
- else()
- set(${GIT_RUN_OUTPUT_VAR} ${GIT_RUN_DEFAULT})
- message(STATUS "Failed to run Git: ${GIT_OUTVAR}")
- endif()
+ if(GIT_RESULTVAR EQUAL 0)
+ set(${GIT_RUN_OUTPUT_VAR} "${GIT_OUTVAR}" PARENT_SCOPE)
+ else()
+ set(${GIT_RUN_OUTPUT_VAR} ${GIT_RUN_DEFAULT})
+ message(STATUS "Failed to run Git: ${GIT_OUTVAR}")
+ endif()
endfunction()
else()
function(git_run)
- set(oneValueArgs OUTPUT_VAR DEFAULT)
- set(multiValueArgs COMMAND)
- cmake_parse_arguments(GIT_RUN "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
- set(${GIT_RUN_OUTPUT_VAR} ${GIT_RUN_DEFAULT})
+ set(oneValueArgs OUTPUT_VAR DEFAULT)
+ set(multiValueArgs COMMAND)
+ cmake_parse_arguments(GIT_RUN "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
+ set(${GIT_RUN_OUTPUT_VAR} ${GIT_RUN_DEFAULT})
endfunction(git_run)
endif()
diff --git a/cmake/MacOSXBundleInfo.plist.in b/cmake/MacOSXBundleInfo.plist.in
index 809fab00..050123ee 100644
--- a/cmake/MacOSXBundleInfo.plist.in
+++ b/cmake/MacOSXBundleInfo.plist.in
@@ -2,39 +2,39 @@
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
- <key>NSPrincipalClass</key>
- <string>NSApplication</string>
- <key>NSHighResolutionCapable</key>
- <string>True</string>
- <key>CFBundleDevelopmentRegion</key>
- <string>English</string>
- <key>CFBundleExecutable</key>
- <string>${MACOSX_BUNDLE_EXECUTABLE_NAME}</string>
- <key>CFBundleGetInfoString</key>
- <string>${MACOSX_BUNDLE_INFO_STRING}</string>
- <key>CFBundleIconFile</key>
- <string>${MACOSX_BUNDLE_ICON_FILE}</string>
- <key>CFBundleIdentifier</key>
- <string>${MACOSX_BUNDLE_GUI_IDENTIFIER}</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>CFBundleLongVersionString</key>
- <string>${MACOSX_BUNDLE_LONG_VERSION_STRING}</string>
- <key>CFBundleName</key>
- <string>${MACOSX_BUNDLE_BUNDLE_NAME}</string>
- <key>CFBundlePackageType</key>
- <string>APPL</string>
- <key>CFBundleShortVersionString</key>
- <string>${MACOSX_BUNDLE_SHORT_VERSION_STRING}</string>
- <key>CFBundleSignature</key>
- <string>????</string>
- <key>CFBundleVersion</key>
- <string>${MACOSX_BUNDLE_BUNDLE_VERSION}</string>
- <key>CSResourcesFileMapped</key>
- <true/>
- <key>LSRequiresCarbon</key>
- <true/>
- <key>NSHumanReadableCopyright</key>
- <string>${MACOSX_BUNDLE_COPYRIGHT}</string>
+ <key>NSPrincipalClass</key>
+ <string>NSApplication</string>
+ <key>NSHighResolutionCapable</key>
+ <string>True</string>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>${MACOSX_BUNDLE_EXECUTABLE_NAME}</string>
+ <key>CFBundleGetInfoString</key>
+ <string>${MACOSX_BUNDLE_INFO_STRING}</string>
+ <key>CFBundleIconFile</key>
+ <string>${MACOSX_BUNDLE_ICON_FILE}</string>
+ <key>CFBundleIdentifier</key>
+ <string>${MACOSX_BUNDLE_GUI_IDENTIFIER}</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleLongVersionString</key>
+ <string>${MACOSX_BUNDLE_LONG_VERSION_STRING}</string>
+ <key>CFBundleName</key>
+ <string>${MACOSX_BUNDLE_BUNDLE_NAME}</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>${MACOSX_BUNDLE_SHORT_VERSION_STRING}</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>${MACOSX_BUNDLE_BUNDLE_VERSION}</string>
+ <key>CSResourcesFileMapped</key>
+ <true/>
+ <key>LSRequiresCarbon</key>
+ <true/>
+ <key>NSHumanReadableCopyright</key>
+ <string>${MACOSX_BUNDLE_COPYRIGHT}</string>
</dict>
</plist>
diff --git a/cmake/UnitTest.cmake b/cmake/UnitTest.cmake
index 2552b32c..9f2bc269 100644
--- a/cmake/UnitTest.cmake
+++ b/cmake/UnitTest.cmake
@@ -5,44 +5,44 @@ set(TEST_RESOURCE_PATH ${CMAKE_CURRENT_LIST_DIR})
message(${TEST_RESOURCE_PATH})
function(add_unit_test name)
- set(options "")
- set(oneValueArgs DATA)
- set(multiValueArgs SOURCES LIBS)
-
- cmake_parse_arguments(OPT "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
-
- if(WIN32)
- add_executable(${name}_test ${OPT_SOURCES} ${TEST_RESOURCE_PATH}/UnitTest/test.rc)
- else()
- add_executable(${name}_test ${OPT_SOURCES})
- endif()
-
- if(NOT "${OPT_DATA}" STREQUAL "")
- set(TEST_DATA_PATH "${CMAKE_CURRENT_BINARY_DIR}/data")
- set(TEST_DATA_PATH_SRC "${CMAKE_CURRENT_SOURCE_DIR}/${OPT_DATA}")
- message("From ${TEST_DATA_PATH_SRC} to ${TEST_DATA_PATH}")
- string(REGEX REPLACE "[/\\:]" "_" DATA_TARGET_NAME "${TEST_DATA_PATH_SRC}")
- if(UNIX)
- # on unix we get the third / from the filename
- set(TEST_DATA_URL "file://${TEST_DATA_PATH}")
- else()
- # we don't on windows, so we have to add it ourselves
- set(TEST_DATA_URL "file:///${TEST_DATA_PATH}")
- endif()
- if(NOT TARGET "${DATA_TARGET_NAME}")
- add_custom_target(${DATA_TARGET_NAME})
- add_dependencies(${name}_test ${DATA_TARGET_NAME})
- add_custom_command(
- TARGET ${DATA_TARGET_NAME}
- COMMAND ${CMAKE_COMMAND} "-DTEST_DATA_URL=${TEST_DATA_URL}" -DSOURCE=${TEST_DATA_PATH_SRC} -DDESTINATION=${TEST_DATA_PATH} -P ${TEST_RESOURCE_PATH}/UnitTest/generate_test_data.cmake
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
- )
- endif()
- endif()
-
- target_link_libraries(${name}_test Qt5::Test ${OPT_LIBS})
-
- target_include_directories(${name}_test PRIVATE "${TEST_RESOURCE_PATH}/UnitTest/")
-
- add_test(NAME ${name} COMMAND ${name}_test WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+ set(options "")
+ set(oneValueArgs DATA)
+ set(multiValueArgs SOURCES LIBS)
+
+ cmake_parse_arguments(OPT "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
+
+ if(WIN32)
+ add_executable(${name}_test ${OPT_SOURCES} ${TEST_RESOURCE_PATH}/UnitTest/test.rc)
+ else()
+ add_executable(${name}_test ${OPT_SOURCES})
+ endif()
+
+ if(NOT "${OPT_DATA}" STREQUAL "")
+ set(TEST_DATA_PATH "${CMAKE_CURRENT_BINARY_DIR}/data")
+ set(TEST_DATA_PATH_SRC "${CMAKE_CURRENT_SOURCE_DIR}/${OPT_DATA}")
+ message("From ${TEST_DATA_PATH_SRC} to ${TEST_DATA_PATH}")
+ string(REGEX REPLACE "[/\\:]" "_" DATA_TARGET_NAME "${TEST_DATA_PATH_SRC}")
+ if(UNIX)
+ # on unix we get the third / from the filename
+ set(TEST_DATA_URL "file://${TEST_DATA_PATH}")
+ else()
+ # we don't on windows, so we have to add it ourselves
+ set(TEST_DATA_URL "file:///${TEST_DATA_PATH}")
+ endif()
+ if(NOT TARGET "${DATA_TARGET_NAME}")
+ add_custom_target(${DATA_TARGET_NAME})
+ add_dependencies(${name}_test ${DATA_TARGET_NAME})
+ add_custom_command(
+ TARGET ${DATA_TARGET_NAME}
+ COMMAND ${CMAKE_COMMAND} "-DTEST_DATA_URL=${TEST_DATA_URL}" -DSOURCE=${TEST_DATA_PATH_SRC} -DDESTINATION=${TEST_DATA_PATH} -P ${TEST_RESOURCE_PATH}/UnitTest/generate_test_data.cmake
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ )
+ endif()
+ endif()
+
+ target_link_libraries(${name}_test Qt5::Test ${OPT_LIBS})
+
+ target_include_directories(${name}_test PRIVATE "${TEST_RESOURCE_PATH}/UnitTest/")
+
+ add_test(NAME ${name} COMMAND ${name}_test WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
endfunction()
diff --git a/cmake/UnitTest/TestUtil.h b/cmake/UnitTest/TestUtil.h
index 84f18a2e..a478bdde 100644
--- a/cmake/UnitTest/TestUtil.h
+++ b/cmake/UnitTest/TestUtil.h
@@ -11,16 +11,16 @@
class TestsInternal
{
public:
- static QByteArray readFile(const QString &fileName)
- {
- QFile f(fileName);
- f.open(QFile::ReadOnly);
- return f.readAll();
- }
- static QString readFileUtf8(const QString &fileName)
- {
- return QString::fromUtf8(readFile(fileName));
- }
+ static QByteArray readFile(const QString &fileName)
+ {
+ QFile f(fileName);
+ f.open(QFile::ReadOnly);
+ return f.readAll();
+ }
+ static QString readFileUtf8(const QString &fileName)
+ {
+ return QString::fromUtf8(readFile(fileName));
+ }
};
#define MULTIMC_GET_TEST_FILE(file) TestsInternal::readFile(QFINDTESTDATA(file))
diff --git a/cmake/UnitTest/generate_test_data.cmake b/cmake/UnitTest/generate_test_data.cmake
index d9250fab..d0bd4ab1 100644
--- a/cmake/UnitTest/generate_test_data.cmake
+++ b/cmake/UnitTest/generate_test_data.cmake
@@ -2,22 +2,22 @@
# variables. Create destination directory if it does not exist.
function(configure_files srcDir destDir)
- make_directory(${destDir})
+ make_directory(${destDir})
- file(GLOB templateFiles RELATIVE ${srcDir} ${srcDir}/*)
- foreach(templateFile ${templateFiles})
- set(srcTemplatePath ${srcDir}/${templateFile})
- if(NOT IS_DIRECTORY ${srcTemplatePath})
- configure_file(
- ${srcTemplatePath}
- ${destDir}/${templateFile}
- @ONLY
- NEWLINE_STYLE LF
- )
- else()
- configure_files("${srcTemplatePath}" "${destDir}/${templateFile}")
- endif()
- endforeach()
+ file(GLOB templateFiles RELATIVE ${srcDir} ${srcDir}/*)
+ foreach(templateFile ${templateFiles})
+ set(srcTemplatePath ${srcDir}/${templateFile})
+ if(NOT IS_DIRECTORY ${srcTemplatePath})
+ configure_file(
+ ${srcTemplatePath}
+ ${destDir}/${templateFile}
+ @ONLY
+ NEWLINE_STYLE LF
+ )
+ else()
+ configure_files("${srcTemplatePath}" "${destDir}/${templateFile}")
+ endif()
+ endforeach()
endfunction()
configure_files(${SOURCE} ${DESTINATION}) \ No newline at end of file