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

8

我希望使用CMakeMac OSX 10.6.8上生成一个.bundle文件中的可执行文件。我的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文件。

我在这里做错了什么?


根据http://www.cmake.org/Wiki/CMake:Bundles_And_Frameworks上的信息,`MACOSX_BUNDLE`表示目标用于生成捆绑应用程序(例如Test.app而不是命令行工具Test),而不是`.bundle`捆绑文件。 - bdash
是的,确实如此。我更倾向于在MAC OSX上使用.bundle作为插件。 - Korchkidu
2个回答

10

对于遇到此问题且想要构建一个库文件 .bundle 的任何人,我在 CMake 3.0 上成功实现了以下操作:

add_library(Foo MODULE ${SOURCES} ${HEADERS})
set_target_properties(Foo PROPERTIES BUNDLE TRUE)
重点是使用MODULE而不是SHARED。由于某些原因,否则CMake会忽略BUNDLE属性。

7

2
是的,我终于成功了。这是一组不同的命令,使用BUNDLE_EXTENSION和add_library(而不是add_executable)。感谢您的帮助。 - Korchkidu
@Korchkidu,你能告诉我你编写这些命令的确切顺序和顺序吗?最好给个例子。 - CustodianSigma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接