mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			96 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)")
 | |
| 	add_compile_options(
 | |
| 		-pedantic
 | |
| 		-Wall
 | |
| 		-Wcast-align
 | |
| 		-Wcast-qual
 | |
| 		-Wconversion
 | |
| 		-Wctor-dtor-privacy
 | |
| 		-Wdisabled-optimization
 | |
| 		-Werror
 | |
| 		-Wextra
 | |
| 		-Wformat=2
 | |
| 		-Winit-self
 | |
| 		-Wmissing-include-dirs
 | |
| 		-Wnon-virtual-dtor
 | |
| 		-Wold-style-cast
 | |
| 		-Woverloaded-virtual
 | |
| 		-Wparentheses
 | |
| 		-Wredundant-decls
 | |
| 		-Wshadow
 | |
| 		-Wsign-conversion
 | |
| 		-Wsign-promo
 | |
| 		-Wstrict-aliasing
 | |
| 		-Wundef
 | |
| 	)
 | |
| 
 | |
| 	if(${COVERAGE})
 | |
| 		set(CMAKE_CXX_FLAGS "-fprofile-arcs -ftest-coverage")
 | |
| 	endif()
 | |
| endif()
 | |
| 
 | |
| if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
 | |
| 	if((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.8) AND(NOT ${COVERAGE}))
 | |
| 		add_compile_options(-g -Og)
 | |
| 	else()
 | |
| 		add_compile_options(-g -O0)
 | |
| 	endif()
 | |
| 
 | |
| 	add_compile_options(
 | |
| 		-Wstrict-null-sentinel
 | |
| 		-Wno-vla # Allow VLA in tests
 | |
| 	)
 | |
| 	add_definitions(-DHAS_VARIABLE_LENGTH_ARRAY)
 | |
| 
 | |
| 	if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.5)
 | |
| 		add_compile_options(-Wlogical-op) # the flag exists in 4.4 but is buggy
 | |
| 	endif()
 | |
| 
 | |
| 	if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.6)
 | |
| 		add_compile_options(-Wnoexcept)
 | |
| 	endif()
 | |
| endif()
 | |
| 
 | |
| if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
 | |
| 	add_compile_options(
 | |
| 		-Wc++11-compat
 | |
| 		-Wdeprecated-register
 | |
| 		-Wno-vla-extension # Allow VLA in tests
 | |
| 	)
 | |
| 	add_definitions(
 | |
| 		-DHAS_VARIABLE_LENGTH_ARRAY
 | |
| 		-DSUBSCRIPT_CONFLICTS_WITH_BUILTIN_OPERATOR
 | |
| 	)
 | |
| endif()
 | |
| 
 | |
| if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
 | |
| 	if((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.0) AND(NOT ${COVERAGE}))
 | |
| 		add_compile_options(-g -Og)
 | |
| 	else()
 | |
| 		add_compile_options(-g -O0)
 | |
| 	endif()
 | |
| endif()
 | |
| 
 | |
| if(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
 | |
| 	if((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 9.0) AND(NOT ${COVERAGE}))
 | |
| 		add_compile_options(-g -Og)
 | |
| 	else()
 | |
| 		add_compile_options(-g -O0)
 | |
| 	endif()
 | |
| endif()
 | |
| 
 | |
| if(MSVC)
 | |
| 	add_definitions(-D_CRT_SECURE_NO_WARNINGS)
 | |
| 	add_compile_options(
 | |
| 		/W4 # Set warning level
 | |
| 		/WX # Treats all compiler warnings as errors.
 | |
| 		/Zc:__cplusplus # Enable updated __cplusplus macro
 | |
| 	)
 | |
| endif()
 | |
| 
 | |
| if(MINGW)
 | |
| 	# Static link on MinGW to avoid linking with the wrong DLLs when multiple
 | |
| 	# versions are installed.
 | |
| 	add_link_options(-static)
 | |
| endif()
 |