CMake:“add_library IMPORTED”检查lib是否存在

时间:2017-06-24 14:23:04

标签: android-ndk cmake

我正在使用add_library在CMAKE中导入静态库。 lib导入很好。但我也想验证。所以我这样做:

add_library(MYLIB STATIC IMPORTED)
set_target_properties(MYLIB PROPERTIES IMPORTED_LOCATION path/to/mylib.a)
#if(NOT  MYLIB)
  #  message(FATAL_ERROR "MYLIB library not found")
#endif()

它总是返回false,即使路径正确并导入了lib也是如此。如何检查lib是否已导入?

使用Cmake 3.4.1

1 个答案:

答案 0 :(得分:0)

由于您无论如何都在失败/停止处理,您可以通过尝试使用该库来检查它是否已导入!

如果您在导入之前确实想要检查,那么这样的事情可能是合适的:

find_library(MYLIB
  NAMES mylib
  PATHS
    path/to/mylib.a
  DOC "Find library mylib"
  NO_DEFAULT_PATH)

if(NOT MYLIB)
  message(FATAL_ERROR "MYLIB library not found")
endif()

如果您不介意CMake在搜索您声明的路径之前先查看所有许多默认位置,您可以删除NO_DEFAULT_PATH