aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firestore/CMakeLists.txt
diff options
context:
space:
mode:
authorGravatar Gil <mcg@google.com>2018-01-03 07:00:54 -0800
committerGravatar GitHub <noreply@github.com>2018-01-03 07:00:54 -0800
commit5a6155f6a38a2d5515667406a5926c39753627e5 (patch)
treeda3395a715b01841cd8ae9d52d85cbfb6d0049b8 /Firestore/CMakeLists.txt
parent727edcead2b7620dcd0c586352486370e15ffa45 (diff)
Build and test both C++ loggers where possible (#595)
* Rename FIREBASE_BINARY_DIR to FIREBASE_INSTALL_DIR Make this consistent with the outer superbuild and also make the association with CMAKE_INSTALL_PREFIX more obvious. * Build and test log_stdio separate from the rest of util This is in preparation for adding a test for log_apple * Build and test log_apple under CMake Also add notes about how FIRLogger's debug mode can break this test * Refactor log_apple to cut down duplicate switch statements There's also a slight reduction in final binary size.
Diffstat (limited to 'Firestore/CMakeLists.txt')
-rw-r--r--Firestore/CMakeLists.txt22
1 files changed, 21 insertions, 1 deletions
diff --git a/Firestore/CMakeLists.txt b/Firestore/CMakeLists.txt
index ba9998d..cffd015 100644
--- a/Firestore/CMakeLists.txt
+++ b/Firestore/CMakeLists.txt
@@ -16,7 +16,14 @@ cmake_minimum_required(VERSION 2.8.11)
project(firestore)
set(FIREBASE_SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/..")
-set(FIREBASE_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/..")
+
+# CMAKE_INSTALL_PREFIX should be passed in to this build so that it can find
+# outputs of the superbuild. This is handled automatically if run via the
+# superbuild (i.e. by invoking cmake on the directory above this).
+#
+# If you want to use this project directly in e.g. CLion, make sure you
+# configure this.
+set(FIREBASE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}")
list(INSERT CMAKE_MODULE_PATH 0 ${FIREBASE_SOURCE_DIR}/cmake)
include(utils)
@@ -36,5 +43,18 @@ set(CMAKE_CXX_EXTENSIONS OFF)
# Fully qualified imports, project wide
include_directories("${FIREBASE_SOURCE_DIR}")
+if(APPLE)
+ # CMake has no special support for Objective-C as a distinct language but enabling modules and
+ # other clang extensions would apply even to regular C++ sources which is nonportable. Keep these
+ # flags separate to avoid misuse.
+ set(
+ OBJC_FLAGS
+ -fobjc-arc
+ -fmodules
+ -fno-autolink
+ -F${FIREBASE_INSTALL_DIR}/Frameworks
+ )
+endif(APPLE)
+
enable_testing()
add_subdirectory(core)