mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 06:12:43 +00:00 
			
		
		
		
	 00b4976f2c
			
		
	
	
		00b4976f2c
		
	
	
	
	
		
			
			GCC 13 was released on 2023-04-26. This commit fixes Lagom build errors when using an updated host toolchain: - Adds a workaround for a bug in constraint handling, which made LibJS fail to compile: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109683 - Silences the new `-Wdangling-reference` diagnostic globally. It produces multiple false positives with no clear way to silence them without `#pragmas`. - Silences `-Wself-move` in `RefPtr` tests as GCC 13 adds this previously Clang-exclusive warning.
		
			
				
	
	
		
			34 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| # Flags shared by Lagom (including Ladybird) and Serenity.
 | |
| set(CMAKE_CXX_STANDARD 20)
 | |
| set(CMAKE_CXX_STANDARD_REQUIRED ON)
 | |
| set(CMAKE_CXX_EXTENSIONS OFF)
 | |
| 
 | |
| add_compile_options(-Wall)
 | |
| add_compile_options(-Wextra)
 | |
| 
 | |
| add_compile_options(-Wno-unknown-warning-option)
 | |
| add_compile_options(-Wno-unused-command-line-argument)
 | |
| 
 | |
| add_compile_options(-fdiagnostics-color=always)
 | |
| add_compile_options(-fno-exceptions)
 | |
| 
 | |
| if (NOT CMAKE_HOST_SYSTEM_NAME MATCHES SerenityOS)
 | |
|     # FIXME: Something makes this go crazy and flag unused variables that aren't flagged as such when building with the toolchain.
 | |
|     #        Disable -Werror for now.
 | |
|     add_compile_options(-Werror)
 | |
| endif()
 | |
| 
 | |
| if (CMAKE_CXX_COMPILER_ID MATCHES "Clang$")
 | |
|     # Clang's default constexpr-steps limit is 1048576(2^20), GCC doesn't have one
 | |
|     add_compile_options(-fconstexpr-steps=16777216)
 | |
| 
 | |
|     add_compile_options(-Wno-implicit-const-int-float-conversion)
 | |
|     add_compile_options(-Wno-user-defined-literals)
 | |
| elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
 | |
|     # Only ignore expansion-to-defined for g++, clang's implementation doesn't complain about function-like macros
 | |
|     add_compile_options(-Wno-expansion-to-defined)
 | |
|     add_compile_options(-Wno-literal-suffix)
 | |
| 
 | |
|     # FIXME: This warning seems useful but has too many false positives with GCC 13.
 | |
|     add_compile_options(-Wno-dangling-reference)
 | |
| endif()
 |