diff options
author | Gil <mcg@google.com> | 2018-01-17 10:24:27 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-17 10:24:27 -0800 |
commit | 6a3379db62ccbce7fc9a859032955614e78e68bb (patch) | |
tree | e50af3689dfcb0a55478bc92272821bbbc6a8f81 /Firestore/core/src/firebase/firestore/util | |
parent | c3664973a94a2c715b9c57583f5953483caf2cce (diff) |
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
Diffstat (limited to 'Firestore/core/src/firebase/firestore/util')
-rw-r--r-- | Firestore/core/src/firebase/firestore/util/CMakeLists.txt | 92 |
1 files changed, 42 insertions, 50 deletions
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 +) |