summaryrefslogtreecommitdiff
path: root/infra/cmake/packages/AbseilConfig.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'infra/cmake/packages/AbseilConfig.cmake')
-rw-r--r--infra/cmake/packages/AbseilConfig.cmake37
1 files changed, 37 insertions, 0 deletions
diff --git a/infra/cmake/packages/AbseilConfig.cmake b/infra/cmake/packages/AbseilConfig.cmake
new file mode 100644
index 000000000..06d36b9ea
--- /dev/null
+++ b/infra/cmake/packages/AbseilConfig.cmake
@@ -0,0 +1,37 @@
+function(_Abseil_import)
+ nnas_find_package(AbseilSource QUIET)
+
+ if(NOT AbseilSource_FOUND)
+ message("Abseil: NOT FOUND (Cannot access source)")
+ set(Abseil_FOUND FALSE PARENT_SCOPE)
+ return()
+ endif(NOT AbseilSource_FOUND)
+
+ if(NOT TARGET abseil)
+ nnas_include(ExternalProjectTools)
+
+ # NOTE Turn off abseil testing
+ set(BUILD_TESTING OFF)
+ add_extdirectory("${AbseilSource_DIR}" ABSEIL)
+
+ add_library(abseil INTERFACE)
+ target_link_libraries(abseil INTERFACE
+ # From "Available Abseil CMake Public Targets" in CMake/README.md
+ absl::base
+ absl::algorithm
+ absl::container
+ absl::debugging
+ absl::memory
+ absl::meta
+ absl::numeric
+ absl::strings
+ absl::synchronization
+ absl::time
+ absl::utility
+ )
+ endif(NOT TARGET abseil)
+
+ set(Abseil_FOUND TRUE PARENT_SCOPE)
+endfunction(_Abseil_import)
+
+_Abseil_import()