查找是否已安装libbdd

时间:2016-11-13 15:11:56

标签: cmake

我正在编写cmake构建脚本,我想检查用户是否安装了libbdd库(由sudo apt-get install libbdd-dev安装)。我尝试使用以下find_package(libbdd),但即使安装了lib也找不到它。如何正确检查是否安装了lib?

1 个答案:

答案 0 :(得分:1)

find_package可以使用:

  1. 有人提供findXXX.cmake脚本,搜索库位于默认位置。

  2. XXXConfig.cmake脚本一起提供的库。

  3. 否则,您需要采用其他方法。

    例如,如果库支持pkg-config实用程序,您可以使用CMake模块PkgConfig进行检测。

    如果您只想检查,是否将库安装到默认位置,您可以检查是否可能包含其签名头文件进入该计划。最简单的方法是使用CHECK_INCLUDE_FILE

    # Include mModule, where the macro is declared.
    include(CheckIncludeFile)
    # Check that header file is accessible.
    CHECK_INCLUDE_FILE("bdd.h" # "Signature" header for the library libbdd.
        BDD_INSTALLED # Variable to store result
    )
    if(NOT BDD_INSTALLED)
        # Remove FALSE value from the cache, so next run
        # the include file will be rechecked.
        #
        # Without removing, CHECK_INCLUDE_FILE will check nothing at next run.
        unset(BDD_INSTALLED CACHE)
    
        message(SEND_ERROR "Unable to detect 'bdd' library. Install libbdd-dev and rerun cmake.")
    endif(NOT BDD_INSTALLED)
    
    # Assume that libbdd is installed.