diff options
author | Samuel Freilich <sfreilich@google.com> | 2022-03-15 13:09:21 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2022-03-15 13:09:53 -0700 |
commit | bad9e85a21afe5285647b42050838fd018ee098a (patch) | |
tree | edc8a6da53615b3a7d4b91a823f786e24b42d3b6 | |
parent | 57a5df655002b468581bbc6c35666c78b5b5081e (diff) | |
download | ink-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.txt | 51 | ||||
-rw-r--r-- | README.md | 4 |
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 @@ -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) ``` |