forked from epagris/FreeRTOS-Kernel
		
	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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user