Skip to content

[Feature Request] Support for CMake #556

@phelter

Description

@phelter

Is your feature request related to a problem? Please describe.
As an integrator of FreeRTOS-Plus-TCP would like to support compilation via CMake.

Describe the solution you'd like

I would like to be able to integrate FreeRTOS-Plus-TCP via CMake to support a simpler build environment for native and cross-compilation.

I typically build my environments with an opt-out approach to all warnings and issues linters/compilers provide while compiling/building. The primary compilers I use are GNU and Clang (sometimes MSVC).

I typically pull in repositories of this kind using (FetchContent)[https://cmake.org/cmake/help/latest/module/FetchContent.html?highlight=fetchcontent] functionality as it provides one key benefit over git submodules which is to allow a top level project to dictate the version being pulled, yet others FetchContent repos may request different versions. Allowing the integrator of this project to decide on the version being pulled. It also allows for a simple migration if/when a contributor decides to fork a repo (if required).

Describe alternatives you've considered
There are other build environments out there that support cross compilation (eg. meson, bazel); however, CMake is the most wide spread and widely used. It is also the one that has support in the FreeRTOS-Kernel project as of v10.5.0. Supporting other build environments in the future is not hindered by supporting CMake now.

Additional context
I will provide an example build of the existing code that I lay over the current FreeRTOS-Plus-TCP that allows me to compile for both GCC and CLang and provides hooks to compile with other compilers.

With the addition of the compiler warning opt-out approach it will also identify documentation and other potential fixes that you may want to clean-up within the code, now that those compilers are defined with the strictest of measures.

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions