mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-19 13:01:57 -04:00
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>
This commit is contained in:
parent
1c465a0890
commit
ef0104e768
21
.github/workflows/kernel-demos.yml
vendored
21
.github/workflows/kernel-demos.yml
vendored
|
@ -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
|
||||
|
|
|
@ -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
|
||||
$<$<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)
|
||||
|
|
|
@ -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
|
||||
)
|
||||
|
|
Loading…
Reference in a new issue