Commit Graph

4 Commits

Author SHA1 Message Date
Ewout van Bekkum
f89f1379d4 pw_string: redo pw::string::Length
Moves and renames the existing pw::string::Length to
pw::string::internal::ClampedLength. Instead two new helpers are added:
1) pw::string::NullTerminatedLength(...) which returns the length IFF
   the string is null terminated.
2) pw::string::ClampedCString(...) which returns a string_view of
   the clamped string. This is considered safer compared to strnlen_s
   and the existing internal::ClampedLength implementation, since
   sting_view does not require null termination.

Change-Id: Ie6486df13b205332633f3970109ca97f578e6993
Requires: pigweed-internal:12460
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/43463
Reviewed-by: Ewout van Bekkum <ewout@google.com>
Reviewed-by: Wyatt Hepler <hepler@google.com>
Reviewed-by: Keir Mierle <keir@google.com>
Pigweed-Auto-Submit: Ewout van Bekkum <ewout@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
2021-05-13 16:27:34 +00:00
Ewout van Bekkum
c2e9d88a21 pw_string: add pw::string::Copy methods
Adds pw::string::Copy helper methods as a safer alternative to
std::strncpy which unfortunately does not always null terminate.

In addition, the existing StringCopy methods are renamed to
StringOrNullCopy to denote that they support nullptr source strings
unlike pw::string::Copy.

Change-Id: I046c12da02721c5ad2f6601b9ac742d9dfa90c71
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/42931
Reviewed-by: Ewout van Bekkum <ewout@google.com>
Reviewed-by: Wyatt Hepler <hepler@google.com>
Reviewed-by: Keir Mierle <keir@google.com>
Pigweed-Auto-Submit: Ewout van Bekkum <ewout@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
2021-05-12 23:59:13 +00:00
Wyatt Hepler
0a6f763b12 CMake: Revamp CMake build
- Define CMake cache variables (similar to gn args) for facade backends.
- Create simple initial toolchain files for GCC and Clang.
- Misc updates to pigweed.cmake and pw_build/CMakeLists.txt.
- Add or expand various CMakeLists.txt files.
- Watch CMake files in watch.py to support using CMake in pw watch.

Change-Id: I490d157485d02811a11f6a3589a0508ea1851f58
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/22840
Pigweed-Auto-Submit: Wyatt Hepler <hepler@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
Reviewed-by: Keir Mierle <keir@google.com>
2020-11-04 22:31:07 +00:00
Wyatt Hepler
0fbcdfc3cd Basic CMake build
- Automatically add simple modules with pw_auto_add_simmple_module.
- Define libraries in a module with pw_add_module_library.
- Define tests and test groups with pw_add_test and
  pw_add_test_to_groups.
- Tests execute with full Ninja dependency resolution, as in the GN
  build.
- Add CMakeLists.txt for existing modules.
- Currently there is no support for targets, but these libraries would
  be trivial to integrate with an existing CMake build.

Change-Id: If73d8b61bce88f91141737eb773f1ebce3a7676e
2020-01-04 01:05:46 +00:00