OS X CMake: возможно с альтернативным именем пакета - PullRequest
0 голосов
/ 10 июня 2019

Проблема проста, из этого вида записей cmake:

add_executable(Foo
    Source1.h
    Source1.cpp
)
set_target_properties(Foo PROPERTIES
    MACOSX_BUNDLE TRUE
    MACOSX_BUNDLE_BUNDLE_NAME "My cool application"
    MACOSX_RPATH TRUE
    MACOSX_FRAMEWORK_IDENTIFIER com.mycompany.coolapplication
    XCODE_ATTRIBUTE_LD_RUNPATH_SEARCH_PATHS "@loader_path/Libraries"
    RESOURCE "${RESOURCE_FILES}"
    XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME TRUE
)

Я ожидал связку с именами My cool application.app и Foo, скрытыми внутри ./My cool application.app/Contents/MacOS/Foo (пробелы в названии связки желательны).

Но это заканчивается Foo.app и: ./Foo.app/Contents/MacOS/Foo

Видимо, не только у меня есть эта проблема (нет ответа).

Обратите внимание, что мой проект - C ++ и умножение, поэтому cmake - лучший выбор.

Ответы [ 2 ]

1 голос
/ 11 июня 2019

Вот этот список свойств, которые вы можете установить: https://cmake.org/cmake/help/latest/manual/cmake-properties.7.html#properties-on-targets

MACOSX_BUNDLE_BUNDLE_NAME не является одним из них, и я никогда не видел, чтобы кто-нибудь использовал раньше!

Может быть, вы можете попробовать это:

set_target_properties(Foo PROPERTIES
    ...
    OUTPUT_NAME "My cool application"
    ...
)

Надеюсь, это поможет

0 голосов
/ 05 июля 2019

Получил улучшенное решение.Теперь у меня другое имя: target, budle и исполняемый файл.

Это точный CMakeLists.txt файл, который я использовал для тестирования:

cmake_minimum_required(VERSION 3.5)

project(CMakeTestBundleName)
add_executable(TestBubdle main.cpp extra.cpp)

set_target_properties(TestBubdle PROPERTIES
    OUTPUT_NAME "BundleName"
    MACOSX_BUNDLE TRUE
    MACOSX_RPATH TRUE
    MACOSX_FRAMEWORK_IDENTIFIER com.testcmake.bundlename
    XCODE_ATTRIBUTE_LD_RUNPATH_SEARCH_PATHS "@loader_path/Libraries"
    RESOURCE "${RESOURCE_FILES}"
    XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME TRUE
    XCODE_ATTRIBUTE_EXECUTABLE_NAME "exeName"
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...