我想使用.bundle
在Mac 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
个文件。
我在这里做错了什么?
答案 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
属性。