[linux] Land the First (1st) of Nine (9) Phases for the Linux DeviceLayer Adapation (#614)

* [linux] Add initial Linux platform DeviceLayer.

- Adds Device Layer for Linux.
- Uses SystemLayer Sockets.
- Entropy and time implementations.
- Stub out ble, connectivity, and configuration / storage for follow-on PR.
- Uses pthreads for mutex and tasks.
- Uses std::chrono for monotonic system time.

* [linux] Add PlatformMgr tests.

* [linux] Add CircleCI target for linux device layer.

* [linux] Add fixme reference to LWIP ifdef.

* Restyled by clang-format

* [linux] fix header order; fix build

After the latest rebase, the following error was coming up:

```
../../src/include/platform/ConnectivityManager.h:252:40: fatal error: platform/CHIP_DEVICE_LAYER_TARGET/ConnectivityManagerImpl.h: No such file or directory
  252 | #define CONNECTIVITYMANAGERIMPL_HEADER <platform/CHIP_DEVICE_LAYER_TARGET/ConnectivityManagerImpl.h>
```

Though CHIP_DEVICE_LAYER_TARGET=Linux is set using AC_SUBST in configure.ac,
the definition, which was working fine before, was mysteriously getting lost.
It turns out the header re-ordering PR was the root cause of the issue.

The fix was to change all sources in src/platform/Linux to
move this include first:
    #include <platform/internal/CHIPDeviceLayerInternal.h>

The error did not lead to the fix in an obvious way, so the issue
is being documented here.

* [linux] Update linux-embedded target to follow circleci matrix template.

* [linux] Fix naming nits.

Co-authored-by: Restyled.io <commits@restyled.io>
35 files changed
tree: 6b2daab3fa139990998e3dc4785744a5ad7b633f
  1. .circleci/
  2. .devcontainer/
  3. .github/
  4. .vscode/
  5. autoconf/
  6. config/
  7. docs/
  8. examples/
  9. images/
  10. integrations/
  11. scripts/
  12. src/
  13. tests/
  14. third_party/
  15. tools/
  16. .clang-format
  17. .default-version
  18. .dir-locals.el
  19. .editorconfig
  20. .gitignore
  21. .gitmodules
  22. .prettierrc.json
  23. .restyled.yaml
  24. .shellcheck_tree
  25. bootstrap
  26. CODE_OF_CONDUCT.md
  27. configure.ac
  28. CONTRIBUTING.md
  29. CONTRIBUTORS.md
  30. LICENSE
  31. Makefile-Android
  32. Makefile-bootstrap
  33. Makefile-Standalone
  34. Makefile.am
  35. README.md
  36. repos.conf
  37. REVIEWERS.md
README.md

Connected Home over IP

Build Status codecov

Getting started with CHIP

All documentation is inside of the docs section

Instructions about how to build and develop CHIP can be found here.

Need help?

There are numerous avenues for CHIP support:

Directory Structure

The CHIP repository is structured as follows:

File / FolderContents
.default-versionDefault CHIP version if none is available via source code control tags, .dist-version, or .local-version.
bootstrapGNU autotools bootstrap script for the CHIP build system.
bootstrap-configureConvenience script that will bootstrap the CHIP build system, via bootstrap, and invoke configure.
build/Build system support content and build output directories
BUILDING.mdMore detailed information on configuring and building CHIP for different targets
CODE_OF_CONDUCT.mdCode of Conduct for CHIP, and contributions to it
CONTRIBUTING.mdGuidelines for contributing to CHIP
CONTRIBUTORS.mdContributors to CHIP
docs/Documentation
examples/Example firmware applications that demonstrate use of CHIP technology
integrations/Third party integrations related to this project
integrations/github/GitHub integrations related to this project
integrations/github/actionsGitHub actions related to this project
integrations/docker/Docker scripts and Dockerfiles
images/Images
LICENSECHIP License file (Apache 2.0)
Makefile-AndroidConvenience makefile for building CHIP against Android.
Makefile-iOSConvenience makefile for building CHIP against iOS.
Makefile-StandaloneConvenience makefile for building CHIP as a standalone package on desktop and server systems.
README.mdThis file
src/Implementation of CHIP
tests/Tests for CHIP
third_party/Third-party code used by CHIP.
tools/Tools needed to work with the CHIP repo, as well as develop in the repository

Contributing

We would love for you to contribute to CHIP and help make it even better than it is today! See the CONTRIBUTING.md file for more information.

License

CHIP is released under the Apache 2.0 license Please read more details therein