Add variables with the minimal versions of GNU and Clang in the CMakeLists.txt file

This commit is contained in:
Username404 2021-08-09 17:17:38 +02:00
parent 043d2e7485
commit 3c14405874
Signed by: Username404-59
GPG Key ID: 7AB361FBB257A5D1

View File

@ -28,6 +28,8 @@ if (NOT CMAKE_CXX_LINK_PIE_SUPPORTED)
message(WARNING "Link-time PIE not supported: ${pie_output}.\n")
endif()
set(CMAKE_CXX_FLAGS "-Wall")
set(MINIMAL_GNU "11.0")
set(MINIMAL_CLANG "13.0")
if (NOT MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
@ -47,13 +49,13 @@ endif()
if (${CMAKE_CXX_COMPILER_ID} STREQUAL GNU)
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 11.0)
message(FATAL_ERROR "A GNU compiler version of preferably 11 or higher is required.")
message(FATAL_ERROR "G++ ${MINIMAL_GNU} or higher is required.")
endif()
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fira-loop-pressure -ftree-loop-distribution -floop-interchange -fipa-pta -fivopts -s")
set(CMAKE_CXX_FLAGS "-fno-use-linker-plugin -fwhole-program ${CMAKE_CXX_FLAGS}")
elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL Clang)
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13.0)
message(FATAL_ERROR "Clang 13.0 or higher is required.")
message(FATAL_ERROR "Clang ${MINIMAL_CLANG} or higher is required.")
endif()
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
set(CMAKE_CXX_FLAGS "-fwhole-program-vtables ${CMAKE_CXX_FLAGS}")
@ -128,7 +130,7 @@ if (UNIX AND NOT MINGW)
if (CPACK_RPM_PACKAGE_SOURCES)
set(CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX "/")
set(CPACK_GENERATOR RPM)
set(CPACK_RPM_BUILDREQUIRES "cmake >= 3.18, clang >= 11.0.0")
set(CPACK_RPM_BUILDREQUIRES "cmake >= ${CMAKE_MINIMUM_REQUIRED_VERSION}, clang >= ${MINIMAL_CLANG}.0")
install(DIRECTORY src DESTINATION ${CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX})
install(DIRECTORY resources DESTINATION ${CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX})
install(DIRECTORY scripts DESTINATION ${CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX})