diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2019-02-14 13:09:23 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-14 13:09:23 +0000 |
commit | b88378278bded7abe7d8ed9b7dbf32702dc4c4f0 (patch) | |
tree | 63fd5bee1c095822a605e903ad1885e5c8ee9d15 | |
parent | e19163761d5f51f1437fd291a89adf2aaa4aa262 (diff) | |
parent | 3f823c2bd852f7ec1d1d0bc7f172626cb7645556 (diff) | |
download | libgit2-b88378278bded7abe7d8ed9b7dbf32702dc4c4f0.tar.gz |
Merge pull request #4979 from libgit2/ethomson/deprecate
Deprecation: export the deprecated functions properly
-rw-r--r-- | CMakeLists.txt | 6 | ||||
-rw-r--r-- | azure-pipelines.yml | 18 | ||||
-rw-r--r-- | azure-pipelines/nightly.yml | 26 | ||||
-rw-r--r-- | examples/CMakeLists.txt | 3 | ||||
-rw-r--r-- | src/common.h | 6 | ||||
-rw-r--r-- | tests/CMakeLists.txt | 3 |
6 files changed, 38 insertions, 24 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 0e0f296a2..88eb9ec10 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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(ENABLE_WERROR "Enable compilation with -Werror" 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) OPTION(ENABLE_REPRODUCIBLE_BUILDS "Enable reproducible builds" OFF) @@ -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]+$") STRING(REGEX REPLACE "^.*LIBGIT2_SOVERSION ([0-9]+)$" "\\1" LIBGIT2_SOVERSION "${GIT2_HEADER_SOVERSION}") -# Ensure that we do not use deprecated functions internally -ADD_DEFINITIONS(-DGIT_DEPRECATE_HARD) +IF (DEPRECATE_HARD) + ADD_DEFINITIONS(-DGIT_DEPRECATE_HARD) +ENDIF() # Platform specific compilation flags IF (MSVC) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index bd14dac8d..a37319adf 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -16,7 +16,7 @@ jobs: imageName: 'libgit2/trusty-amd64:latest' environmentVariables: | CC=gcc - CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL + CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON LEAK_CHECK=valgrind - job: linux_amd64_trusty_gcc_mbedtls @@ -29,7 +29,7 @@ jobs: imageName: 'libgit2/trusty-amd64:latest' environmentVariables: | CC=gcc - CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DSHA1_BACKEND=mbedTLS + CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DSHA1_BACKEND=mbedTLS -DDEPRECATE_HARD=ON LEAK_CHECK=valgrind - job: linux_amd64_trusty_clang_openssl @@ -42,7 +42,7 @@ jobs: imageName: 'libgit2/trusty-amd64:latest' environmentVariables: | CC=clang - CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL + CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON LEAK_CHECK=valgrind - job: linux_amd64_trusty_clang_mbedtls @@ -55,7 +55,7 @@ jobs: imageName: 'libgit2/trusty-amd64:latest' environmentVariables: | CC=clang - CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DSHA1_BACKEND=mbedTLS + CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DSHA1_BACKEND=mbedTLS -DDEPRECATE_HARD=ON LEAK_CHECK=valgrind - job: macos @@ -71,7 +71,7 @@ jobs: TMPDIR: $(Agent.TempDirectory) PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig LEAK_CHECK: leaks - CMAKE_OPTIONS: -G Ninja + CMAKE_OPTIONS: -G Ninja -DDEPRECATE_HARD=ON SKIP_SSH_TESTS: true - job: windows_vs_amd64 @@ -81,7 +81,7 @@ jobs: - template: azure-pipelines/powershell.yml parameters: 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 displayName: 'Windows (x86; Visual Studio)' @@ -90,7 +90,7 @@ jobs: - template: azure-pipelines/powershell.yml parameters: 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 displayName: 'Windows (amd64; MinGW)' @@ -104,7 +104,7 @@ jobs: - template: azure-pipelines/powershell.yml parameters: 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 - job: windows_mingw_x86 @@ -120,7 +120,7 @@ jobs: - template: azure-pipelines/powershell.yml parameters: 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 - job: documentation diff --git a/azure-pipelines/nightly.yml b/azure-pipelines/nightly.yml index 9f2430e5f..fd76b97a8 100644 --- a/azure-pipelines/nightly.yml +++ b/azure-pipelines/nightly.yml @@ -12,7 +12,7 @@ jobs: imageName: 'libgit2/trusty-amd64:latest' environmentVariables: | CC=gcc - CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL + CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON LEAK_CHECK=valgrind RUN_INVASIVE_TESTS=true @@ -26,7 +26,7 @@ jobs: imageName: 'libgit2/trusty-amd64:latest' environmentVariables: | CC=gcc - CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DSHA1_BACKEND=mbedTLS + CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DSHA1_BACKEND=mbedTLS -DDEPRECATE_HARD=ON LEAK_CHECK=valgrind RUN_INVASIVE_TESTS=true @@ -40,7 +40,7 @@ jobs: imageName: 'libgit2/trusty-amd64:latest' environmentVariables: | CC=clang - CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL + CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON LEAK_CHECK=valgrind RUN_INVASIVE_TESTS=true @@ -54,7 +54,7 @@ jobs: imageName: 'libgit2/trusty-amd64:latest' environmentVariables: | CC=clang - CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DSHA1_BACKEND=mbedTLS + CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DSHA1_BACKEND=mbedTLS -DDEPRECATE_HARD=ON LEAK_CHECK=valgrind RUN_INVASIVE_TESTS=true @@ -71,7 +71,7 @@ jobs: TMPDIR: $(Agent.TempDirectory) PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig LEAK_CHECK: leaks - CMAKE_OPTIONS: -G Ninja + CMAKE_OPTIONS: -G Ninja -DDEPRECATE_HARD=ON RUN_INVASIVE_TESTS: true SKIP_SSH_TESTS: true @@ -82,7 +82,7 @@ jobs: - template: powershell.yml parameters: 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 - job: windows_vs_x86 @@ -92,7 +92,7 @@ jobs: - template: powershell.yml parameters: 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 - job: windows_mingw_amd64 @@ -107,7 +107,7 @@ jobs: - template: powershell.yml parameters: 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 RUN_INVASIVE_TESTS: true @@ -124,7 +124,7 @@ jobs: - template: powershell.yml parameters: 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 RUN_INVASIVE_TESTS: true @@ -139,7 +139,7 @@ jobs: imageName: 'libgit2/bionic-x86:latest' environmentVariables: | CC=gcc - CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL + CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON LEAK_CHECK=valgrind RUN_INVASIVE_TESTS=true @@ -154,7 +154,7 @@ jobs: imageName: 'libgit2/bionic-x86:latest' environmentVariables: | CC=clang - CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL + CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON LEAK_CHECK=valgrind RUN_INVASIVE_TESTS=true @@ -169,7 +169,7 @@ jobs: imageName: 'libgit2/bionic-arm32:latest' environmentVariables: | CC=gcc - CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL + CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON RUN_INVASIVE_TESTS=true SKIP_PROXY_TESTS=true @@ -184,6 +184,6 @@ jobs: imageName: 'libgit2/bionic-arm64:latest' environmentVariables: | CC=gcc - CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL + CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON RUN_INVASIVE_TESTS=true SKIP_PROXY_TESTS=true diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 49edaec0f..e631b96f2 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -5,6 +5,9 @@ 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) +# Ensure that we do not use deprecated functions internally +ADD_DEFINITIONS(-DGIT_DEPRECATE_HARD) + IF(WIN32 OR ANDROID) TARGET_LINK_LIBRARIES(cgit2 git2) ELSE() diff --git a/src/common.h b/src/common.h index 6e1eac834..18ba72dd1 100644 --- a/src/common.h +++ b/src/common.h @@ -79,6 +79,12 @@ #include "thread-utils.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> #define DEFAULT_BUFSIZE 65536 diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 6ce5ae0af..aaa8ed109 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -11,6 +11,9 @@ ADD_DEFINITIONS(-DCLAR_FIXTURE_PATH=\"${CLAR_FIXTURES}\") ADD_DEFINITIONS(-DCLAR_TMPDIR=\"libgit2_tests\") 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) 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") |