mirror of
https://github.com/libgit2/libgit2.git
synced 2026-06-22 06:26:26 +00:00
cmake: enforce C90 standard
While the aim of libgit2 was to conform to C90 code, we never instructed the compiler to enforce C90 compliance. Thus, quite a few violations were able to get into our code base, which have been removed with the previous commits. As we are now able to build libgit2 with C90 enforced, we can set the C_STANDARD property for our own build targets. Note that we explicitly avoid setting the C standard for our third-party dependencies. At least the zlib target does not build with C90 enforced, and we do not want to fix them by deviating from upstream. Thus we simply enforce no standard for them.
This commit is contained in:
@@ -196,7 +196,7 @@ ELSE ()
|
||||
ENABLE_WARNINGS(extra)
|
||||
|
||||
IF (CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)")
|
||||
SET(CMAKE_C_FLAGS "-std=c99 -D_POSIX_C_SOURCE=200112L -D__EXTENSIONS__ -D_POSIX_PTHREAD_SEMANTICS ${CMAKE_C_FLAGS}")
|
||||
SET(CMAKE_C_FLAGS "-D_POSIX_C_SOURCE=200112L -D__EXTENSIONS__ -D_POSIX_PTHREAD_SEMANTICS ${CMAKE_C_FLAGS}")
|
||||
ENDIF()
|
||||
|
||||
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D_DEBUG -O0")
|
||||
|
||||
@@ -3,6 +3,8 @@ INCLUDE_DIRECTORIES(SYSTEM ${LIBGIT2_SYSTEM_INCLUDES})
|
||||
|
||||
FILE(GLOB_RECURSE SRC_EXAMPLE_GIT2 network/*.c network/*.h common.?)
|
||||
ADD_EXECUTABLE(cgit2 ${SRC_EXAMPLE_GIT2})
|
||||
SET_TARGET_PROPERTIES(cgit2 PROPERTIES C_STANDARD 90)
|
||||
|
||||
IF(WIN32 OR ANDROID)
|
||||
TARGET_LINK_LIBRARIES(cgit2 git2)
|
||||
ELSE()
|
||||
@@ -15,5 +17,6 @@ FOREACH(src_app ${SRC_EXAMPLE_APPS})
|
||||
IF(NOT ${app_name} STREQUAL "common")
|
||||
ADD_EXECUTABLE(${app_name} ${src_app} "common.c")
|
||||
TARGET_LINK_LIBRARIES(${app_name} git2)
|
||||
SET_TARGET_PROPERTIES(${app_name} PROPERTIES C_STANDARD 90)
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
|
||||
@@ -450,6 +450,7 @@ CONFIGURE_FILE(features.h.in git2/sys/features.h)
|
||||
SET(LIBGIT2_SOURCES ${SRC_H} ${SRC_GIT2} ${SRC_OS} ${SRC_SSH} ${SRC_SHA1})
|
||||
|
||||
ADD_LIBRARY(git2internal OBJECT ${LIBGIT2_SOURCES})
|
||||
SET_TARGET_PROPERTIES(git2internal PROPERTIES C_STANDARD 90)
|
||||
IDE_SPLIT_SOURCES(git2internal)
|
||||
LIST(APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:git2internal>)
|
||||
|
||||
@@ -480,6 +481,7 @@ ENDIF()
|
||||
ADD_LIBRARY(git2 ${WIN_RC} ${LIBGIT2_OBJECTS})
|
||||
TARGET_LINK_LIBRARIES(git2 ${LIBGIT2_LIBS})
|
||||
|
||||
SET_TARGET_PROPERTIES(git2 PROPERTIES C_STANDARD 90)
|
||||
SET_TARGET_PROPERTIES(git2 PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${libgit2_BINARY_DIR})
|
||||
SET_TARGET_PROPERTIES(git2 PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${libgit2_BINARY_DIR})
|
||||
SET_TARGET_PROPERTIES(git2 PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${libgit2_BINARY_DIR})
|
||||
|
||||
@@ -36,6 +36,7 @@ INCLUDE_DIRECTORIES(SYSTEM ${LIBGIT2_SYSTEM_INCLUDES})
|
||||
|
||||
ADD_EXECUTABLE(libgit2_clar ${SRC_CLAR} ${SRC_TEST} ${LIBGIT2_OBJECTS})
|
||||
|
||||
SET_TARGET_PROPERTIES(libgit2_clar PROPERTIES C_STANDARD 90)
|
||||
SET_TARGET_PROPERTIES(libgit2_clar PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${libgit2_BINARY_DIR})
|
||||
|
||||
IF (${CMAKE_VERSION} VERSION_LESS 2.8.12)
|
||||
|
||||
Reference in New Issue
Block a user