|
|
@ -12,13 +12,43 @@ set(CJSON_VERSION_SO 1) |
|
|
|
set(CJSON_UTILS_VERSION_SO 1) |
|
|
|
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) |
|
|
|
if (ENABLE_CUSTOM_COMPILER_FLAGS) |
|
|
|
if(("${CMAKE_C_COMPILER_ID}" MATCHES "GNU") OR ("${CMAKE_C_COMPILER_ID}" MATCHES "Clang")) |
|
|
|
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") |
|
|
|
endif() |
|
|
|
list(APPEND custom_compiler_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 |
|
|
|
) |
|
|
|
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 |
|
|
|
set(prefix "${CMAKE_INSTALL_PREFIX}") |
|
|
|
set(libdir "${CMAKE_INSTALL_LIBDIR}") |
|
|
|