Как создать новую цель в Xcode для расширения приложения с помощью CMake?

Я хочу использовать расширение содержимого уведомлений в своем проекте Xcode. Я использую CMake для создания своего проекта. Сейчас у проекта только одна цель.

Я могу добавить расширение как новую цель вручную в Xcode, используя меню Файл - Создать - Цель - Notification Расширение содержимого.

Не могли бы вы привести пример создания нового проекта Xcode с дополнительной целью для расширения приложения с помощью CMake?


person Andrey Tozik    schedule 25.11.2016    source источник


Ответы (1)


Начиная с CMake 3.8, вы можете использовать свойство XCODE_PRODUCT_TYPE target, чтобы позволить CMake создавать приложения определенного типа.

Минимальный пример, который должен решить вашу проблему:

# add app bundle
add_executable(MyApp MACOSX_BUNDLE ${APP_SOURCE_FILES})

# add app extension bundle
add_library(MyAppExtension MODULE ${APPEX_SOURCE_FILES})
set_target_properties(MyAppExtension PROPERTIES
    BUNDLE YES
    XCODE_PRODUCT_TYPE com.apple.product-type.app-extension)

# link extension bundle with UserNotifications frameworks
find_library(UN_LIB UserNotifications)
find_library(UNUI_LIB UserNotificationsUI)
target_link_libraries(MyAppExtension PRIVATE ${UN_LIB} ${UNUI_LIB})
person user15108    schedule 22.11.2017