-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a cc_library to the CMake build #670
Changes from 1 commit
e9b7758
37c3a5a
d349188
c97dcde
1815899
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -16,69 +16,66 @@ | |
# 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 | ||
) | ||
|
||
## assert and log | ||
|
||
# stdio-dependent bits can be built and tested everywhere | ||
add_library( | ||
firebase_firestore_util_stdio | ||
assert_stdio.cc | ||
log_stdio.cc | ||
) | ||
target_link_libraries( | ||
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 | ||
) | ||
|
||
# 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 | ||
) | ||
target_compile_options( | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Update: Ah, I see you've already handled this in the next commit. I'll leave my comment here, as it's an alternative to consider, but I think yours is just fine too. No action required. Since this really only applies to the above cc_library, can we move it right into it like you've done with DEPENDS? i.e. something like this:
Or something like that. (No idea if that's possible with cmake or not.) If you do elect to do this (assuming it's even possible) then I don't think it needs to be part of this PR (though I have no objections to that either.) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd prefer to avoid having to think about this and get this right so I'll stick with the automatic approach. |
||
firebase_firestore_util_apple | ||
PRIVATE | ||
${OBJC_FLAGS} | ||
) | ||
|
||
# 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 | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You've dropped 'if(APPLE)'. Was that on purpose? If so, I'd recommend updating this comment.
Update: Ah, I see you have an ifAPPLE down on line 61 that effectively does this. It's probably simplest to just move this comment down there. Or alternatively, just delete the comment; the 'ifAPPLE' seems descriptive enough.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've deleted the comment though I'm still not sure this is the best approach. I was hoping that there would at least be some clue as to why we're excluding these targets from 'all'.