子项目中的CMake参考自定义目标

时间:2015-04-30 02:46:04

标签: xcode visual-studio cmake

父项目中定义的自定义目标未出现在子项目中。

从父项目的CMakeLists.txt文件中提取:

ADD_CUSTOM_TARGET(test sh <some script>.sh)
SUBDIRS(src)

从子项目的CMakeLists.txt文件中提取(位于src/<child project name>/下:

ADD_DEPENDENCIES(${PROJECT_NAME} test)

如果您需要来自任何CMakeLists.txt文件的更多信息,我可以提供它,但我认为上面提到的是最相关的。

这在Visual Studio中适用于我(即test<parent>.vcproj<child>.vcproj中显示为依赖关系)但在Xcode中不显示。在Xcode中,它显示在<parent>.xcodeproj但不显示<child>.xcodeproj

所以我的问题是让它适用于Xcode。

======================================

编辑1(基于安东尼奥的评论):

子项目的CMakeLists.txt文件还包含:

SET (PROJECT_NAME MyApp)
...
PROJECT(${PROJECT_NAME})
...
SET_SOURCE_FILES_PROPERTIES (${CMAKE_BINARY_DIR}/generated-by-test-sh.c PROPERTIES GENERATED TRUE)
ADD_EXECUTABLE (${PROJECT_NAME} ${GUI_TYPE} ${SRC} ${CMAKE_BINARY_DIR}/generated-by-test-sh.c)

所有内容都应该正确定义。就像我说的,它在Visual Studio中运行良好。

此外,在子项中添加if (TARGET test)会返回true,因此我猜测孩子知道父项中定义的目标....但Xcode不会在子项目中添加依赖项。因此,如果您尝试构建,Xcode会抱怨说无法找到generated-by-test-sh.c

0 个答案:

没有答案