只有在编译了外部项目后才能找到一个包,因为一旦编译了这个外部项目就会创建要找到的包。如何在编译相应的外部项目后找到软件包?
现在,我有:
include(ExternalProject)
externalproject_add(
libantlr3c
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3
CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3/configure -prefix=${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3
PREFIX ${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3
BUILD_COMMAND make
BUILD_IN_SOURCE 1
)
find_library(
antlr3c
libantlr3c.a
HINTS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libantlr3c-3.1.3
)
失败,当然。
谢谢。
这看起来很难,因为,正如你注意到,该文件不存在,直到你建立它。如果你的外部项目很简单,你可能想为它创建一个'CMakeLists.txt'。 – tibur 2011-06-03 13:52:19
不,我真的需要外部项目,否则,项目总是被认为是过时的。我需要一个懒惰的find_library。 – 2011-06-03 14:10:34