aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firestore/core/src/firebase/firestore/util
diff options
context:
space:
mode:
authorGravatar Gil <mcg@google.com>2018-01-17 10:24:27 -0800
committerGravatar GitHub <noreply@github.com>2018-01-17 10:24:27 -0800
commit6a3379db62ccbce7fc9a859032955614e78e68bb (patch)
treee50af3689dfcb0a55478bc92272821bbbc6a8f81 /Firestore/core/src/firebase/firestore/util
parentc3664973a94a2c715b9c57583f5953483caf2cce (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.txt92
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
+)