summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorEric Christopher <echristo@gmail.com>2014-04-16 23:15:31 +0000
committerEric Christopher <echristo@gmail.com>2014-04-16 23:15:31 +0000
commit0fa7dc4762d6fe0ab811f86e5d2c87231f2abcfe (patch)
treed224ba1b2d6022ca812a523f191c2acb47d03e50 /cmake
parent8e589975ea4c00b3250c497649075890798172af (diff)
downloadllvm-0fa7dc4762d6fe0ab811f86e5d2c87231f2abcfe.tar.gz
llvm-0fa7dc4762d6fe0ab811f86e5d2c87231f2abcfe.tar.bz2
llvm-0fa7dc4762d6fe0ab811f86e5d2c87231f2abcfe.tar.xz
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
Diffstat (limited to 'cmake')
-rw-r--r--cmake/modules/LLVMConfigVersion.cmake.in14
-rw-r--r--cmake/modules/Makefile3
2 files changed, 16 insertions, 1 deletions
diff --git a/cmake/modules/LLVMConfigVersion.cmake.in b/cmake/modules/LLVMConfigVersion.cmake.in
index add5aa9a1c..e9ac4ed2da 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 817f911ea7..265c1f8ec1 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)