diff options
author | Thomas Preud'homme <thomasp@graphcore.ai> | 2022-11-17 23:35:18 +0000 |
---|---|---|
committer | Thomas Preud'homme <thomasp@graphcore.ai> | 2022-11-25 21:57:58 +0000 |
commit | ecfa2d3d9943a48411d04a4b3103c42b4653d9af (patch) | |
tree | c89ebf87f5b1c22d4a81060f4db8c5704712dbcc /flang/cmake | |
parent | 234d2e27db2ed4b958e31fe7db10941e6ce1b84e (diff) | |
download | llvm-ecfa2d3d9943a48411d04a4b3103c42b4653d9af.tar.gz |
Add version to all LLVM cmake package
Add a version to non-LLVM cmake package so that users needing an exact
version match can use the version parameter to find_package. Also adjust
the find_package(LLVM) to use an exact version match as well.
Reviewed By: arsenm, stellaraccident, mceier
Differential Revision: https://reviews.llvm.org/D138274
Diffstat (limited to 'flang/cmake')
-rw-r--r-- | flang/cmake/modules/CMakeLists.txt | 9 | ||||
-rw-r--r-- | flang/cmake/modules/FlangConfig.cmake.in | 3 | ||||
-rw-r--r-- | flang/cmake/modules/FlangConfigVersion.cmake.in | 13 |
3 files changed, 22 insertions, 3 deletions
diff --git a/flang/cmake/modules/CMakeLists.txt b/flang/cmake/modules/CMakeLists.txt index 31a6c3c83e48..bf50bcaa18d5 100644 --- a/flang/cmake/modules/CMakeLists.txt +++ b/flang/cmake/modules/CMakeLists.txt @@ -28,8 +28,8 @@ set(FLANG_CONFIG_INCLUDE_DIRS "${FLANG_BINARY_DIR}/include" ) configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/FlangConfig.cmake.in - ${flang_cmake_builddir}/FlangConfig.cmake + ${CMAKE_CURRENT_SOURCE_DIR}/FlangConfigVersion.cmake.in + ${flang_cmake_builddir}/FlangConfigVersion.cmake @ONLY) set(FLANG_CONFIG_CMAKE_DIR) set(FLANG_CONFIG_LLVM_CMAKE_DIR) @@ -46,6 +46,10 @@ configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/FlangConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/FlangConfig.cmake @ONLY) +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/FlangConfigVersion.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/FlangConfigVersion.cmake + @ONLY) set(FLANG_CONFIG_CODE) set(FLANG_CONFIG_CMAKE_DIR) @@ -56,6 +60,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/FlangConfig.cmake + ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/FlangConfigVersion.cmake DESTINATION ${FLANG_INSTALL_PACKAGE_DIR} COMPONENT flang-cmake-exports) diff --git a/flang/cmake/modules/FlangConfig.cmake.in b/flang/cmake/modules/FlangConfig.cmake.in index 7893cb64b936..ac4b77bd8514 100644 --- a/flang/cmake/modules/FlangConfig.cmake.in +++ b/flang/cmake/modules/FlangConfig.cmake.in @@ -2,7 +2,8 @@ @FLANG_CONFIG_CODE@ -find_package(LLVM REQUIRED CONFIG +set(LLVM_VERSION @LLVM_VERSION_MAJOR@.@LLVM_VERSION_MINOR@.@LLVM_VERSION_PATCH@) +find_package(LLVM ${LLVM_VERSION} EXACT REQUIRED CONFIG HINTS "@FLANG_CONFIG_LLVM_CMAKE_DIR@") set(FLANG_EXPORTED_TARGETS "@FLANG_EXPORTS@") diff --git a/flang/cmake/modules/FlangConfigVersion.cmake.in b/flang/cmake/modules/FlangConfigVersion.cmake.in new file mode 100644 index 000000000000..e9ac4ed2da78 --- /dev/null +++ b/flang/cmake/modules/FlangConfigVersion.cmake.in @@ -0,0 +1,13 @@ +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() |