From e03b02d27092a0684b252fe958ad69aac102da42 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Fri, 8 Oct 2021 11:48:52 -0700 Subject: [PATCH] cmake: filled out macOS Info.plist Fixes #1762 --- CMakeLists.txt | 5 +- app/CMakeLists.txt | 7 ++- app/main.cpp | 14 +---- app/packaging/macos/MacOSXBundleInfo.plist.in | 56 +++++++++---------- app/version.cpp | 7 +-- app/version.h | 3 +- 6 files changed, 42 insertions(+), 50 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d5baf5483..93f65f3d4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -54,7 +54,7 @@ else() ) endif() -set(OLIVE_DEFINITIONS -DAPPVERSION="${PROJECT_VERSION}" -DQT_DEPRECATED_WARNINGS) +set(OLIVE_DEFINITIONS -DQT_DEPRECATED_WARNINGS) list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") @@ -157,6 +157,7 @@ else() endif() # Generate Git hash +set(PROJECT_LONG_VERSION ${PROJECT_VERSION}) if(EXISTS "${CMAKE_SOURCE_DIR}/.git") find_package(Git) if(GIT_FOUND) @@ -165,6 +166,8 @@ if(EXISTS "${CMAKE_SOURCE_DIR}/.git") OUTPUT_VARIABLE GIT_HASH OUTPUT_STRIP_TRAILING_WHITESPACE ) + + set(PROJECT_LONG_VERSION ${PROJECT_VERSION}-${GIT_HASH}) endif() endif() diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index 12628b94e..5d63cfa75 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -67,7 +67,7 @@ add_library(olive-version-obj ) target_link_libraries(olive-version-obj PRIVATE Qt5::Core) if(DEFINED GIT_HASH) - target_compile_options(olive-version-obj PRIVATE -DGITHASH="${GIT_HASH}") + target_compile_options(olive-version-obj PRIVATE -DAPPVERSION="${PROJECT_VERSION}" -DAPPVERSIONLONG="${PROJECT_LONG_VERSION}" ) endif() # Add main library @@ -112,6 +112,11 @@ elseif(APPLE) MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/packaging/macos/MacOSXBundleInfo.plist.in MACOSX_BUNDLE_GUI_IDENTIFIER org.olivevideoeditor.Olive MACOSX_BUNDLE_ICON_FILE olive.icns + MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} + MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION} + MACOSX_BUNDLE_BUNDLE_NAME "Olive" + MACOSX_BUNDLE_INFO_STRING "Olive ${PROJECT_LONG_VERSION}" + MACOSX_BUNDLE_COPYRIGHT "©2018-2021 Olive Studios LLC and others. Published under the GNU General Public License version 3.0." RESOURCE "${OLIVE_ICON}" OUTPUT_NAME "Olive" ) diff --git a/app/main.cpp b/app/main.cpp index afcb4a170..8a21126ff 100644 --- a/app/main.cpp +++ b/app/main.cpp @@ -59,22 +59,12 @@ int main(int argc, char *argv[]) // Set up debug handler qInstallMessageHandler(olive::DebugHandler); - // Generate version string - QString app_version = APPVERSION; - if (!olive::kGitHash.isEmpty()) { - // Anything after the hyphen is considered "unimportant" information. Text BEFORE the hyphen is - // used in version checking project files and config files - app_version.append("-"); - app_version.append(olive::kGitHash); - } - // Set application metadata QCoreApplication::setOrganizationName("olivevideoeditor.org"); QCoreApplication::setOrganizationDomain("olivevideoeditor.org"); QCoreApplication::setApplicationName("Olive"); QGuiApplication::setDesktopFileName("org.olivevideoeditor.Olive"); - - QCoreApplication::setApplicationVersion(app_version); + QCoreApplication::setApplicationVersion(olive::kAppVersionLong); // @@ -150,7 +140,7 @@ int main(int argc, char *argv[]) if (version_option->IsSet()) { // Print version - printf("%s\n", app_version.toUtf8().constData()); + printf("%s\n", QCoreApplication::applicationVersion().toUtf8().constData()); return 0; } diff --git a/app/packaging/macos/MacOSXBundleInfo.plist.in b/app/packaging/macos/MacOSXBundleInfo.plist.in index ae08eb0d9..286f53ae2 100644 --- a/app/packaging/macos/MacOSXBundleInfo.plist.in +++ b/app/packaging/macos/MacOSXBundleInfo.plist.in @@ -2,35 +2,31 @@ - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${MACOSX_BUNDLE_EXECUTABLE_NAME} - CFBundleGetInfoString - ${MACOSX_BUNDLE_INFO_STRING} - CFBundleIconFile - ${MACOSX_BUNDLE_ICON_FILE} - CFBundleIdentifier - ${MACOSX_BUNDLE_GUI_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleLongVersionString - ${MACOSX_BUNDLE_LONG_VERSION_STRING} - CFBundleName - ${MACOSX_BUNDLE_BUNDLE_NAME} - CFBundlePackageType - APPL - CFBundleShortVersionString - ${MACOSX_BUNDLE_SHORT_VERSION_STRING} - CFBundleSignature - ???? - CFBundleVersion - ${MACOSX_BUNDLE_BUNDLE_VERSION} - CSResourcesFileMapped - - NSHumanReadableCopyright - ${MACOSX_BUNDLE_COPYRIGHT} - NSPrincipalClass - NSApplication + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${MACOSX_BUNDLE_EXECUTABLE_NAME} + CFBundleGetInfoString + ${MACOSX_BUNDLE_INFO_STRING} + CFBundleIconFile + ${MACOSX_BUNDLE_ICON_FILE} + CFBundleIdentifier + ${MACOSX_BUNDLE_GUI_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${MACOSX_BUNDLE_BUNDLE_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + ${MACOSX_BUNDLE_SHORT_VERSION_STRING} + CFBundleVersion + ${MACOSX_BUNDLE_BUNDLE_VERSION} + CSResourcesFileMapped + + NSHumanReadableCopyright + ${MACOSX_BUNDLE_COPYRIGHT} + NSPrincipalClass + NSApplication diff --git a/app/version.cpp b/app/version.cpp index a87e1c7e8..1eee5aca1 100644 --- a/app/version.cpp +++ b/app/version.cpp @@ -22,10 +22,7 @@ namespace olive { -#ifdef GITHASH -QString kGitHash = QStringLiteral(GITHASH); -#else -QString kGitHash; -#endif +QString kAppVersion = QStringLiteral(APPVERSION); +QString kAppVersionLong = QStringLiteral(APPVERSIONLONG); } diff --git a/app/version.h b/app/version.h index 6c4d126cf..6ba399920 100644 --- a/app/version.h +++ b/app/version.h @@ -25,7 +25,8 @@ namespace olive { -extern QString kGitHash; +extern QString kAppVersion; +extern QString kAppVersionLong; }