From 6a3379db62ccbce7fc9a859032955614e78e68bb Mon Sep 17 00:00:00 2001 From: Gil Date: Wed, 17 Jan 2018 10:24:27 -0800 Subject: Add a cc_library to the CMake build (#670) * Rewrite cc_test to take named arguments Cut down on build file verbosity by having cc_test take SOURCES and DEPENDS. The separate invocation of target_link_libraries is no longer necessary. * Add a cc_library rule to parallel cc_test This cuts down on build file verbosity. * Automatically add OBJC_FLAGS to cc_libraries if applicable * Exclude platform-specific libraries from 'all' This is makes it possible to declare this kind of library unconditionally. Usage within a test or as a dependency will actually trigger building. * Restore secure_random_test.cc; clean-up comments --- .../src/firebase/firestore/remote/CMakeLists.txt | 13 ++- .../src/firebase/firestore/util/CMakeLists.txt | 92 ++++++++++------------ .../test/firebase/firestore/remote/CMakeLists.txt | 9 +-- .../test/firebase/firestore/util/CMakeLists.txt | 35 ++++---- 4 files changed, 68 insertions(+), 81 deletions(-) (limited to 'Firestore/core') diff --git a/Firestore/core/src/firebase/firestore/remote/CMakeLists.txt b/Firestore/core/src/firebase/firestore/remote/CMakeLists.txt index 74ad80b..43320ce 100644 --- a/Firestore/core/src/firebase/firestore/remote/CMakeLists.txt +++ b/Firestore/core/src/firebase/firestore/remote/CMakeLists.txt @@ -12,12 +12,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -add_library( +cc_library( firebase_firestore_remote - datastore.h - datastore.cc -) -target_link_libraries( - firebase_firestore_remote - grpc::grpc + SOURCES + datastore.h + datastore.cc + DEPENDS + grpc::grpc ) diff --git a/Firestore/core/src/firebase/firestore/util/CMakeLists.txt b/Firestore/core/src/firebase/firestore/util/CMakeLists.txt index 3028a95..7283942 100644 --- a/Firestore/core/src/firebase/firestore/util/CMakeLists.txt +++ b/Firestore/core/src/firebase/firestore/util/CMakeLists.txt @@ -16,69 +16,61 @@ # libraries in here are an implementation detail of making this a # mutli-platform build. -add_library( +cc_library( firebase_firestore_util_base - secure_random_arc4random.cc - string_printf.cc -) -target_link_libraries( - firebase_firestore_util_base - PUBLIC - absl_base + SOURCES + secure_random.h + secure_random_arc4random.cc + string_printf.cc + string_printf.h + DEPENDS + absl_base ) -# stdio-dependent bits can be built and tested everywhere -add_library( - firebase_firestore_util_stdio - assert_stdio.cc - log_stdio.cc -) -target_link_libraries( +## assert and log + +cc_library( firebase_firestore_util_stdio - PUBLIC - firebase_firestore_util_base + SOURCES + assert_stdio.cc + log_stdio.cc + DEPENDS + firebase_firestore_util_base + absl_base + EXCLUDE_FROM_ALL ) -# apple-dependent bits can only built and tested on apple plaforms -if(APPLE) - add_library( - firebase_firestore_util_apple +cc_library( + firebase_firestore_util_apple + SOURCES assert_apple.mm log_apple.mm - ) - target_compile_options( - firebase_firestore_util_apple - PRIVATE - ${OBJC_FLAGS} - ) - target_link_libraries( - firebase_firestore_util_apple - PUBLIC + string_apple.h + DEPENDS FirebaseCore - ) -endif(APPLE) - -add_library( - firebase_firestore_util - autoid.cc + EXCLUDE_FROM_ALL ) # Export a dependency on the correct logging library for this platform. All # buildable libraries are built and tested but only the best fit is exported. if(APPLE) - target_link_libraries( - firebase_firestore_util - PUBLIC - firebase_firestore_util_apple - firebase_firestore_util_base - ) + list(APPEND UTIL_DEPENDS firebase_firestore_util_apple) +else() + list(APPEND UTIL_DEPENDS firebase_firestore_util_stdio) +endif() -else(NOT APPLE) - target_link_libraries( - firebase_firestore_util - PUBLIC - firebase_firestore_util_stdio - firebase_firestore_util_base - ) -endif(APPLE) +## main library + +cc_library( + firebase_firestore_util + SOURCES + autoid.cc + autoid.h + firebase_assert.h + log.h + DEPENDS + ${UTIL_DEPENDS} + firebase_firestore_util_base + absl_base +) diff --git a/Firestore/core/test/firebase/firestore/remote/CMakeLists.txt b/Firestore/core/test/firebase/firestore/remote/CMakeLists.txt index f0731c3..7d99e6f 100644 --- a/Firestore/core/test/firebase/firestore/remote/CMakeLists.txt +++ b/Firestore/core/test/firebase/firestore/remote/CMakeLists.txt @@ -14,9 +14,8 @@ cc_test( firebase_firestore_remote_test - datastore_test.cc -) -target_link_libraries( - firebase_firestore_remote_test - firebase_firestore_remote + SOURCES + datastore_test.cc + DEPENDS + firebase_firestore_remote ) diff --git a/Firestore/core/test/firebase/firestore/util/CMakeLists.txt b/Firestore/core/test/firebase/firestore/util/CMakeLists.txt index e51bb51..7f0539c 100644 --- a/Firestore/core/test/firebase/firestore/util/CMakeLists.txt +++ b/Firestore/core/test/firebase/firestore/util/CMakeLists.txt @@ -14,33 +14,30 @@ cc_test( firebase_firestore_util_test - autoid_test.cc - secure_random_test.cc - string_printf_test.cc -) -target_link_libraries( - firebase_firestore_util_test - firebase_firestore_util + SOURCES + autoid_test.cc + secure_random_test.cc + string_printf_test.cc + DEPENDS + firebase_firestore_util ) if(APPLE) cc_test( firebase_firestore_util_apple_test - assert_test.cc - log_test.cc - ) - target_link_libraries( - firebase_firestore_util_apple_test - firebase_firestore_util_apple + SOURCES + assert_test.cc + log_test.cc + DEPENDS + firebase_firestore_util_apple ) endif(APPLE) cc_test( firebase_firestore_util_stdio_test - assert_test.cc - log_test.cc -) -target_link_libraries( - firebase_firestore_util_stdio_test - firebase_firestore_util_stdio + SOURCES + assert_test.cc + log_test.cc + DEPENDS + firebase_firestore_util_stdio ) -- cgit v1.2.3