diff --git a/CMakeLists.txt b/CMakeLists.txt index b9a9bd0..a9d5206 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -61,7 +61,27 @@ IF (WIN32) # Ignore warning C4996: 'strncpy' ADD_DEFINITIONS("-D_CRT_SECURE_NO_WARNINGS=1") ELSE() - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wformat=2 -std=gnu99 -O2 -g") + INCLUDE(CheckCCompilerFlag) + CHECK_C_COMPILER_FLAG("-Wall" COMPILER_HAS_WALL) + IF (COMPILER_HAS_WALL) + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") + ENDIF() + CHECK_C_COMPILER_FLAG("-Wextra" COMPILER_HAS_WEXTRA) + IF (COMPILER_HAS_WEXTRA) + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wextra") + ENDIF() + CHECK_C_COMPILER_FLAG("-Wformat=2" COMPILER_HAS_WFORMAT) + IF (COMPILER_HAS_WFORMAT) + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wformat=2") + ENDIF() + CHECK_C_COMPILER_FLAG("-std=gnu99" COMPILER_HAS_STD_GNU99) + CHECK_C_COMPILER_FLAG("-std=c99" COMPILER_HAS_STD_C99) + IF (COMPILER_HAS_STD_GNU99) + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99") + ELSEIF (COMPILER_HAS_STD_C99) + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99") + ENDIF() + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -g") ENDIF() INCLUDE_DIRECTORIES(${pkgconf_SOURCE_DIR} ${pkgconf_BINARY_DIR})