在MAC OSX上使用CMake生成.bundle文件

时间:2013-02-27 19:44:45

标签: xcode macos cmake

我想使用.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个文件。

我在这里做错了什么?

2 个答案:

答案 0 :(得分:7)

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

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

您是否尝试使用图书馆目标?

答案 1 :(得分:6)

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

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

关键是使用MODULE而不是SHARED。出于某种原因,CMake否则会忽略BUNDLE属性。