aboutsummaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorambrosin <ambrosin@google.com>2022-11-04 06:47:08 -0700
committerCopybara-Service <copybara-worker@google.com>2022-11-04 06:48:22 -0700
commite6123ced17bef5e9cc40e14723d23a0d3b0463ab (patch)
tree67c4cb100b7f379227cc2ac4625941930c05d785 /cmake
parent0c47292f6ec9f6ffa256c007c9166a32bec00a6e (diff)
downloadtink-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.cmake37
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)