diff options
author | ActoryOu <jay2002824@gmail.com> | 2023-10-30 18:35:42 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-30 18:35:42 +0300 |
commit | ef0104e7685c45eeebf6ebe06a24f4eb1a28c045 (patch) | |
tree | fbbb2d7f17ad5923f1057b5276fb64a583f29e10 | |
parent | 1c465a0890bb5051a0c262ea1ed7cf6e40246499 (diff) |
Move cmake compile options to the example project (#872)
* Move GCC compile option to GCC folder with toolchain option
* Add CI flow to build cmake example
* Fix CI
* formatting && enable Werror
* Add useless variable to test CI
* revert useless variable
* Add comments as examples.
* Remove default compile options.
* Formatting
* Remove compile option in kernel cmake and put the sample in examples/cmake_example
---------
Co-authored-by: Joseph Julicher <jjulicher@mac.com>
-rw-r--r-- | .github/workflows/kernel-demos.yml | 21 | ||||
-rw-r--r-- | CMakeLists.txt | 42 | ||||
-rw-r--r-- | examples/cmake_example/CMakeLists.txt | 39 |
3 files changed, 60 insertions, 42 deletions
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,51 +230,9 @@ 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 - $<$<COMPILE_LANG_AND_ID:C,GNU>:-fdiagnostics-color=always> - $<$<COMPILE_LANG_AND_ID:C,Clang>:-fcolor-diagnostics> - - $<$<COMPILE_LANG_AND_ID:C,Clang,GNU>:-Wall> - $<$<COMPILE_LANG_AND_ID:C,Clang,GNU>:-Wextra> - $<$<COMPILE_LANG_AND_ID:C,Clang,GNU>:-Wpedantic> - $<$<COMPILE_LANG_AND_ID:C,Clang,GNU>:-Werror> - $<$<COMPILE_LANG_AND_ID:C,Clang,GNU>:-Wconversion> - $<$<COMPILE_LANG_AND_ID:C,Clang>:-Weverything> - - # Suppressions required to build clean with clang. - $<$<COMPILE_LANG_AND_ID:C,Clang>:-Wno-unused-macros> - $<$<COMPILE_LANG_AND_ID:C,Clang>:-Wno-padded> - $<$<COMPILE_LANG_AND_ID:C,Clang>:-Wno-missing-variable-declarations> - $<$<COMPILE_LANG_AND_ID:C,Clang>:-Wno-covered-switch-default> - $<$<COMPILE_LANG_AND_ID:C,Clang>:-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 + $<$<COMPILE_LANG_AND_ID:C,GNU>:-fdiagnostics-color=always> + $<$<COMPILE_LANG_AND_ID:C,Clang>:-fcolor-diagnostics> + + $<$<COMPILE_LANG_AND_ID:C,Clang,GNU>:-Wall> + $<$<COMPILE_LANG_AND_ID:C,Clang,GNU>:-Wextra> + $<$<COMPILE_LANG_AND_ID:C,Clang,GNU>:-Wpedantic> + $<$<COMPILE_LANG_AND_ID:C,Clang,GNU>:-Werror> + $<$<COMPILE_LANG_AND_ID:C,Clang,GNU>:-Wconversion> + $<$<COMPILE_LANG_AND_ID:C,Clang>:-Weverything> + + # Suppressions required to build clean with clang. + $<$<COMPILE_LANG_AND_ID:C,Clang>:-Wno-unused-macros> + $<$<COMPILE_LANG_AND_ID:C,Clang>:-Wno-padded> + $<$<COMPILE_LANG_AND_ID:C,Clang>:-Wno-missing-variable-declarations> + $<$<COMPILE_LANG_AND_ID:C,Clang>:-Wno-covered-switch-default> + $<$<COMPILE_LANG_AND_ID:C,Clang>:-Wno-cast-align> ) + add_executable(${PROJECT_NAME} main.c ) |