Add variables with the minimal versions of GNU and Clang in the CMakeLists.txt file
This commit is contained in:
parent
043d2e7485
commit
3c14405874
@ -28,6 +28,8 @@ if (NOT CMAKE_CXX_LINK_PIE_SUPPORTED)
|
|||||||
message(WARNING "Link-time PIE not supported: ${pie_output}.\n")
|
message(WARNING "Link-time PIE not supported: ${pie_output}.\n")
|
||||||
endif()
|
endif()
|
||||||
set(CMAKE_CXX_FLAGS "-Wall")
|
set(CMAKE_CXX_FLAGS "-Wall")
|
||||||
|
set(MINIMAL_GNU "11.0")
|
||||||
|
set(MINIMAL_CLANG "13.0")
|
||||||
|
|
||||||
if (NOT MSVC)
|
if (NOT MSVC)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
|
||||||
@ -47,13 +49,13 @@ endif()
|
|||||||
|
|
||||||
if (${CMAKE_CXX_COMPILER_ID} STREQUAL GNU)
|
if (${CMAKE_CXX_COMPILER_ID} STREQUAL GNU)
|
||||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 11.0)
|
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()
|
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_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}")
|
set(CMAKE_CXX_FLAGS "-fno-use-linker-plugin -fwhole-program ${CMAKE_CXX_FLAGS}")
|
||||||
elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL Clang)
|
elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL Clang)
|
||||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13.0)
|
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()
|
endif()
|
||||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
|
||||||
set(CMAKE_CXX_FLAGS "-fwhole-program-vtables ${CMAKE_CXX_FLAGS}")
|
set(CMAKE_CXX_FLAGS "-fwhole-program-vtables ${CMAKE_CXX_FLAGS}")
|
||||||
@ -128,7 +130,7 @@ if (UNIX AND NOT MINGW)
|
|||||||
if (CPACK_RPM_PACKAGE_SOURCES)
|
if (CPACK_RPM_PACKAGE_SOURCES)
|
||||||
set(CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX "/")
|
set(CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX "/")
|
||||||
set(CPACK_GENERATOR RPM)
|
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 src DESTINATION ${CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX})
|
||||||
install(DIRECTORY resources 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})
|
install(DIRECTORY scripts DESTINATION ${CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX})
|
||||||
|
Loading…
Reference in New Issue
Block a user