| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- 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()
|