Make boringssl_gtest_main a STATIC library Prior to 3.12 (which we won't be requiring until July), OBJECT libraries cannot be used with target_link_libraries. That means they cannot pick up INTERFACE_INCLUDE_DIRECTORIES, which makes them pretty unusable in the "modern CMake" style. Just switch it to a static library to unbreak the build in CMake 3.10. For some link ordering reason I don't understand, this also requires explicitly linking boringssl_gtest to libcxx when we USE_CUSTOM_LIBCXX is set. Change-Id: Ia9d8351551f5da060248aa3ca73fe04473bf62aa Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/57345 Commit-Queue: Bob Beck <bbe@google.com> Reviewed-by: Bob Beck <bbe@google.com> Auto-Submit: David Benjamin <davidben@google.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt index 31d2931..d99ce4c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt
@@ -482,6 +482,9 @@ # Add minimal googletest targets. The provided one has many side-effects, and # googletest has a very straightforward build. add_library(boringssl_gtest third_party/googletest/src/gtest-all.cc) +if(USE_CUSTOM_LIBCXX) + target_link_libraries(boringssl_gtest libcxx) +endif() target_include_directories( boringssl_gtest PUBLIC third_party/googletest/include
diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt index 4ae3883..05a76d8 100644 --- a/crypto/CMakeLists.txt +++ b/crypto/CMakeLists.txt
@@ -420,7 +420,6 @@ x509v3/tab_test.cc $<TARGET_OBJECTS:crypto_test_data> - $<TARGET_OBJECTS:boringssl_gtest_main> ) -target_link_libraries(crypto_test test_support_lib boringssl_gtest crypto) +target_link_libraries(crypto_test test_support_lib boringssl_gtest_main crypto) add_dependencies(all_tests crypto_test)
diff --git a/crypto/test/CMakeLists.txt b/crypto/test/CMakeLists.txt index fee46ae..9bfa2ec 100644 --- a/crypto/test/CMakeLists.txt +++ b/crypto/test/CMakeLists.txt
@@ -19,11 +19,5 @@ endif() target_link_libraries(test_support_lib boringssl_gtest crypto) -add_library( - boringssl_gtest_main - - OBJECT - - gtest_main.cc -) +add_library(boringssl_gtest_main STATIC gtest_main.cc) target_link_libraries(boringssl_gtest_main boringssl_gtest crypto test_support_lib)
diff --git a/decrepit/CMakeLists.txt b/decrepit/CMakeLists.txt index 48b0cf1..927882e 100644 --- a/decrepit/CMakeLists.txt +++ b/decrepit/CMakeLists.txt
@@ -30,9 +30,7 @@ evp/evp_test.cc ripemd/ripemd_test.cc xts/xts_test.cc - - $<TARGET_OBJECTS:boringssl_gtest_main> ) -target_link_libraries(decrepit_test test_support_lib boringssl_gtest decrepit - crypto) +target_link_libraries(decrepit_test test_support_lib boringssl_gtest_main + decrepit crypto) add_dependencies(all_tests decrepit_test)
diff --git a/ssl/CMakeLists.txt b/ssl/CMakeLists.txt index 147ab58..d8d997e 100644 --- a/ssl/CMakeLists.txt +++ b/ssl/CMakeLists.txt
@@ -52,8 +52,6 @@ span_test.cc ssl_test.cc ssl_c_test.c - - $<TARGET_OBJECTS:boringssl_gtest_main> ) -target_link_libraries(ssl_test test_support_lib boringssl_gtest ssl crypto) +target_link_libraries(ssl_test test_support_lib boringssl_gtest_main ssl crypto) add_dependencies(all_tests ssl_test)