find_package_check_version() fails with VERSION_MSG: unexpected arguments
I'm using latest CMake master branch as of the creation time of this issue.
Sample project:
# $ cat CMakeLists.txt
cmake_minimum_required(VERSION 3.18)
project(proj LANGUAGES CXX)
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}")
# Mark PkgConfig as not found on purpose, because the project allows disabling of all pkg-config usage.
# The same behaviour happens if pkg-config is not installed on the system, or if you temporarily rename /usr/bin/pkg-config
set(PKG_CONFIG_EXECUTABLE "" CACHE STRING "Disabled pkg-config usage." FORCE)
find_package(PkgConfig)
find_package(ZSTD 1.3)
# $ cat FindZSTD.cmake
find_package(PkgConfig QUIET)
pkg_check_modules(PC_ZSTD QUIET libzstd)
message(">> PC_ZSTD_INCLUDEDIR ${PC_ZSTD_INCLUDEDIR}")
message(">> PC_ZSTD_LIBDIR ${PC_ZSTD_LIBDIR}")
message(">> PC_ZSTD_VERSION ${PC_ZSTD_VERSION}")
find_path(ZSTD_INCLUDE_DIRS
NAMES zstd.h
HINTS ${PC_ZSTD_INCLUDEDIR}
PATH_SUFFIXES zstd)
find_library(ZSTD_LIBRARIES
NAMES zstd zstd_static
HINTS ${PC_ZSTD_LIBDIR}
)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(ZSTD REQUIRED_VARS ZSTD_LIBRARIES ZSTD_INCLUDE_DIRS
VERSION_VAR PC_ZSTD_VERSION)
When configuring
$ cmake ..
-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
>> PC_ZSTD_INCLUDEDIR
>> PC_ZSTD_LIBDIR
>> PC_ZSTD_VERSION
CMake Error at /Users/alex/Dev/cmake/Modules/FindPackageHandleStandardArgs.cmake:268 (message):
find_package_check_version(): VERSION_MSG: unexpected arguments
Call Stack (most recent call first):
/Users/alex/Dev/cmake/Modules/FindPackageHandleStandardArgs.cmake:536 (find_package_check_version)
FindZSTD.cmake:39 (find_package_handle_standard_args)
CMakeLists.txt:11 (find_package)
-- Configuring incomplete, errors occurred!
The example code used to work fine before !5226 (merged) was merged and if pkg-config was not found.
Is this an intended breakage?
Edited by alcroito