[CMake] Warn when the version is older than 3.20.0.
This is a preparation to require CMake 3.20.0 after LLVM 16 has been released. This change has been discussed on discourse https://discourse.llvm.org/t/rfc-upgrading-llvms-minimum-required-cmake-version/66193 Reviewed By: #libc_vendors, MaskRay, ChuanqiXu, to268, thieta, stellaraccident, ldionne, #libc, #libc_abi, phosek Differential Revision: https://reviews.llvm.org/D137724
This commit is contained in:
@@ -11,6 +11,13 @@ include(${LLVM_COMMON_CMAKE_UTILS}/Modules/CMakePolicy.cmake
|
||||
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||
project(Clang)
|
||||
set(CLANG_BUILT_STANDALONE TRUE)
|
||||
if ("${CMAKE_VERSION}" VERSION_LESS "3.20.0")
|
||||
message(WARNING
|
||||
"Your CMake version is ${CMAKE_VERSION}. Starting with LLVM 17.0.0, the "
|
||||
"minimum version of CMake required to build LLVM will become 3.20.0, and "
|
||||
"using an older CMake will become an error. Please upgrade your CMake to "
|
||||
"at least 3.20.0 now to avoid issues in the future!")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Must go below project(..)
|
||||
|
||||
@@ -10,6 +10,13 @@ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR COMPILER_RT_STANDALONE
|
||||
project(CompilerRT C CXX ASM)
|
||||
set(COMPILER_RT_STANDALONE_BUILD TRUE)
|
||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
if ("${CMAKE_VERSION}" VERSION_LESS "3.20.0")
|
||||
message(WARNING
|
||||
"Your CMake version is ${CMAKE_VERSION}. Starting with LLVM 17.0.0, the "
|
||||
"minimum version of CMake required to build LLVM will become 3.20.0, and "
|
||||
"using an older CMake will become an error. Please upgrade your CMake to "
|
||||
"at least 3.20.0 now to avoid issues in the future!")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(LLVM_COMMON_CMAKE_UTILS "${CMAKE_CURRENT_SOURCE_DIR}/../cmake")
|
||||
|
||||
@@ -4,6 +4,13 @@
|
||||
|
||||
if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||
cmake_minimum_required(VERSION 3.13.4)
|
||||
if ("${CMAKE_VERSION}" VERSION_LESS "3.20.0")
|
||||
message(WARNING
|
||||
"Your CMake version is ${CMAKE_VERSION}. Starting with LLVM 17.0.0, the "
|
||||
"minimum version of CMake required to build LLVM will become 3.20.0, and "
|
||||
"using an older CMake will become an error. Please upgrade your CMake to "
|
||||
"at least 3.20.0 now to avoid issues in the future!")
|
||||
endif()
|
||||
|
||||
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
||||
project(CompilerRTBuiltins C ASM)
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||
cmake_minimum_required(VERSION 3.13.4)
|
||||
if ("${CMAKE_VERSION}" VERSION_LESS "3.20.0")
|
||||
message(WARNING
|
||||
"Your CMake version is ${CMAKE_VERSION}. Starting with LLVM 17.0.0, the "
|
||||
"minimum version of CMake required to build LLVM will become 3.20.0, and "
|
||||
"using an older CMake will become an error. Please upgrade your CMake to "
|
||||
"at least 3.20.0 now to avoid issues in the future!")
|
||||
endif()
|
||||
|
||||
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
||||
project(CompilerRTCRT C)
|
||||
|
||||
@@ -31,6 +31,13 @@ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||
message("Building Flang as a standalone project.")
|
||||
project(Flang)
|
||||
set(FLANG_STANDALONE_BUILD ON)
|
||||
if ("${CMAKE_VERSION}" VERSION_LESS "3.20.0")
|
||||
message(WARNING
|
||||
"Your CMake version is ${CMAKE_VERSION}. Starting with LLVM 17.0.0, the "
|
||||
"minimum version of CMake required to build LLVM will become 3.20.0, and "
|
||||
"using an older CMake will become an error. Please upgrade your CMake to "
|
||||
"at least 3.20.0 now to avoid issues in the future!")
|
||||
endif()
|
||||
else()
|
||||
set(FLANG_STANDALONE_BUILD OFF)
|
||||
endif()
|
||||
|
||||
@@ -8,6 +8,13 @@
|
||||
|
||||
if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||
cmake_minimum_required(VERSION 3.13.4)
|
||||
if ("${CMAKE_VERSION}" VERSION_LESS "3.20.0")
|
||||
message(WARNING
|
||||
"Your CMake version is ${CMAKE_VERSION}. Starting with LLVM 17.0.0, the "
|
||||
"minimum version of CMake required to build LLVM will become 3.20.0, and "
|
||||
"using an older CMake will become an error. Please upgrade your CMake to "
|
||||
"at least 3.20.0 now to avoid issues in the future!")
|
||||
endif()
|
||||
|
||||
project(FlangRuntime C CXX)
|
||||
|
||||
|
||||
@@ -11,6 +11,13 @@ include(${LLVM_COMMON_CMAKE_UTILS}/Modules/CMakePolicy.cmake
|
||||
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||
project(lld)
|
||||
set(LLD_BUILT_STANDALONE TRUE)
|
||||
if ("${CMAKE_VERSION}" VERSION_LESS "3.20.0")
|
||||
message(WARNING
|
||||
"Your CMake version is ${CMAKE_VERSION}. Starting with LLVM 17.0.0, the "
|
||||
"minimum version of CMake required to build LLVM will become 3.20.0, and "
|
||||
"using an older CMake will become an error. Please upgrade your CMake to "
|
||||
"at least 3.20.0 now to avoid issues in the future!")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Must go below project(..)
|
||||
|
||||
@@ -19,6 +19,13 @@ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||
project(lldb)
|
||||
set(LLDB_BUILT_STANDALONE TRUE)
|
||||
set(LLVM_INCLUDE_TESTS ON CACHE INTERNAL "")
|
||||
if ("${CMAKE_VERSION}" VERSION_LESS "3.20.0")
|
||||
message(WARNING
|
||||
"Your CMake version is ${CMAKE_VERSION}. Starting with LLVM 17.0.0, the "
|
||||
"minimum version of CMake required to build LLVM will become 3.20.0, and "
|
||||
"using an older CMake will become an error. Please upgrade your CMake to "
|
||||
"at least 3.20.0 now to avoid issues in the future!")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Must go below project(..)
|
||||
|
||||
@@ -7,6 +7,13 @@ include(GNUInstallDirs)
|
||||
|
||||
if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||
set(LLDB_BUILT_STANDALONE TRUE)
|
||||
if ("${CMAKE_VERSION}" VERSION_LESS "3.20.0")
|
||||
message(WARNING
|
||||
"Your CMake version is ${CMAKE_VERSION}. Starting with LLVM 17.0.0, the "
|
||||
"minimum version of CMake required to build LLVM will become 3.20.0, and "
|
||||
"using an older CMake will become an error. Please upgrade your CMake to "
|
||||
"at least 3.20.0 now to avoid issues in the future!")
|
||||
endif()
|
||||
|
||||
set(CMAKE_MODULE_PATH
|
||||
${CMAKE_MODULE_PATH}
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
# See docs/CMake.html for instructions about how to build LLVM with CMake.
|
||||
|
||||
cmake_minimum_required(VERSION 3.13.4)
|
||||
if ("${CMAKE_VERSION}" VERSION_LESS "3.20.0")
|
||||
message(WARNING
|
||||
"Your CMake version is ${CMAKE_VERSION}. Starting with LLVM 17.0.0, the "
|
||||
"minimum version of CMake required to build LLVM will become 3.20.0, and "
|
||||
"using an older CMake will become an error. Please upgrade your CMake to "
|
||||
"at least 3.20.0 now to avoid issues in the future!")
|
||||
endif()
|
||||
|
||||
set(LLVM_COMMON_CMAKE_UTILS ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)
|
||||
include(${LLVM_COMMON_CMAKE_UTILS}/Modules/CMakePolicy.cmake
|
||||
|
||||
@@ -64,6 +64,17 @@ and there is no way to suppress this error.
|
||||
* Apple Clang >= 10.0
|
||||
* Visual Studio 2019 >= 16.7
|
||||
|
||||
With LLVM 16.x we will raise the version requirement of CMake used to build
|
||||
LLVM. The new requirements are as follows:
|
||||
|
||||
* CMake >= 3.20.0
|
||||
|
||||
In LLVM 16.x this requirement will be "soft", there will only be a diagnostic.
|
||||
|
||||
With the release of LLVM 17.x this requirement will be hard and LLVM developers
|
||||
can start using CMake 3.20.0 features, making it impossible to build with older
|
||||
versions of CMake.
|
||||
|
||||
Changes to the LLVM IR
|
||||
----------------------
|
||||
|
||||
|
||||
@@ -11,6 +11,13 @@ include(${LLVM_COMMON_CMAKE_UTILS}/Modules/CMakePolicy.cmake
|
||||
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||
project(mlir)
|
||||
set(MLIR_STANDALONE_BUILD TRUE)
|
||||
if ("${CMAKE_VERSION}" VERSION_LESS "3.20.0")
|
||||
message(WARNING
|
||||
"Your CMake version is ${CMAKE_VERSION}. Starting with LLVM 17.0.0, the "
|
||||
"minimum version of CMake required to build LLVM will become 3.20.0, and "
|
||||
"using an older CMake will become an error. Please upgrade your CMake to "
|
||||
"at least 3.20.0 now to avoid issues in the future!")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Must go below project(..)
|
||||
|
||||
@@ -12,6 +12,13 @@ list(INSERT CMAKE_MODULE_PATH 0
|
||||
if (OPENMP_STANDALONE_BUILD OR "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
set(OPENMP_STANDALONE_BUILD TRUE)
|
||||
project(openmp C CXX)
|
||||
if ("${CMAKE_VERSION}" VERSION_LESS "3.20.0")
|
||||
message(WARNING
|
||||
"Your CMake version is ${CMAKE_VERSION}. Starting with LLVM 17.0.0, the "
|
||||
"minimum version of CMake required to build LLVM will become 3.20.0, and "
|
||||
"using an older CMake will become an error. Please upgrade your CMake to "
|
||||
"at least 3.20.0 now to avoid issues in the future!")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Must go below project(..)
|
||||
|
||||
@@ -2,6 +2,13 @@
|
||||
if (NOT DEFINED LLVM_MAIN_SRC_DIR)
|
||||
project(Polly)
|
||||
cmake_minimum_required(VERSION 3.13.4)
|
||||
if ("${CMAKE_VERSION}" VERSION_LESS "3.20.0")
|
||||
message(WARNING
|
||||
"Your CMake version is ${CMAKE_VERSION}. Starting with LLVM 17.0.0, the "
|
||||
"minimum version of CMake required to build LLVM will become 3.20.0, and "
|
||||
"using an older CMake will become an error. Please upgrade your CMake to "
|
||||
"at least 3.20.0 now to avoid issues in the future!")
|
||||
endif()
|
||||
set(POLLY_STANDALONE_BUILD TRUE)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
# This file handles building LLVM runtime sub-projects.
|
||||
cmake_minimum_required(VERSION 3.13.4)
|
||||
if ("${CMAKE_VERSION}" VERSION_LESS "3.20.0")
|
||||
message(WARNING
|
||||
"Your CMake version is ${CMAKE_VERSION}. Starting with LLVM 17.0.0, the "
|
||||
"minimum version of CMake required to build LLVM will become 3.20.0, and "
|
||||
"using an older CMake will become an error. Please upgrade your CMake to "
|
||||
"at least 3.20.0 now to avoid issues in the future!")
|
||||
endif()
|
||||
project(Runtimes C CXX ASM)
|
||||
|
||||
# Add path for custom and the LLVM build's modules to the CMake module path.
|
||||
|
||||
Reference in New Issue
Block a user