-set(CMAKE_C_FLAGS_RELEASE "-O2 ${CMAKE_C_FLAGS_RELEASE}")
-set(CMAKE_C_FLAGS_DEBUG "-O0 -DCLIB_DEBUG ${CMAKE_C_FLAGS_DEBUG}")
-set(CMAKE_LINKER_FLAGS_RELEASE "-pie -Wl,-z,now ${CMAKE_LINKER_FLAGS_RELEASE}")
+# release
+string(CONCAT CMAKE_C_FLAGS_RELEASE
+ "-O2 "
+ "-fstack-protector "
+ "-DFORTIFY_SOURCE=2 "
+ "-fno-common "
+)
+
+string(CONCAT CMAKE_EXE_LINKER_FLAGS_RELEASE "-pie")
+
+# debug
+string(CONCAT CMAKE_C_FLAGS_DEBUG
+ "-O0 "
+ "-DCLIB_DEBUG "
+ "-fstack-protector "
+ "-DFORTIFY_SOURCE=2 "
+ "-fno-common "
+)
+
+# coverity
+string(CONCAT CMAKE_C_FLAGS_COVERITY "-O2 -D__COVERITY__")
+
+# gcov
+string(CONCAT CMAKE_C_FLAGS_GCOV
+ "-O0 "
+ "-DCLIB_DEBUG "
+ "-DCLIB_GCOV "
+ "-fprofile-arcs "
+ "-ftest-coverage ")
+