OS X CMake:可使用替代包名称执行
OS X CMake: exectuable with alternative bundle name
问题很简单,从这种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
显然不只有我have this problem(没有回答)。
请注意,我的项目是 C++ 和乘法,因此 cmake 是最佳选择。
这是您可以设置的属性列表: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"
...
)
希望对您有所帮助
得到改进的解决方案。现在我有不同的名称:target、budle 和 executable。
这正是我用于测试的 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"
)
问题很简单,从这种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
显然不只有我have this problem(没有回答)。
请注意,我的项目是 C++ 和乘法,因此 cmake 是最佳选择。
这是您可以设置的属性列表: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"
...
)
希望对您有所帮助
得到改进的解决方案。现在我有不同的名称:target、budle 和 executable。
这正是我用于测试的 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"
)