Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FreeRTOS/FreeRTOS-Kernel.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorActoryOu <jay2002824@gmail.com>2023-10-30 18:35:42 +0300
committerGitHub <noreply@github.com>2023-10-30 18:35:42 +0300
commitef0104e7685c45eeebf6ebe06a24f4eb1a28c045 (patch)
treefbbb2d7f17ad5923f1057b5276fb64a583f29e10
parent1c465a0890bb5051a0c262ea1ed7cf6e40246499 (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.yml21
-rw-r--r--CMakeLists.txt42
-rw-r--r--examples/cmake_example/CMakeLists.txt39
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
)