From 0fa7dc4762d6fe0ab811f86e5d2c87231f2abcfe Mon Sep 17 00:00:00 2001 From: Eric Christopher Date: Wed, 16 Apr 2014 23:15:31 +0000 Subject: [PATCH] Teach LLVMConfigVersion.cmake to behave as find_package() expects. Patch by Brad King git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206426 91177308-0d34-0410-b5e6-96231b3b80d8 --- cmake/modules/LLVMConfigVersion.cmake.in | 14 +++++++++++++- cmake/modules/Makefile | 3 +++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/cmake/modules/LLVMConfigVersion.cmake.in b/cmake/modules/LLVMConfigVersion.cmake.in index add5aa9a1cb..e9ac4ed2da7 100644 --- a/cmake/modules/LLVMConfigVersion.cmake.in +++ b/cmake/modules/LLVMConfigVersion.cmake.in @@ -1 +1,13 @@ -set(PACKAGE_VERSION "@PACKAGE_VERSION@") \ No newline at end of file +set(PACKAGE_VERSION "@PACKAGE_VERSION@") + +# LLVM is API-compatible only with matching major.minor versions +# and patch versions not less than that requested. +if("@LLVM_VERSION_MAJOR@.@LLVM_VERSION_MINOR@" VERSION_EQUAL + "${PACKAGE_FIND_VERSION_MAJOR}.${PACKAGE_FIND_VERSION_MINOR}" + AND NOT "@LLVM_VERSION_PATCH@" VERSION_LESS "${PACKAGE_FIND_VERSION_PATCH}") + set(PACKAGE_VERSION_COMPATIBLE 1) + if("@LLVM_VERSION_PATCH@" VERSION_EQUAL + "${PACKAGE_FIND_VERSION_PATCH}") + set(PACKAGE_VERSION_EXACT 1) + endif() +endif() diff --git a/cmake/modules/Makefile b/cmake/modules/Makefile index 817f911ea7c..265c1f8ec14 100644 --- a/cmake/modules/Makefile +++ b/cmake/modules/Makefile @@ -52,6 +52,9 @@ $(PROJ_OBJ_DIR)/LLVMConfigVersion.cmake: LLVMConfigVersion.cmake.in $(Echo) 'Generating LLVM CMake package version file' $(Verb) cat $< | sed \ -e 's/@PACKAGE_VERSION@/'"$(LLVMVersion)"'/' \ + -e 's/@LLVM_VERSION_MAJOR@/'"$(LLVM_VERSION_MAJOR)"'/' \ + -e 's/@LLVM_VERSION_MINOR@/'"$(LLVM_VERSION_MINOR)"'/' \ + -e 's/@LLVM_VERSION_PATCH@/'"$(LLVM_VERSION_PATCH)"'/' \ > $@ $(PROJ_OBJ_DIR)/LLVMExports.cmake: $(LLVMBuildCMakeExportsFrag) -- 2.34.1