Unverified Commit b8837827 by Edward Thomson Committed by GitHub

Merge pull request #4979 from libgit2/ethomson/deprecate

Deprecation: export the deprecated functions properly
parents e1916376 3f823c2b
...@@ -64,6 +64,7 @@ OPTION(USE_EXT_HTTP_PARSER "Use system HTTP_Parser if available" ON) ...@@ -64,6 +64,7 @@ OPTION(USE_EXT_HTTP_PARSER "Use system HTTP_Parser if available" ON)
OPTION(DEBUG_POOL "Enable debug pool allocator" OFF) OPTION(DEBUG_POOL "Enable debug pool allocator" OFF)
OPTION(ENABLE_WERROR "Enable compilation with -Werror" OFF) OPTION(ENABLE_WERROR "Enable compilation with -Werror" OFF)
OPTION(USE_BUNDLED_ZLIB "Use the bundled version of zlib" OFF) OPTION(USE_BUNDLED_ZLIB "Use the bundled version of zlib" OFF)
OPTION(DEPRECATE_HARD "Do not include deprecated functions in the library" OFF)
IF (UNIX AND NOT APPLE) IF (UNIX AND NOT APPLE)
OPTION(ENABLE_REPRODUCIBLE_BUILDS "Enable reproducible builds" OFF) OPTION(ENABLE_REPRODUCIBLE_BUILDS "Enable reproducible builds" OFF)
...@@ -105,8 +106,9 @@ SET(LIBGIT2_VERSION_STRING "${LIBGIT2_VERSION_MAJOR}.${LIBGIT2_VERSION_MINOR}.${ ...@@ -105,8 +106,9 @@ SET(LIBGIT2_VERSION_STRING "${LIBGIT2_VERSION_MAJOR}.${LIBGIT2_VERSION_MINOR}.${
FILE(STRINGS "${libgit2_SOURCE_DIR}/include/git2/version.h" GIT2_HEADER_SOVERSION REGEX "^#define LIBGIT2_SOVERSION [0-9]+$") FILE(STRINGS "${libgit2_SOURCE_DIR}/include/git2/version.h" GIT2_HEADER_SOVERSION REGEX "^#define LIBGIT2_SOVERSION [0-9]+$")
STRING(REGEX REPLACE "^.*LIBGIT2_SOVERSION ([0-9]+)$" "\\1" LIBGIT2_SOVERSION "${GIT2_HEADER_SOVERSION}") STRING(REGEX REPLACE "^.*LIBGIT2_SOVERSION ([0-9]+)$" "\\1" LIBGIT2_SOVERSION "${GIT2_HEADER_SOVERSION}")
# Ensure that we do not use deprecated functions internally IF (DEPRECATE_HARD)
ADD_DEFINITIONS(-DGIT_DEPRECATE_HARD) ADD_DEFINITIONS(-DGIT_DEPRECATE_HARD)
ENDIF()
# Platform specific compilation flags # Platform specific compilation flags
IF (MSVC) IF (MSVC)
......
...@@ -16,7 +16,7 @@ jobs: ...@@ -16,7 +16,7 @@ jobs:
imageName: 'libgit2/trusty-amd64:latest' imageName: 'libgit2/trusty-amd64:latest'
environmentVariables: | environmentVariables: |
CC=gcc CC=gcc
CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON
LEAK_CHECK=valgrind LEAK_CHECK=valgrind
- job: linux_amd64_trusty_gcc_mbedtls - job: linux_amd64_trusty_gcc_mbedtls
...@@ -29,7 +29,7 @@ jobs: ...@@ -29,7 +29,7 @@ jobs:
imageName: 'libgit2/trusty-amd64:latest' imageName: 'libgit2/trusty-amd64:latest'
environmentVariables: | environmentVariables: |
CC=gcc CC=gcc
CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DSHA1_BACKEND=mbedTLS CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DSHA1_BACKEND=mbedTLS -DDEPRECATE_HARD=ON
LEAK_CHECK=valgrind LEAK_CHECK=valgrind
- job: linux_amd64_trusty_clang_openssl - job: linux_amd64_trusty_clang_openssl
...@@ -42,7 +42,7 @@ jobs: ...@@ -42,7 +42,7 @@ jobs:
imageName: 'libgit2/trusty-amd64:latest' imageName: 'libgit2/trusty-amd64:latest'
environmentVariables: | environmentVariables: |
CC=clang CC=clang
CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON
LEAK_CHECK=valgrind LEAK_CHECK=valgrind
- job: linux_amd64_trusty_clang_mbedtls - job: linux_amd64_trusty_clang_mbedtls
...@@ -55,7 +55,7 @@ jobs: ...@@ -55,7 +55,7 @@ jobs:
imageName: 'libgit2/trusty-amd64:latest' imageName: 'libgit2/trusty-amd64:latest'
environmentVariables: | environmentVariables: |
CC=clang CC=clang
CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DSHA1_BACKEND=mbedTLS CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DSHA1_BACKEND=mbedTLS -DDEPRECATE_HARD=ON
LEAK_CHECK=valgrind LEAK_CHECK=valgrind
- job: macos - job: macos
...@@ -71,7 +71,7 @@ jobs: ...@@ -71,7 +71,7 @@ jobs:
TMPDIR: $(Agent.TempDirectory) TMPDIR: $(Agent.TempDirectory)
PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig
LEAK_CHECK: leaks LEAK_CHECK: leaks
CMAKE_OPTIONS: -G Ninja CMAKE_OPTIONS: -G Ninja -DDEPRECATE_HARD=ON
SKIP_SSH_TESTS: true SKIP_SSH_TESTS: true
- job: windows_vs_amd64 - job: windows_vs_amd64
...@@ -81,7 +81,7 @@ jobs: ...@@ -81,7 +81,7 @@ jobs:
- template: azure-pipelines/powershell.yml - template: azure-pipelines/powershell.yml
parameters: parameters:
environmentVariables: environmentVariables:
CMAKE_OPTIONS: -DMSVC_CRTDBG=ON -G"Visual Studio 12 2013 Win64" CMAKE_OPTIONS: -DMSVC_CRTDBG=ON -G"Visual Studio 12 2013 Win64" -DDEPRECATE_HARD=ON
- job: windows_vs_x86 - job: windows_vs_x86
displayName: 'Windows (x86; Visual Studio)' displayName: 'Windows (x86; Visual Studio)'
...@@ -90,7 +90,7 @@ jobs: ...@@ -90,7 +90,7 @@ jobs:
- template: azure-pipelines/powershell.yml - template: azure-pipelines/powershell.yml
parameters: parameters:
environmentVariables: environmentVariables:
CMAKE_OPTIONS: -DMSVC_CRTDBG=ON -G"Visual Studio 12 2013" CMAKE_OPTIONS: -DMSVC_CRTDBG=ON -G"Visual Studio 12 2013" -DDEPRECATE_HARD=ON
- job: windows_mingw_amd64 - job: windows_mingw_amd64
displayName: 'Windows (amd64; MinGW)' displayName: 'Windows (amd64; MinGW)'
...@@ -104,7 +104,7 @@ jobs: ...@@ -104,7 +104,7 @@ jobs:
- template: azure-pipelines/powershell.yml - template: azure-pipelines/powershell.yml
parameters: parameters:
environmentVariables: environmentVariables:
CMAKE_OPTIONS: -G"MinGW Makefiles" CMAKE_OPTIONS: -G"MinGW Makefiles" -DDEPRECATE_HARD=ON
PATH: $(Agent.TempDirectory)\mingw64\bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\CMake\bin PATH: $(Agent.TempDirectory)\mingw64\bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\CMake\bin
- job: windows_mingw_x86 - job: windows_mingw_x86
...@@ -120,7 +120,7 @@ jobs: ...@@ -120,7 +120,7 @@ jobs:
- template: azure-pipelines/powershell.yml - template: azure-pipelines/powershell.yml
parameters: parameters:
environmentVariables: environmentVariables:
CMAKE_OPTIONS: -G"MinGW Makefiles" CMAKE_OPTIONS: -G"MinGW Makefiles" -DDEPRECATE_HARD=ON
PATH: $(Agent.TempDirectory)\mingw32\bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\CMake\bin PATH: $(Agent.TempDirectory)\mingw32\bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\CMake\bin
- job: documentation - job: documentation
......
...@@ -12,7 +12,7 @@ jobs: ...@@ -12,7 +12,7 @@ jobs:
imageName: 'libgit2/trusty-amd64:latest' imageName: 'libgit2/trusty-amd64:latest'
environmentVariables: | environmentVariables: |
CC=gcc CC=gcc
CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON
LEAK_CHECK=valgrind LEAK_CHECK=valgrind
RUN_INVASIVE_TESTS=true RUN_INVASIVE_TESTS=true
...@@ -26,7 +26,7 @@ jobs: ...@@ -26,7 +26,7 @@ jobs:
imageName: 'libgit2/trusty-amd64:latest' imageName: 'libgit2/trusty-amd64:latest'
environmentVariables: | environmentVariables: |
CC=gcc CC=gcc
CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DSHA1_BACKEND=mbedTLS CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DSHA1_BACKEND=mbedTLS -DDEPRECATE_HARD=ON
LEAK_CHECK=valgrind LEAK_CHECK=valgrind
RUN_INVASIVE_TESTS=true RUN_INVASIVE_TESTS=true
...@@ -40,7 +40,7 @@ jobs: ...@@ -40,7 +40,7 @@ jobs:
imageName: 'libgit2/trusty-amd64:latest' imageName: 'libgit2/trusty-amd64:latest'
environmentVariables: | environmentVariables: |
CC=clang CC=clang
CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON
LEAK_CHECK=valgrind LEAK_CHECK=valgrind
RUN_INVASIVE_TESTS=true RUN_INVASIVE_TESTS=true
...@@ -54,7 +54,7 @@ jobs: ...@@ -54,7 +54,7 @@ jobs:
imageName: 'libgit2/trusty-amd64:latest' imageName: 'libgit2/trusty-amd64:latest'
environmentVariables: | environmentVariables: |
CC=clang CC=clang
CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DSHA1_BACKEND=mbedTLS CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DSHA1_BACKEND=mbedTLS -DDEPRECATE_HARD=ON
LEAK_CHECK=valgrind LEAK_CHECK=valgrind
RUN_INVASIVE_TESTS=true RUN_INVASIVE_TESTS=true
...@@ -71,7 +71,7 @@ jobs: ...@@ -71,7 +71,7 @@ jobs:
TMPDIR: $(Agent.TempDirectory) TMPDIR: $(Agent.TempDirectory)
PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig
LEAK_CHECK: leaks LEAK_CHECK: leaks
CMAKE_OPTIONS: -G Ninja CMAKE_OPTIONS: -G Ninja -DDEPRECATE_HARD=ON
RUN_INVASIVE_TESTS: true RUN_INVASIVE_TESTS: true
SKIP_SSH_TESTS: true SKIP_SSH_TESTS: true
...@@ -82,7 +82,7 @@ jobs: ...@@ -82,7 +82,7 @@ jobs:
- template: powershell.yml - template: powershell.yml
parameters: parameters:
environmentVariables: environmentVariables:
CMAKE_OPTIONS: -DMSVC_CRTDBG=ON -G"Visual Studio 12 2013 Win64" CMAKE_OPTIONS: -DMSVC_CRTDBG=ON -G"Visual Studio 12 2013 Win64" -DDEPRECATE_HARD=ON
RUN_INVASIVE_TESTS: true RUN_INVASIVE_TESTS: true
- job: windows_vs_x86 - job: windows_vs_x86
...@@ -92,7 +92,7 @@ jobs: ...@@ -92,7 +92,7 @@ jobs:
- template: powershell.yml - template: powershell.yml
parameters: parameters:
environmentVariables: environmentVariables:
CMAKE_OPTIONS: -DMSVC_CRTDBG=ON -G"Visual Studio 12 2013" CMAKE_OPTIONS: -DMSVC_CRTDBG=ON -G"Visual Studio 12 2013" -DDEPRECATE_HARD=ON
RUN_INVASIVE_TESTS: true RUN_INVASIVE_TESTS: true
- job: windows_mingw_amd64 - job: windows_mingw_amd64
...@@ -107,7 +107,7 @@ jobs: ...@@ -107,7 +107,7 @@ jobs:
- template: powershell.yml - template: powershell.yml
parameters: parameters:
environmentVariables: environmentVariables:
CMAKE_OPTIONS: -G"MinGW Makefiles" CMAKE_OPTIONS: -G"MinGW Makefiles" -DDEPRECATE_HARD=ON
PATH: $(Agent.TempDirectory)\mingw64\bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\CMake\bin PATH: $(Agent.TempDirectory)\mingw64\bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\CMake\bin
RUN_INVASIVE_TESTS: true RUN_INVASIVE_TESTS: true
...@@ -124,7 +124,7 @@ jobs: ...@@ -124,7 +124,7 @@ jobs:
- template: powershell.yml - template: powershell.yml
parameters: parameters:
environmentVariables: environmentVariables:
CMAKE_OPTIONS: -G"MinGW Makefiles" CMAKE_OPTIONS: -G"MinGW Makefiles" -DDEPRECATE_HARD=ON
PATH: $(Agent.TempDirectory)\mingw32\bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\CMake\bin PATH: $(Agent.TempDirectory)\mingw32\bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\CMake\bin
RUN_INVASIVE_TESTS: true RUN_INVASIVE_TESTS: true
...@@ -139,7 +139,7 @@ jobs: ...@@ -139,7 +139,7 @@ jobs:
imageName: 'libgit2/bionic-x86:latest' imageName: 'libgit2/bionic-x86:latest'
environmentVariables: | environmentVariables: |
CC=gcc CC=gcc
CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON
LEAK_CHECK=valgrind LEAK_CHECK=valgrind
RUN_INVASIVE_TESTS=true RUN_INVASIVE_TESTS=true
...@@ -154,7 +154,7 @@ jobs: ...@@ -154,7 +154,7 @@ jobs:
imageName: 'libgit2/bionic-x86:latest' imageName: 'libgit2/bionic-x86:latest'
environmentVariables: | environmentVariables: |
CC=clang CC=clang
CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON
LEAK_CHECK=valgrind LEAK_CHECK=valgrind
RUN_INVASIVE_TESTS=true RUN_INVASIVE_TESTS=true
...@@ -169,7 +169,7 @@ jobs: ...@@ -169,7 +169,7 @@ jobs:
imageName: 'libgit2/bionic-arm32:latest' imageName: 'libgit2/bionic-arm32:latest'
environmentVariables: | environmentVariables: |
CC=gcc CC=gcc
CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON
RUN_INVASIVE_TESTS=true RUN_INVASIVE_TESTS=true
SKIP_PROXY_TESTS=true SKIP_PROXY_TESTS=true
...@@ -184,6 +184,6 @@ jobs: ...@@ -184,6 +184,6 @@ jobs:
imageName: 'libgit2/bionic-arm64:latest' imageName: 'libgit2/bionic-arm64:latest'
environmentVariables: | environmentVariables: |
CC=gcc CC=gcc
CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON
RUN_INVASIVE_TESTS=true RUN_INVASIVE_TESTS=true
SKIP_PROXY_TESTS=true SKIP_PROXY_TESTS=true
...@@ -5,6 +5,9 @@ FILE(GLOB_RECURSE SRC_EXAMPLE_GIT2 network/*.c network/*.h common.?) ...@@ -5,6 +5,9 @@ FILE(GLOB_RECURSE SRC_EXAMPLE_GIT2 network/*.c network/*.h common.?)
ADD_EXECUTABLE(cgit2 ${SRC_EXAMPLE_GIT2}) ADD_EXECUTABLE(cgit2 ${SRC_EXAMPLE_GIT2})
SET_TARGET_PROPERTIES(cgit2 PROPERTIES C_STANDARD 90) SET_TARGET_PROPERTIES(cgit2 PROPERTIES C_STANDARD 90)
# Ensure that we do not use deprecated functions internally
ADD_DEFINITIONS(-DGIT_DEPRECATE_HARD)
IF(WIN32 OR ANDROID) IF(WIN32 OR ANDROID)
TARGET_LINK_LIBRARIES(cgit2 git2) TARGET_LINK_LIBRARIES(cgit2 git2)
ELSE() ELSE()
......
...@@ -79,6 +79,12 @@ ...@@ -79,6 +79,12 @@
#include "thread-utils.h" #include "thread-utils.h"
#include "integer.h" #include "integer.h"
/*
* Include the declarations for deprecated functions; this ensures
* that they're decorated with the proper extern/visibility attributes.
*/
#include "git2/deprecated.h"
#include <regex.h> #include <regex.h>
#define DEFAULT_BUFSIZE 65536 #define DEFAULT_BUFSIZE 65536
......
...@@ -11,6 +11,9 @@ ADD_DEFINITIONS(-DCLAR_FIXTURE_PATH=\"${CLAR_FIXTURES}\") ...@@ -11,6 +11,9 @@ ADD_DEFINITIONS(-DCLAR_FIXTURE_PATH=\"${CLAR_FIXTURES}\")
ADD_DEFINITIONS(-DCLAR_TMPDIR=\"libgit2_tests\") ADD_DEFINITIONS(-DCLAR_TMPDIR=\"libgit2_tests\")
ADD_DEFINITIONS(-D_FILE_OFFSET_BITS=64) ADD_DEFINITIONS(-D_FILE_OFFSET_BITS=64)
# Ensure that we do not use deprecated functions internally
ADD_DEFINITIONS(-DGIT_DEPRECATE_HARD)
INCLUDE_DIRECTORIES(${CLAR_PATH} ${libgit2_BINARY_DIR}/src) INCLUDE_DIRECTORIES(${CLAR_PATH} ${libgit2_BINARY_DIR}/src)
FILE(GLOB_RECURSE SRC_TEST ${CLAR_PATH}/*/*.c ${CLAR_PATH}/*/*.h) FILE(GLOB_RECURSE SRC_TEST ${CLAR_PATH}/*/*.c ${CLAR_PATH}/*/*.h)
SET(SRC_CLAR "main.c" "clar_libgit2.c" "clar_libgit2_trace.c" "clar_libgit2_timer.c" "clar.c") SET(SRC_CLAR "main.c" "clar_libgit2.c" "clar_libgit2_trace.c" "clar_libgit2_timer.c" "clar.c")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment