【发布时间】:2012-11-16 18:16:54
【问题描述】:
背景:我正在使用 CMake 配置一个项目,该项目构建了库和应用程序的组合。每个应用程序都使用该应用程序独有的资源文件,例如图像和文本文件。 Xcode 理解资源文件的概念,可以正确地将它们复制到应用程序包中。如果我正在创建一个只有一个应用程序的项目,那将没有问题:我可以使用 CMake 的 set_source_files_properties(... PROPERTIES MACOSX_PACKAGE_LOCATION Resources) 告诉 Xcode 将文件放入包的 Resources 目录中,以便稍后调用 [[NSBundle mainBundle] pathForResource:...] 将正确找到它们. (pathForResource 方法默认搜索“Resources”目录。)这些文件也出现在 Xcode 项目的 Resources 组中。
问题:当我在 CMake 项目中包含多个应用程序时出现问题。每个项目都需要将自己不同的资源文件复制到自己的包的资源目录中。因此,每个应用程序在 Xcode 中都需要一个不同的资源组来保存这些文件并从中复制它们。然而,这些不同的目录都必须命名为“资源”。理想情况下,Xcode 中的每个特定于应用程序的文件夹都有自己独特的“资源”子目录,其中包含所有需要的资源。实际发生的情况是,该项目有一个共享的 Resources 目录,所有资源文件都收集到该目录中,并且项目特定的“Resources”子目录仅包含该应用程序的 info.plist 文件。因为所有应用程序的资源都被扔到同一个组中,并且由于可能发生名称冲突(两个项目具有不同的文件但具有相同的名称),所以项目包无法获取正确的资源文件。
有没有人找到一种方法来使用 CMake 来设置支持具有不同资源的多个应用程序的 Xcode 项目?或者其他一些解决方法?
【问题讨论】: