Add a "IGNORE_MINIMAL_COMPILER_VERSION" option to the CMakeLists.txt file
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
This commit is contained in:
		
							parent
							
								
									27c8b642d6
								
							
						
					
					
						commit
						b96b487882
					
				@ -33,6 +33,7 @@ set(CMAKE_CXX_FLAGS_RELEASE "-Os")
 | 
			
		||||
set(MINIMAL_GNU "11.0")
 | 
			
		||||
set(MINIMAL_CLANG "14.0.1")
 | 
			
		||||
set(MINIMAL_MSVC "19.30")
 | 
			
		||||
option(IGNORE_MINIMAL_COMPILER_VERSION "Whether or not to ignore the minimal compiler versions")
 | 
			
		||||
set(IS_GNU (${CMAKE_CXX_COMPILER_ID} STREQUAL GNU))
 | 
			
		||||
set(IS_CLANG (${CMAKE_CXX_COMPILER_ID} STREQUAL Clang))
 | 
			
		||||
 | 
			
		||||
@ -78,7 +79,7 @@ include(CheckIPOSupported)
 | 
			
		||||
check_ipo_supported(RESULT CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE LANGUAGES CXX)
 | 
			
		||||
 | 
			
		||||
if (${IS_GNU})
 | 
			
		||||
    if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${MINIMAL_GNU})
 | 
			
		||||
    if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${MINIMAL_GNU} AND NOT ${IGNORE_MINIMAL_COMPILER_VERSION})
 | 
			
		||||
        message(FATAL_ERROR "G++ ${MINIMAL_GNU} or higher is required.")
 | 
			
		||||
    endif()
 | 
			
		||||
    if (Threads_FOUND)
 | 
			
		||||
@ -89,7 +90,7 @@ if (${IS_GNU})
 | 
			
		||||
        set(CMAKE_CXX_FLAGS_RELEASE "-fwhole-program ${CMAKE_CXX_FLAGS_RELEASE}")
 | 
			
		||||
    endif()
 | 
			
		||||
elseif(${IS_CLANG})
 | 
			
		||||
    if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${MINIMAL_CLANG})
 | 
			
		||||
    if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${MINIMAL_CLANG} AND NOT ${IGNORE_MINIMAL_COMPILER_VERSION})
 | 
			
		||||
        message(FATAL_ERROR "Clang ${MINIMAL_CLANG} or higher is required.")
 | 
			
		||||
    endif()
 | 
			
		||||
    if (${CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE} OR MINGW) # CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE is false on llvm-mingw toolchains even though it is supported
 | 
			
		||||
@ -100,7 +101,7 @@ elseif(${IS_CLANG})
 | 
			
		||||
    endif()
 | 
			
		||||
    set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fstrict-vtable-pointers")
 | 
			
		||||
elseif(MSVC)
 | 
			
		||||
    if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${MINIMAL_MSVC})
 | 
			
		||||
    if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${MINIMAL_MSVC} AND NOT ${IGNORE_MINIMAL_COMPILER_VERSION})
 | 
			
		||||
        message(FATAL_ERROR "MSVC ${MINIMAL_MSVC} or higher is required")
 | 
			
		||||
    endif()
 | 
			
		||||
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GR /W3 /Zc:__cplusplus /Zc:preprocessor /Zc:throwingNew /Zc:inline")
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user