pw_status: Extend CMake support
Change-Id: Ia3326447039e931fafd383cb0fd2000c9114d80d
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/79880
Pigweed-Auto-Submit: Ewout van Bekkum <ewout@google.com>
Reviewed-by: Wyatt Hepler <hepler@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
diff --git a/pw_status/CMakeLists.txt b/pw_status/CMakeLists.txt
index d4a7faa..09c5f94 100644
--- a/pw_status/CMakeLists.txt
+++ b/pw_status/CMakeLists.txt
@@ -16,11 +16,64 @@
pw_add_module_config(pw_status_CONFIG)
-pw_auto_add_simple_module(pw_status
+pw_add_module_library(pw_status.config
+ HEADERS
+ public/pw_status/internal/config.h
+ PUBLIC_INCLUDES
+ public
PUBLIC_DEPS
- ${pw_status_CONFIG}
+ ${pw_thread_CONFIG}
)
+pw_add_module_library(pw_status
+ HEADERS
+ public/pw_status/status.h
+ public/pw_status/status_with_size.h
+ public/pw_status/try.h
+ PUBLIC_INCLUDES
+ public
+ PUBLIC_DEPS
+ pw_status.config
+ SOURCES
+ status.cc
+)
if(Zephyr_FOUND AND CONFIG_PIGWEED_STATUS)
zephyr_link_libraries(pw_status)
endif()
+
+# Use this for pw_status_CONFIG to require pw::Status objects to be used.
+pw_add_module_library(pw_status.check_if_used
+ PUBLIC_DEFINES
+ PW_STATUS_CFG_CHECK_IF_USED=1
+)
+
+pw_add_test(pw_status.status_test
+ SOURCES
+ status_test.cc
+ status_test_c.c
+ DEPS
+ pw_status
+ GROUPS
+ modules
+ pw_status
+)
+
+pw_add_test(pw_status.status_with_size_test
+ SOURCES
+ status_with_size_test.cc
+ DEPS
+ pw_status
+ GROUPS
+ modules
+ pw_status
+)
+
+pw_add_test(pw_status.try_test
+ SOURCES
+ try_test.cc
+ DEPS
+ pw_status
+ GROUPS
+ modules
+ pw_status
+)