diff options
author | ambrosin <ambrosin@google.com> | 2022-11-04 06:47:08 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2022-11-04 06:48:22 -0700 |
commit | e6123ced17bef5e9cc40e14723d23a0d3b0463ab (patch) | |
tree | 67c4cb100b7f379227cc2ac4625941930c05d785 /cmake | |
parent | 0c47292f6ec9f6ffa256c007c9166a32bec00a6e (diff) | |
download | tink-e6123ced17bef5e9cc40e14723d23a0d3b0463ab.tar.gz |
Don't download BoringSSL or search for OpenSSL if target crypto is already defined
Without this projects including Tink as a subdirectory that already define a `crypto` target will fail to build.
This is useful when building Tink alongside other libraries that define some `crypto` target.
PiperOrigin-RevId: 486128754
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/TinkWorkspace.cmake | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/cmake/TinkWorkspace.cmake b/cmake/TinkWorkspace.cmake index fc2f0a180..08f5c25d3 100644 --- a/cmake/TinkWorkspace.cmake +++ b/cmake/TinkWorkspace.cmake @@ -89,22 +89,29 @@ http_archive( # Paths are hard-coded in tests, which expects wycheproof/ in this location. add_directory_alias("${wycheproof_SOURCE_DIR}" "${CMAKE_BINARY_DIR}/external/wycheproof") -if (NOT TINK_USE_SYSTEM_OPENSSL) - # Commit from Sep 14, 2022. - http_archive( - NAME boringssl - URL https://github.com/google/boringssl/archive/d345d68d5c4b5471290ebe13f090f1fd5b7e8f58.zip - SHA256 482796f369c8655dbda3be801ae98c47916ecd3bff223d007a723fd5f5ecba22 - CMAKE_SUBDIR src - ) - - # BoringSSL targets do not carry include directory info, this fixes it. - target_include_directories(crypto PUBLIC - "$<BUILD_INTERFACE:${boringssl_SOURCE_DIR}/src/include>") +# Don't fetch BoringSSL or look for OpenSSL if target `crypto` is already +# defined. +if (NOT TARGET crypto) + if (NOT TINK_USE_SYSTEM_OPENSSL) + # Commit from Sep 14, 2022. + http_archive( + NAME boringssl + URL https://github.com/google/boringssl/archive/d345d68d5c4b5471290ebe13f090f1fd5b7e8f58.zip + SHA256 482796f369c8655dbda3be801ae98c47916ecd3bff223d007a723fd5f5ecba22 + CMAKE_SUBDIR src + ) + # BoringSSL targets do not carry include directory info, this fixes it. + target_include_directories(crypto PUBLIC + "$<BUILD_INTERFACE:${boringssl_SOURCE_DIR}/src/include>") + else() + # Support for ED25519 was added from 1.1.1. + find_package(OpenSSL 1.1.1 REQUIRED) + _create_interface_target(crypto OpenSSL::Crypto) + endif() else() - # Support for ED25519 was added from 1.1.1. - find_package(OpenSSL 1.1.1 REQUIRED) - _create_interface_target(crypto OpenSSL::Crypto) + message(STATUS "Using an already declared `crypto` target") + get_target_property(crypto_INCLUDE_DIR crypto INTERFACE_INCLUDE_DIRECTORIES) + message(STATUS "crypto Include Dir: ${crypto_INCLUDE_DIR}") endif() set(RAPIDJSON_BUILD_DOC OFF CACHE BOOL "Tink dependency override" FORCE) |