Skip to content
  1. Aug 04, 2022
    • Lingkai Dong's avatar
      templates: Introduce template framework for examples and tests · f02b4f29
      Lingkai Dong authored
      
      
      We want each example and test to work on all supported reference
      platforms (currently Corstone-300) as well as RTOSes that are compatible
      with any given example. Also, we would like each example to work like a
      typical user project which targets one particular platforms and one
      particular RTOS (or none, if the app runs on bare metal). This creates a
      large matrix of examples x platforms x RTOSes (or baremetal).
      
      To avoid having to maintain all possible combinations, we introduce a
      mechanism for generating examples (similarly for tests). See updated
      documentation for how to use this mechanism.
      
      When the main branch is updated (i.e. an MR is merged), publish newly
      generated examples to the repository that hosts full, ready-to-use
      examples for users' convenience.
      
      In CI runs, all flavors (RTOSes) of the same example are grouped into
      the same pipeline to minimize the number of required runners, while
      different platforms and toolchains are put into their own pipelines
      as before because each of our Docker images contains only one toolchain
      or FVP.
      
      Signed-off-by: Lingkai Dong's avatarLingkai Dong <lingkai.dong@arm.com>
      f02b4f29
    • Lingkai Dong's avatar
      build: Detach examples and tests from the SDK · ab3f6fbd
      Lingkai Dong authored
      
      
      Remove `CMakePresets.json` and detach examples and tests from the SDK.
      This is a first step towards converting every example and test into a
      top-level project that adds the SDK as a dependency.
      
      Remove fetching of toolchain files from `CMakeLists.txt` because
      toolchain files need to be available before a top-level user project is
      declared, which comes before the IoT SDK is added. Examples and tests,
      like user projects, will fetch toolchain files directly.
      
      Previously, examples and integration tests were part of the SDK's CMake
      project, but this is not ideal for the following reasons:
      * A real user project should have itself as the top level CMake project
      and add the SDK with components as dependencies. If an example is under
      the SDK's CMake logic, it loses the benefit of demonstrating proper
      creation of a user project, and users will not be able to take that
      example as a quick start of their own projects.
      * Each example or test application requires its own set of config
      options to be applied to the SDK and components. Examples and tests that
      are part of the SDK project cannot directly set options in their own
      `CMakeLists.txt`s, because options have to be set before components are
      added but executables have to be added after components. We previously
      used CMake presets to set options outside examples, but this adds
      indirection, making code navigation and maintenance difficult.
      * CMake presets are only available when CMake is invoked in the same
      directory, so user projects can't use the presets we provide.
      * To let users select which platform to build examples for, a new config
      option would be needed if examples were under the SDK CMake. But such an
      option might add confusion, because a user project can directly link the
      MCU-Driver-HAL implementation for the particular platform it intends to
      use without an extra option.
      
      Signed-off-by: Lingkai Dong's avatarLingkai Dong <lingkai.dong@arm.com>
      ab3f6fbd
    • Lingkai Dong's avatar
      cmake: Rename project to open-iot-sdk · d4892002
      Lingkai Dong authored
      
      
      The old project name `IoTSDK` does not conform to our convention of
      naming CMake targets with lowercase alphanumericals and dashes
      (`[a-z0-9\-]+`). Use `open-iot-sdk` instead.
      
      This is *not* a breaking change for existing applications that depend
      on the SDK, because
      * applications only link *libraries* fetched by the SDK, not the SDK
      itself which is a project
      * in the fetched path to the SDK, `<NAME>_SOURCE_DIR`, `<NAME>` is
      whatever name the application passes to `FetchContent_Declare()` instead
      of the SDK's own declared name (although it is strongly recommended to
      use the same name for FetchContent, git repository and CMake project)
      
      Signed-off-by: Lingkai Dong's avatarLingkai Dong <lingkai.dong@arm.com>
      d4892002
  2. Aug 03, 2022
  3. Aug 02, 2022
  4. Aug 01, 2022
  5. Jul 27, 2022
  6. Jul 25, 2022
  7. Jul 20, 2022
  8. Jul 14, 2022
  9. Jul 12, 2022
  10. Jul 11, 2022
Loading