8

我想.bundleMac OSX 10.6.8使用CMake. 我的 CMakeLists.txt 文件如下所示:

cmake_minimum_required(VERSION 2.8)
PROJECT(TESTProject)
SET(MACOSX_BUNDLE_BUNDLE_NAME TEST)
ADD_EXECUTABLE(TEST MACOSX_BUNDLE main.cpp)
SET_TARGET_PROPERTIES(TEST PROPERTIES MACOSX_BUNDLE TRUE)

然后我打电话给CMake:

CMake -G"Xcode" .

但是,当我用 编译这个程序时Xcode 3.2.1,我不断地得到一个TEST.app文件而不是一个TEST.bundle文件。

我在这里做错了什么?

4

2 回答 2

9

对于遇到此问题并尝试构建库 .bundle 的任何人,这在 CMake 3.0 上对我有用:

add_library(Foo MODULE ${SOURCES} ${HEADERS})
set_target_properties(Foo PROPERTIES BUNDLE TRUE)

关键是MODULE用不了SHARED。出于某种原因,CMake 会忽略该BUNDLE属性。

于 2017-08-01T23:16:52.627 回答
7

使用 BUNDLE_EXTENSION 目标属性来获取与默认值不同的扩展名。http://www.cmake.org/cmake/help/v2.8.10/cmake.html#prop_tgt:BUNDLE_EXTENSION

另外,我认为 .app 只是可执行目标的默认值。对于库或模块目标,.bundle 应该是默认值。

您是否尝试过使用库目标?

于 2013-03-07T16:57:26.700 回答