From dcf1b645691a1d31cbbad78a9c6c9dca8d472346 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 8 Oct 2013 12:32:28 -0400 Subject: OS X: Set CMake.app bundle Info.plist fields (#11694) Use the Apple Info.plist reference documentation: Core Foundation Keys https://developer.apple.com/library/mac/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html Launch Services Keys https://developer.apple.com/library/mac/documentation/general/Reference/InfoPlistKeyReference/Articles/LaunchServicesKeys.html Cocoa Keys https://developer.apple.com/library/mac/documentation/general/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html modify the Info.plist we create for cmake-gui to add/set fields CFBundleShortVersionString = The release-version-number string LSApplicationCategoryType = UTI that categorizes the app for the App Store NSHumanReadableCopyright = Specifies the copyright notice and drop fields CFBundleGetInfoString CFBundleLongVersionString LSRequiresCarbon Also prepare to set CFBundleVersion = The build-version-number string but leave it commented out as TBD (To Be Determined) for now. The version fields must have form .. with integer components. While at it, rename the bundle to end in "." instead of "-" so that it is consistent with the version number and does not look like a packaging increment suffix. --- CMakeLists.txt | 5 +++-- Source/QtDialog/CMakeLists.txt | 7 ++++++- Source/QtDialog/Info.plist.in | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 Source/QtDialog/Info.plist.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 1fbbe08..3ff65d8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -529,8 +529,9 @@ endif() if(BUILD_QtDialog) if(APPLE) - set(CMAKE_BUNDLE_NAME - "CMake ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}-${CMake_VERSION_PATCH}") + set(CMAKE_BUNDLE_VERSION + "${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}.${CMake_VERSION_PATCH}") + set(CMAKE_BUNDLE_NAME "CMake ${CMAKE_BUNDLE_VERSION}") set(CMAKE_BUNDLE_LOCATION "${CMAKE_INSTALL_PREFIX}") # make sure CMAKE_INSTALL_PREFIX ends in / string(LENGTH "${CMAKE_INSTALL_PREFIX}" LEN) diff --git a/Source/QtDialog/CMakeLists.txt b/Source/QtDialog/CMakeLists.txt index ef25294..15f9ef1 100644 --- a/Source/QtDialog/CMakeLists.txt +++ b/Source/QtDialog/CMakeLists.txt @@ -112,7 +112,12 @@ endif() if(APPLE) set_target_properties(cmake-gui PROPERTIES - OUTPUT_NAME ${CMAKE_BUNDLE_NAME}) + OUTPUT_NAME ${CMAKE_BUNDLE_NAME} + MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/Info.plist.in" + MACOSX_BUNDLE_SHORT_VERSION_STRING "${CMAKE_BUNDLE_VERSION}" + # TBD: MACOSX_BUNDLE_BUNDLE_VERSION "${CMAKE_BUNDLE_VERSION}" + MACOSX_BUNDLE_COPYRIGHT "Copyright 2000-2013 Kitware, Inc." + ) endif() set(CMAKE_INSTALL_DESTINATION_ARGS BUNDLE DESTINATION "${CMAKE_BUNDLE_LOCATION}") diff --git a/Source/QtDialog/Info.plist.in b/Source/QtDialog/Info.plist.in new file mode 100644 index 0000000..b9c4af5 --- /dev/null +++ b/Source/QtDialog/Info.plist.in @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${MACOSX_BUNDLE_EXECUTABLE_NAME} + 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} + CFBundleSignature + ???? + CFBundleVersion + ${MACOSX_BUNDLE_BUNDLE_VERSION} + CSResourcesFileMapped + + LSApplicationCategoryType + public.app-category.developer-tools + NSHumanReadableCopyright + ${MACOSX_BUNDLE_COPYRIGHT} + + -- cgit v0.12