我正在尝试使用CMake构建OS X库。该库还包括一些资源文件(用作图标图像的.pdfs)。在我最初的尝试中,我一直在构建库和资源文件,分别为libGeneric.a和generic-Resources.bundle,其中包含托管libGeneric.a使用的所有相关图像的包。
set (SRC srcfile1.m srcfile2.m)
set (HEADERS srcfile1.h srcfile2.h)
set (ICONS icon1.pdf icon2.pdf)
set (SOURCE_FILE_PROPERTIES ${ICONS} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
add_library(generic ${SRC} ${HEADERS})
add_library(generic-Resources MODULE ${ICONS})
set_target_properties(generic-Resources PROPERTIES LINKER_LANGUAGE C) # to suppress CMake error of not able to determine linker language for libary
set_target_properties(generic-Resources PROPERTIES BUNDLE TRUE)
这很好,但是,我无法弄清楚如何在使用libGeneric.a的应用程序的构建过程中直接包含.bundle。我可以让CMake加载bundle的唯一方法是将它作为源文件添加到目标应用程序中。但是,因为在运行CMake时尚未编译捆绑包,它会抱怨源文件不存在。作为一种解决方法,我在CMake生成App.xcodeproj文件之后手动将.bundle添加到xcode中(我实际上编译了捆绑包)。由于这变得很麻烦,我想我会尝试构建一个Mac OS X框架(包含库和代码)
set (SRC srcfile1.m srcfile2.m)
set (HEADERS srcfile1.h srcfile2.h)
set (ICONS icon1.pdf icon2.pdf)
set (SOURCE_FILE_PROPERTIES ${ICONS} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
add_library(generic SHARED ${SRC} ${HEADERS} ${ICONS})
set_target_properties(generic PROPERTIES FRAMEWORK TRUE)
set_target_properties(generic PROPERTIES MACOSX_RPATH TRUE) #to suppress cmake warnings on rpath
但是,这只是在Resources目录中创建了一个框架。代码库丢失了。我希望在正确构建此框架方面提供一些帮助。怎么样,我
我现在只是将rpath设置为true,因为我还没有真正弄清楚实际上该怎么做。我该怎么做呢?目标是构建一个私有框架,然后我将自动捆绑我的应用程序。
或者,是否有一种简单的方法可以让CMake构建在我之前的进程中创建的bundle文件,然后将该构建的文件加载到我的应用程序构建过程中。