• Joe Loser's avatar
    Set CMake policy CMP0075 to respect CMAKE_REQUIRED_LIBRARIES (#1066) · 20572588
    Joe Loser authored
    Summary:
    - For CMake 3.12 and above, CMP0075 is available which allows the macro
      `check_include_file`, `check_include_files`, and `check_include_files_cxx`
      to prefer to link the check executable to the libraries listed in the
      `CMAKE_REQUIRED_LIBRARIES` variable.
    - For CMake 3.13.4, not having this policy set results in a warning such
      as the one below.
    
    ```
    CMake Warning (dev) at /usr/local/Cellar/cmake/3.14.0/share/cmake/Modules/CheckIncludeFileCXX.cmake:79 (message):
      Policy CMP0075 is not set: Include file check macros honor
      CMAKE_REQUIRED_LIBRARIES.  Run "cmake --help-policy CMP0075" for policy
      details.  Use the cmake_policy command to set the policy and suppress this
      warning.
    
      CMAKE_REQUIRED_LIBRARIES is set to:
    
        Threads::Threads;gflags_shared;/usr/lib/libssl.dylib;/usr/local/Cellar/openssl/1.0.2q/lib/libcrypto.dylib
    
      For compatibility with CMake 3.11 and below this check is ignoring it.
    Call Stack (most recent call first):
      CMake/folly-deps.cmake:144 (CHECK_INCLUDE_FILE_CXX)
      CMakeLists.txt:90 (include)
    This warning is for project developers.  Use -Wno-dev to suppress it.
    ```
    
    - This patch sets the policy to the new behavior which means we will
      honor `CMAKE_REQUIRED_LIBRARIES` in the include file check macros now.
    - The warning is now gone for those using CMake 3.13.4 or later.
    Pull Request resolved: https://github.com/facebook/folly/pull/1066
    
    Reviewed By: Orvid
    
    Differential Revision: D14500811
    
    Pulled By: yfeldblum
    
    fbshipit-source-id: 767bafbc6e15099a85cd0a5556e7f50f7c4fd0eb
    20572588
CMakeLists.txt 31.7 KB