|
AUI Framework
master
Cross-platform base for C++ UI apps
|
Provide application info for deployment (i.e. name, author, license, icon, etc...).
aui_app unifies the packaging process across all platforms. For (mostly) all desktop platforms, it acts in collaboration with CPack.
ZIP, TGZDEBNSISWIXExternalFor the targets that require cross-compilation, it requires @ref AUI_BUILD_FOR to be set, and, in fact, does not involve CPack in such case.
For all packaging methods, aui_app assumes it is called once per CMake project. It is relevant for packaging methods that expect one "entrypoint" per package.
aui_app -> Android APKaui_app -> iOS app bundleaui_app -> Linux Flatpakaui_app -> Linux AppImageFor this reason, aui_app populates some empty CPACK_* variables. This approach allows you not to bother about various installation methods but also override the variables if needed.
For more info about packaging methods, see Packaging Your App.
Specify main executable of the application which will be executed when your application is launched.
| Platform | Required | Traits |
|---|---|---|
| Windows | + | |
| Linux | + | |
| macOS | + | |
| Android | + | |
| iOS | + | |
Specify application display name that would appear in system's UIs (i.e., start menu, launchpad, desktop, control panel).
| Platform | Required | Traits |
|---|---|---|
| Windows | + | |
| Linux | + | |
| macOS | + | |
| Android | + | |
| iOS | + | |
APP_NAME populates the following CMake variables (if undefined):
CPACK_BUNDLE_NAME = ${APP_NAME} CPACK_PACKAGE_EXECUTABLES = "${_executable};${APP_NAME}" CPACK_PACKAGE_INSTALL_DIRECTORY = ${APP_NAME} CPACK_PACKAGE_NAME = ${APP_NAME} MACOSX_BUNDLE_BUNDLE_NAME = ${APP_NAME} MACOSX_BUNDLE_EXECUTABLE_NAME = ${APP_NAME} The following additional variables and properties are affected:
_auib_weak_set_target_property(${APP_TARGET} CPACK_DESKTOP_SHORTCUTS "${APP_NAME}")set(APP_APPLE_BUNDLE_IDENTIFIER ${APP_NAME})set(EXECUTABLE_NAME ${APP_NAME})set(PRODUCT_NAME ${APP_NAME})set(_desktop "[Desktop Entry]\nName=${APP_NAME}\nExec=${_executable}\nType=Application\nTerminal=false\nCategories=Utility")set_property(INSTALL bin/$<TARGET_FILE_NAME:${APP_TARGET}> PROPERTY CPACK_DESKTOP_SHORTCUTS "${APP_NAME}")set_property(INSTALL bin/$<TARGET_FILE_NAME:${APP_TARGET}> PROPERTY CPACK_START_MENU_SHORTCUTS "${APP_NAME}")set_target_properties(${APP_TARGET} PROPERTIES OUTPUT_NAME "${APP_NAME}") # rename the bundle to display name Specify SVG icon location (defaults to icon.svg if exists).
See Setting App Icon for best practices.
| Platform | Required | Traits |
|---|---|---|
| Windows | generates *.ico and *.bmp files from your svg | |
| Linux | + | generates Freedesktop-compliant icons from your svg |
| macOS | + | generates *.icns file from your svg |
| Android | + | generates icon assets from your svg |
| iOS | + | generates *.icns file from your svg |
Using aui.toolbox, aui_app generates image assets from your icon depending on the app packaging method chosen.
APP_ICON populates the following CMake variables (if undefined):
CPACK_INNOSETUP_ICON_FILE = ${_ico} CPACK_INNOSETUP_SETUP_WizardSmallImageFile = ${_ico} CPACK_PACKAGE_ICON = ${_ico} CPACK_WIX_PRODUCT_ICON = ${_ico} CPACK_WIX_UI_BANNER = ${_ico} CPACK_WIX_UI_DIALOG = ${_ico} Specify application author's name or company.
| Platform | Required | Traits |
|---|---|---|
| Windows | ||
| Linux | ||
| macOS | ||
| Android | ||
| iOS | ||
APP_VENDOR populates the following CMake variables (if undefined):
CPACK_PACKAGE_VENDOR = ${APP_VENDOR} Specify application copyright string (not file)
| Platform | Required | Traits |
|---|---|---|
| Windows | ||
| Linux | does not matter | |
| macOS | + | |
| Android | ||
| iOS | + | |
APP_COPYRIGHT populates the following CMake variables (if undefined):
MACOSX_BUNDLE_COPYRIGHT = ${APP_COPYRIGHT} Specify application version. If not set, the value of PROJECT_VERSION used instead.
| Platform | Required | Traits |
|---|---|---|
| Windows | + | |
| Linux | + | |
| macOS | + | |
| Android | + | |
| iOS | + | |
APP_VERSION populates the following CMake variables (if undefined):
CPACK_PACKAGE_FILE_NAME = ${CPACK_PACKAGE_NAME}-${APP_VERSION}-${_cmake_system_processor_lower} CPACK_PACKAGE_VERSION = ${APP_VERSION} MACOSX_BUNDLE_BUNDLE_VERSION = ${APP_VERSION} MACOSX_BUNDLE_LONG_VERSION_STRING = ${APP_VERSION} MACOSX_BUNDLE_SHORT_VERSION_STRING = ${APP_VERSION} The following additional variables and properties are affected:
set(_aui_package_file_name "${CPACK_PACKAGE_NAME}-${APP_VERSION}-${_aui_package_file_name}") By default aui_app includes CPack in order to allow to generate packages using CPack. You can disable this behaviour by specifying NO_INCLUDE_CPACK flag.
Android app package name.
| Platform | Required | Traits |
|---|---|---|
| Windows | ||
| Linux | ||
| macOS | ||
| Android | + | |
| iOS | ||
Specify custom *.desktop file. If not set, *.desktop file is generated from aui_app arguments.
| Platform | Required | Traits |
|---|---|---|
| Linux | + | |
Specify your Apple Team ID (https://discussions.apple.com/thread/7942941).
| Platform | Required | Traits |
|---|---|---|
| macOS | + | |
| iOS | + | |
Specify bundle identifier. If not set, the value of NAME used instead.
| Platform | Required | Traits |
|---|---|---|
| macOS | ||
| iOS | ||
Specify Apple sign identity. Defaults to "iPhone Developer".
| Platform | Required | Traits |
|---|---|---|
| macOS | unused | |
| iOS | ||
Specify target iOS platform. Defaults to "14.3".
| Platform | Required | Traits |
|---|---|---|
| iOS | ||
Specify target iOS device. Applicable values are IPHONE, IPAD or BOTH. Defaults to BOTH.
| Platform | Required | Traits |
|---|---|---|
| iOS | ||
Specify custom view controller class name. Defaults to AUIViewController.
| Platform | Required | Traits |
|---|---|---|
| iOS | ||