我正在将一个项目从Autotools转换为CMake。
我们有一个configure.ac
文件,声明为:
AC_CHECK_LIB([gsuffix], [gsuffix_create], [], AC_MSG_ERROR([Can not find gsuffix library]))
我想将其替换为cmake,并且不确定如何(它没有pkg-config) 我需要的是:
有人能指出我正确的方向吗?
答案 0 :(得分:1)
没有一对一翻译。通常,使用CMake,您不会检查每个标头和每个库是否真正有效。如果你找到了这个文件,你就会认为它会起作用。
也许find_package适合您,因为某人已经编写了这样的测试,或者您的库提供了相应的配置文件。
Find_library用于查找库,但按名称。
如果您确实需要检查您的图书馆是否有效,请使用CheckLibraryExists。
答案 1 :(得分:0)
如前所述,无论如何都没有找到用一个命令执行此操作。
我没有足够的时间来理解如何做一些完全通用的事情,所以我可以给我的骨架找一个FindGSUFFIX.cmake:
FIND_LIBRARY(GSUFFIX_LIBRARY NAMES gsuffix)
INCLUDE(CheckLibraryExists)
CHECK_LIBRARY_EXISTS(gsuffix gsuffix_create ${GSUFFIX_LIBRARY} GSUFFIX_VERIFIED)
# Handle the QUIETLY and REQUIRED arguments and set PCRE_FOUND to TRUE if all listed variables are TRUE.
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GSUFFIX DEFAULT_MSG GSUFFIX_LIBRARY GSUFFIX_VERIFIED)
MARK_AS_ADVANCED(GSUFFIX_LIBRARY)