diff --git a/.github/workflows/kernel-demos.yml b/.github/workflows/kernel-demos.yml index 62970a171..7d83d7482 100644 --- a/.github/workflows/kernel-demos.yml +++ b/.github/workflows/kernel-demos.yml @@ -90,6 +90,27 @@ jobs: working-directory: FreeRTOS/Demo/Posix_GCC run: make -j COVERAGE_TEST=1 + CMake-Example: + name: CMake Example with Native GCC + runs-on: ubuntu-latest + steps: + # Checkout user pull request changes + - name: Checkout Repository + uses: actions/checkout@v3 + + - name: Install GCC + shell: bash + run: | + sudo apt-get -y update + sudo apt-get -y install build-essential + + - name: Build CMake Example Demo + shell: bash + working-directory: examples/cmake_example + run: | + cmake -S . -B build + cmake --build build + MSP430-GCC: name: GNU MSP430 Toolchain runs-on: ubuntu-latest diff --git a/CMakeLists.txt b/CMakeLists.txt index d9ddb7ed7..30172870a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -230,50 +230,8 @@ elseif((FREERTOS_PORT STREQUAL "A_CUSTOM_PORT") AND (NOT TARGET freertos_kernel_ " freertos_kernel_include)") endif() - add_library(freertos_kernel STATIC) -######################################################################## -# Overall Compile Options -# Note the compile option strategy is to error on everything and then -# Per library opt-out of things that are warnings/errors. -# This ensures that no matter what strategy for compilation you take, the -# builds will still occur. -# -# Only tested with GNU and Clang. -# Other options are https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER_ID.html#variable:CMAKE_%3CLANG%3E_COMPILER_ID -# Naming of compilers translation map: -# -# FreeRTOS | CMake -# ------------------- -# CCS | ?TBD? -# GCC | GNU, Clang, *Clang Others? -# IAR | IAR -# Keil | ARMCC -# MSVC | MSVC # Note only for MinGW? -# Renesas | ?TBD? - -target_compile_options(freertos_kernel PRIVATE - ### Gnu/Clang C Options - $<$:-fdiagnostics-color=always> - $<$:-fcolor-diagnostics> - - $<$:-Wall> - $<$:-Wextra> - $<$:-Wpedantic> - $<$:-Werror> - $<$:-Wconversion> - $<$:-Weverything> - - # Suppressions required to build clean with clang. - $<$:-Wno-unused-macros> - $<$:-Wno-padded> - $<$:-Wno-missing-variable-declarations> - $<$:-Wno-covered-switch-default> - $<$:-Wno-cast-align> -) - - ######################################################################## add_subdirectory(include) add_subdirectory(portable) diff --git a/examples/cmake_example/CMakeLists.txt b/examples/cmake_example/CMakeLists.txt index 2bb317296..85329678d 100644 --- a/examples/cmake_example/CMakeLists.txt +++ b/examples/cmake_example/CMakeLists.txt @@ -21,6 +21,45 @@ set(FREERTOS_PORT "TEMPLATE" CACHE STRING "" FORCE) # Adding the FreeRTOS-Kernel subdirectory add_subdirectory(${FREERTOS_KERNEL_PATH} FreeRTOS-Kernel) +######################################################################## +# Overall Compile Options +# Note the compile option strategy is to error on everything and then +# Per library opt-out of things that are warnings/errors. +# This ensures that no matter what strategy for compilation you take, the +# builds will still occur. +# +# Only tested with GNU and Clang. +# Other options are https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER_ID.html#variable:CMAKE_%3CLANG%3E_COMPILER_ID +# Naming of compilers translation map: +# +# FreeRTOS | CMake +# ------------------- +# CCS | ?TBD? +# GCC | GNU, Clang, *Clang Others? +# IAR | IAR +# Keil | ARMCC +# MSVC | MSVC # Note only for MinGW? +# Renesas | ?TBD? + +target_compile_options(freertos_kernel PRIVATE + ### Gnu/Clang C Options + $<$:-fdiagnostics-color=always> + $<$:-fcolor-diagnostics> + + $<$:-Wall> + $<$:-Wextra> + $<$:-Wpedantic> + $<$:-Werror> + $<$:-Wconversion> + $<$:-Weverything> + + # Suppressions required to build clean with clang. + $<$:-Wno-unused-macros> + $<$:-Wno-padded> + $<$:-Wno-missing-variable-declarations> + $<$:-Wno-covered-switch-default> + $<$:-Wno-cast-align> ) + add_executable(${PROJECT_NAME} main.c )