mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	Merge pull request #2946 from ethereum/cmake
CMake: Add compiler warning about implicit fallthough
This commit is contained in:
		
						commit
						6db13311dd
					
				
							
								
								
									
										23
									
								
								cmake/EthCheckCXXCompilerFlag.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								cmake/EthCheckCXXCompilerFlag.cmake
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,23 @@ | ||||
| include(CheckCXXCompilerFlag) | ||||
| 
 | ||||
| # Adds CXX compiler flag if the flag is supported by the compiler. | ||||
| # | ||||
| # This is effectively a combination of CMake's check_cxx_compiler_flag() | ||||
| # and add_compile_options(): | ||||
| # | ||||
| #    if(check_cxx_compiler_flag(flag)) | ||||
| #        add_compile_options(flag) | ||||
| # | ||||
| function(eth_add_cxx_compiler_flag_if_supported FLAG) | ||||
|   # Remove leading - or / from the flag name. | ||||
|   string(REGEX REPLACE "^-|/" "" name ${FLAG}) | ||||
|   check_cxx_compiler_flag(${FLAG} ${name}) | ||||
|   if(${name}) | ||||
|     add_compile_options(${FLAG}) | ||||
|   endif() | ||||
| 
 | ||||
|   # If the optional argument passed, store the result there. | ||||
|   if(ARGV1) | ||||
|     set(${ARGV1} ${name} PARENT_SCOPE) | ||||
|   endif() | ||||
| endfunction() | ||||
| @ -4,7 +4,7 @@ | ||||
| # CMake file for cpp-ethereum project which specifies our compiler settings | ||||
| # for each supported platform and build configuration. | ||||
| # | ||||
| # See http://www.ethdocs.org/en/latest/ethereum-clients/cpp-ethereum/. | ||||
| # The documentation for cpp-ethereum is hosted at http://cpp-ethereum.org | ||||
| # | ||||
| # Copyright (c) 2014-2016 cpp-ethereum contributors. | ||||
| #------------------------------------------------------------------------------ | ||||
| @ -14,18 +14,15 @@ | ||||
| # | ||||
| # These settings then end up spanning all POSIX platforms (Linux, OS X, BSD, etc) | ||||
| 
 | ||||
| include(CheckCXXCompilerFlag) | ||||
| include(EthCheckCXXCompilerFlag) | ||||
| 
 | ||||
| check_cxx_compiler_flag(-fstack-protector-strong have_stack_protector_strong) | ||||
| if (have_stack_protector_strong) | ||||
| 	add_compile_options(-fstack-protector-strong) | ||||
| else() | ||||
| 	check_cxx_compiler_flag(-fstack-protector have_stack_protector) | ||||
| 	if(have_stack_protector) | ||||
| 		add_compile_options(-fstack-protector) | ||||
| 	endif() | ||||
| eth_add_cxx_compiler_flag_if_supported(-fstack-protector-strong have_stack_protector_strong_support) | ||||
| if(NOT have_stack_protector_strong_support) | ||||
| 	eth_add_cxx_compiler_flag_if_supported(-fstack-protector) | ||||
| endif() | ||||
| 
 | ||||
| eth_add_cxx_compiler_flag_if_supported(-Wimplicit-fallthrough) | ||||
| 
 | ||||
| if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")) | ||||
| 
 | ||||
| 	# Use ISO C++11 standard language. | ||||
| @ -83,12 +80,6 @@ if (("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MA | ||||
| 			message(FATAL_ERROR "${PROJECT_NAME} requires g++ 4.7 or greater.") | ||||
| 		endif () | ||||
| 
 | ||||
| 		# Until https://github.com/ethereum/solidity/issues/2479 is handled | ||||
| 		# disable all implicit fallthrough warnings in the codebase for GCC > 7.0 | ||||
| 		if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 7.0) | ||||
| 			add_compile_options(-Wno-implicit-fallthrough) | ||||
| 		endif() | ||||
| 
 | ||||
| 	# Additional Clang-specific compiler settings. | ||||
| 	elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user