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)