使用嵌套的CMakelists.txt文件交叉编译问题

时间:2015-02-23 07:29:51

标签: cmake makefile cross-compiling intel target

我确实需要包含"交叉编译"在我的项目(英特尔和PowerPC)中,我发现了定义目标的问题。我有以下文件夹结构:

  • *的.h

  • *。CPP

  • 的CMakeLists.txt

的src

  • *的.h

  • *。CPP

  • 的CMakeLists.txt

...

-CMakeLists.txt

如果在src文件夹的CMakeLists.txt中写下以下代码,它可以工作......

ADD_EXECUTABLE( intel ${SOURCES} ) SET_TARGET_PROPERTIES( intel PROPERTIES OUTPUT_NAME ${APP_NAME}_INTEL EXCLUDE_FROM_ALL true ) TARGET_LINK_LIBRARIES( intel ${LIBS_INTEL}  )

但是我真的不知道如何在库的CMakeLists(libs文件夹)中这样做。如果我遵循相同的结构并使用" intel"作为目标,它返回一条错误消息,说明"目标名称已被使用"。

我确实想用两个选项编译我的所有项目:

"使英特尔" - >生成英特尔版本"制作powerPc" - >生成PowerPC版本

我一直在互联网上寻找它,但我无法找到正确的解决方案。

我希望有人能帮助我。

1 个答案:

答案 0 :(得分:0)

最后我找到了解决方案。它就像在主CMakeLists.txt文件中使用以下宏一样简单。

ADD_CUSTOM_TARGET(INTEL DEPENDS EXECUTABLE1 EXECUTABLE2 ... EXECUTABLEN)

与其他目标powerpc相同。