aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Freilich <sfreilich@google.com>2022-03-15 13:09:21 -0700
committerCopybara-Service <copybara-worker@google.com>2022-03-15 13:09:53 -0700
commitbad9e85a21afe5285647b42050838fd018ee098a (patch)
treeedc8a6da53615b3a7d4b91a823f786e24b42d3b6
parent57a5df655002b468581bbc6c35666c78b5b5081e (diff)
downloadink-stroke-modeler-bad9e85a21afe5285647b42050838fd018ee098a.tar.gz
Add configuration to CMake build for using existing deps
Also tweaks the names used in FetchContent_* for consistency. PiperOrigin-RevId: 434836209
-rw-r--r--CMakeLists.txt51
-rw-r--r--README.md4
2 files changed, 38 insertions, 17 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 44effab..ae976a4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -24,26 +24,43 @@ endif()
include(FetchContent)
-FetchContent_Declare(
- googletest
- GIT_REPOSITORY https://github.com/google/googletest.git
- GIT_TAG release-1.11.0
- GIT_SHALLOW TRUE
- GIT_PROGRESS TRUE
-)
-FetchContent_MakeAvailable(googletest)
-
-FetchContent_Declare(
- abseil-cpp
- GIT_REPOSITORY https://github.com/abseil/abseil-cpp.git
- GIT_TAG 20211102.0
- GIT_SHALLOW TRUE
- GIT_PROGRESS TRUE
-)
+option(INK_STROKE_MODELER_FIND_GTEST
+ "If ON, use find_package to load an existing GoogleTest dependency."
+ OFF)
+
+option(INK_STROKE_MODELER_FIND_ABSL
+ "If ON, use find_package to load an existing Abseil dependency."
+ OFF)
+
+if(INK_STROKE_MODELER_FIND_GTEST)
+ find_package(gtest REQUIRED)
+else()
+ FetchContent_Declare(
+ gtest
+ GIT_REPOSITORY https://github.com/google/googletest.git
+ GIT_TAG release-1.11.0
+ GIT_SHALLOW TRUE
+ GIT_PROGRESS TRUE
+ )
+ FetchContent_MakeAvailable(gtest)
+endif()
+
set(ABSL_PROPAGATE_CXX_STD ON)
# No reason to get two different versions of Googletest.
set(ABSL_USE_EXTERNAL_GOOGLETEST ON)
-FetchContent_MakeAvailable(abseil-cpp)
+set(ABSL_FIND_GOOGLETEST ON)
+if(INK_STROKE_MODELER_FIND_ABSL)
+ find_package(absl REQUIRED)
+else()
+ FetchContent_Declare(
+ absl
+ GIT_REPOSITORY https://github.com/abseil/abseil-cpp.git
+ GIT_TAG 20211102.0
+ GIT_SHALLOW TRUE
+ GIT_PROGRESS TRUE
+ )
+ FetchContent_MakeAvailable(absl)
+endif()
if(CMAKE_CXX_STANDARD LESS 17)
message(FATAL_ERROR
diff --git a/README.md b/README.md
index c01fb53..03b902a 100644
--- a/README.md
+++ b/README.md
@@ -86,6 +86,10 @@ And then include it in your `CMakeLists.txt`, requiring at least C++17:
```cmake
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
+# If you want to use installed (or already fetched) versions of Abseil and/or
+# GTest (for example, if you've installed libabsl-dev and libgtest-dev), add:
+# set(INK_STROKE_MODELER_FIND_ABSL ON)
+# set(INK_STROKE_MODELER_FIND_GTEST ON)
add_subdirectory(ink-stroke-modeler)
```