mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-19 21:11: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
|
working-directory: FreeRTOS/Demo/Posix_GCC
|
||||||
run: make -j COVERAGE_TEST=1
|
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:
|
MSP430-GCC:
|
||||||
name: GNU MSP430 Toolchain
|
name: GNU MSP430 Toolchain
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
|
@ -230,50 +230,8 @@ elseif((FREERTOS_PORT STREQUAL "A_CUSTOM_PORT") AND (NOT TARGET freertos_kernel_
|
||||||
" freertos_kernel_include)")
|
" freertos_kernel_include)")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
add_library(freertos_kernel STATIC)
|
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(include)
|
||||||
add_subdirectory(portable)
|
add_subdirectory(portable)
|
||||||
|
|
|
@ -21,6 +21,45 @@ set(FREERTOS_PORT "TEMPLATE" CACHE STRING "" FORCE)
|
||||||
# Adding the FreeRTOS-Kernel subdirectory
|
# Adding the FreeRTOS-Kernel subdirectory
|
||||||
add_subdirectory(${FREERTOS_KERNEL_PATH} FreeRTOS-Kernel)
|
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}
|
add_executable(${PROJECT_NAME}
|
||||||
main.c
|
main.c
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in a new issue