cmake-ios

iOS utilities for CMake


License
Apache-2.0
Install
npm install cmake-ios@1.0.0

Documentation

cmake-ios

Functions for streamlining the creation of iOS application bundles (.app files), including icon management, code signing, and more.

API

find_codesign

Locates the codesign command-line utility required for code signing iOS applications.

find_codesign(<result>)
<result>

An output variable where the path to the codesign tool will be stored.

find_iconutil

Locates the iconutil command-line utility used for manipulating iOS icon sets (.icns files).

find_iconutil(<result>)
<result>

An output variable where the path to the iconutil tool will be stored.

add_ios_entitlements

Generates a iOS Entitlements.plist file for specifying special permissions required by the application.

add_ios_entitlements(
  <target>
  [DESTINATION <path>]
  ENTITLEMENTS <entitlement...>
)
<target>

The name of the CMake target to create.

DESTINATION <path>

The location to save the generated Entitlements.plist. Defaults to "Entitlements.plist" in the build directory.

ENTITLEMENTS <entitlement...>

A list of entitlement keys to be included.

add_ios_iconset

Creates a iOS icon set (.icns file) from a collection of image files.

add_ios_iconset(
  [DESTINATION <path>]
  ICONS [<path> 16|32|64|128|256|512 1x|2x]...
  [DEPENDS <target...>]
)
<target>

The name of the CMake target to create.

DESTINATION <path>

The output location for the .icns file. Defaults to "icon.icns" in the build directory.

ICONS <path> <size> <scale>

A sequence of arguments specifying:

  • <path>: Path to the image file.
  • <size>: Size of the icon variant (e.g., 16, 32, 128)
  • <scale>: Scale factor (e.g., 1x, 2x)

add_ios_bundle_info

Generates the Info.plist file with iOS application metadata.

add_ios_bundle_info(
  <target>
  [DESTINATION <path>]
  NAME <string>
  VERSION <string>
  DISPLAY_NAME <string>
  PUBLISHER_DISPLAY_NAME <string>
  IDENTIFIER <identifier>
  CATEGORY <string>
  [TARGET <target>]
  [EXECUTABLE <path>]
)
<target>

The name of the CMake target to create.

DESTINATION <path>

Specifies the location to save the Info.plist file. Defaults to "Info.plist" in the build directory.

NAME <string>

The name of the application.

VERSION <string>

The semantic version of the application.

DISPLAY_NAME <string>

The name displayed to users. Defaults to "${NAME}".

PUBLISHER_DISPLAY_NAME <string>

The name of the publisher.

IDENTIFIER <string>

A unique bundle identifier for the application.

CATEGORY <string>

Category for the app in the iOS App Store.

TARGET <target>

An existing CMake target representing the main application executable.

EXECUTABLE <path>

Path to the application executable. Use if not providing the TARGET option.

add_ios_bundle

The core function to create a complete iOS application bundle (.app file).

add_ios_bundle(
  <target>
  DESTINATION <path>
  [INFO <path>]
  [ICON <path>]
  [TARGET <target>]
  [EXECUTABLE <path>]
  [RESOURCES [FILE|DIR <from> <to>]...]
  [DEPENDS <target...>]
)
<target>

The name of the CMake target to create for the iOS application.

DESTINATION <path>

The desired output path for the generated application bundle.

INFO <path>

Path to an Info.plist file. Defaults to "Info.plist" in the build directory.

ICON <path>

Path to a .icns file containing the application icon. Defaults to "icon.icns" in the build directory.

TARGET <target>

Name of a CMake target representing the core executable of the application.

EXECUTABLE <path>

Direct path to the application executable. Use if not providing TARGET.

RESOURCES [FILE|DIR <from> <to>] ...

A list of additional resources to include in the app bundle.

FILE <from> <to>

Copies a single file from <from> to <to> location within the Resources directory of the bundle.

DIR <from> <to>

Copies an entire directory from <from> to <to> within the Resources directory of the bundle.

DEPENDS <target...>

A list of CMake targets on which the bundle creation process depends.

code_sign_ios

Code signs a iOS application or bundle, enhancing security.

code_sign_ios(
  <target>
  [PATH <path>]
  [TARGET <target>]
  [ENTITLEMENTS <path>]
  IDENTITY <string>
  [KEYCHAIN <string>]
  [DEPENDS <target...>]
)
<target>

The name of the CMake target to create.

PATH <path>

The path to the iOS application bundle or executable to be signed.

TARGET <target>

A CMake target representing the application to be signed. Alternative to providing PATH.

ENTITLEMENTS <path>

The path to an Entitlements.plist file specifying permissions for the application. Defaults to "Entitlements.plist" in the build directory.

IDENTITY <string>

The code signing identity to use.

KEYCHAIN <string>

The path to the keychain containing the code signing certificate and private key.

License

Apache-2.0