mirror of
https://github.com/DaveGamble/cJSON
synced 2024-12-25 08:02:03 +00:00
CMake: automatic detection of compiler flag compatibility
This commit is contained in:
parent
6cdb6894d4
commit
d00ca18ac2
@ -12,13 +12,43 @@ set(CJSON_VERSION_SO 1)
|
|||||||
set(CJSON_UTILS_VERSION_SO 1)
|
set(CJSON_UTILS_VERSION_SO 1)
|
||||||
set(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
|
set(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
|
||||||
|
|
||||||
|
|
||||||
|
set(custom_compiler_flags)
|
||||||
|
|
||||||
|
include(CheckCCompilerFlag)
|
||||||
option(ENABLE_CUSTOM_COMPILER_FLAGS "Enables custom compiler flags for Clang and GCC" ON)
|
option(ENABLE_CUSTOM_COMPILER_FLAGS "Enables custom compiler flags for Clang and GCC" ON)
|
||||||
if (ENABLE_CUSTOM_COMPILER_FLAGS)
|
if (ENABLE_CUSTOM_COMPILER_FLAGS)
|
||||||
if(("${CMAKE_C_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_C_COMPILER_ID}" MATCHES "Clang"))
|
list(APPEND custom_compiler_flags
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c89 -pedantic -Wall -Wextra -Werror -Wstrict-prototypes -Wwrite-strings -Wshadow -Winit-self -Wcast-align -Wformat=2 -Wmissing-prototypes -Wstrict-overflow=2 -Wcast-qual -Wc++-compat -Wundef -Wswitch-default -Wconversion -fstack-protector-strong")
|
-std=c89
|
||||||
endif()
|
-pedantic
|
||||||
|
-Wall
|
||||||
|
-Wextra
|
||||||
|
-Werror
|
||||||
|
-Wstrict-prototypes
|
||||||
|
-Wwrite-strings
|
||||||
|
-Wshadow
|
||||||
|
-Winit-self
|
||||||
|
-Wcast-align
|
||||||
|
-Wformat=2
|
||||||
|
-Wmissing-prototypes
|
||||||
|
-Wstrict-overflow=2
|
||||||
|
-Wcast-qual
|
||||||
|
-Wc++-compat
|
||||||
|
-Wundef
|
||||||
|
-Wswitch-default
|
||||||
|
-Wconversion
|
||||||
|
-fstack-protector-strong
|
||||||
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# apply custom compiler flags
|
||||||
|
foreach(compiler_flag ${custom_compiler_flags})
|
||||||
|
CHECK_C_COMPILER_FLAG(${compiler_flag} "FLAG_SUPPORTED-${compiler_flag}")
|
||||||
|
if (FLAG_SUPPORTED${compiler_flag})
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${compiler_flag}")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
#variables for pkg-config
|
#variables for pkg-config
|
||||||
set(prefix "${CMAKE_INSTALL_PREFIX}")
|
set(prefix "${CMAKE_INSTALL_PREFIX}")
|
||||||
set(libdir "${CMAKE_INSTALL_LIBDIR}")
|
set(libdir "${CMAKE_INSTALL_LIBDIR}")
|
||||||
|
Loading…
Reference in New Issue
Block a user