Skip to content

CMake find_package() version mismatch #118

@mablanchard

Description

@mablanchard

Building cpp_features 0.4.1 on both Linux and Windows, the CMake generated configuration script report a 0.1.0 package version, producing errors like:

  Could not find a configuration file for package "CpuFeatures" that exactly
  matches requested version "0.4.1".

  The following configuration files were considered but not accepted:

    .../lib/cmake/CpuFeatures/CpuFeaturesConfig.cmake, version: 0.1.0

Having a look at at CpuFeaturesConfigVersion.cmake, it feels like PACKAGE_VERSION isn't matching the project's version:

set(PACKAGE_VERSION "0.1.0")

if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
  set(PACKAGE_VERSION_COMPATIBLE FALSE)
else()

  if("0.1.0" MATCHES "^([0-9]+)\\.")
    set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}")
  else()
    set(CVF_VERSION_MAJOR "0.1.0")
  endif()

  if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR)
    set(PACKAGE_VERSION_COMPATIBLE TRUE)
  else()
    set(PACKAGE_VERSION_COMPATIBLE FALSE)
  endif()

  if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)
      set(PACKAGE_VERSION_EXACT TRUE)
  endif()
endif()

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions