mirror of
				https://github.com/FreeRTOS/FreeRTOS-Kernel.git
				synced 2025-11-03 18:49:02 +01:00 
			
		
		
		
	RP2040: update FreeRTOS_Kernel_import.cmake to match the newer version in Community-Supported-Ports (#1243)
- The newer version looks in Community-Supported-Ports too Co-authored-by: graham sanderson <graham.sanderson@raspeberryi.com>
This commit is contained in:
		
							parent
							
								
									d10ee46811
								
							
						
					
					
						commit
						a470b2d375
					
				@ -10,38 +10,68 @@ if (DEFINED ENV{FREERTOS_KERNEL_PATH} AND (NOT FREERTOS_KERNEL_PATH))
 | 
				
			|||||||
    message("Using FREERTOS_KERNEL_PATH from environment ('${FREERTOS_KERNEL_PATH}')")
 | 
					    message("Using FREERTOS_KERNEL_PATH from environment ('${FREERTOS_KERNEL_PATH}')")
 | 
				
			||||||
endif ()
 | 
					endif ()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
set(FREERTOS_KERNEL_RP2040_RELATIVE_PATH "portable/ThirdParty/GCC/RP2040")
 | 
					# first pass we look in old tree; second pass we look in new tree
 | 
				
			||||||
# undo the above
 | 
					foreach(SEARCH_PASS RANGE 0 1)
 | 
				
			||||||
set(FREERTOS_KERNEL_RP2040_BACK_PATH "../../../..")
 | 
					    if (SEARCH_PASS)
 | 
				
			||||||
 | 
					        # ports may be moving to submodule in the future
 | 
				
			||||||
if (NOT FREERTOS_KERNEL_PATH)
 | 
					        set(FREERTOS_KERNEL_RP2040_RELATIVE_PATH "portable/ThirdParty/Community-Supported-Ports/GCC")
 | 
				
			||||||
    # check if we are inside the FreeRTOS kernel tree (i.e. this file has been included directly)
 | 
					        set(FREERTOS_KERNEL_RP2040_BACK_PATH "../../../../..")
 | 
				
			||||||
    get_filename_component(_ACTUAL_PATH ${CMAKE_CURRENT_LIST_DIR} REALPATH)
 | 
					    else()
 | 
				
			||||||
    get_filename_component(_POSSIBLE_PATH ${CMAKE_CURRENT_LIST_DIR}/${FREERTOS_KERNEL_RP2040_BACK_PATH}/${FREERTOS_KERNEL_RP2040_RELATIVE_PATH} REALPATH)
 | 
					        set(FREERTOS_KERNEL_RP2040_RELATIVE_PATH "portable/ThirdParty/GCC")
 | 
				
			||||||
    if (_ACTUAL_PATH STREQUAL _POSSIBLE_PATH)
 | 
					        set(FREERTOS_KERNEL_RP2040_BACK_PATH "../../../..")
 | 
				
			||||||
        get_filename_component(FREERTOS_KERNEL_PATH ${CMAKE_CURRENT_LIST_DIR}/${FREERTOS_KERNEL_RP2040_BACK_PATH} REALPATH)
 | 
					 | 
				
			||||||
    endif()
 | 
					    endif()
 | 
				
			||||||
    if (_ACTUAL_PATH STREQUAL _POSSIBLE_PATH)
 | 
					 | 
				
			||||||
        get_filename_component(FREERTOS_KERNEL_PATH ${CMAKE_CURRENT_LIST_DIR}/${FREERTOS_KERNEL_RP2040_BACK_PATH} REALPATH)
 | 
					 | 
				
			||||||
        message("Setting FREERTOS_KERNEL_PATH to ${FREERTOS_KERNEL_PATH} based on location of FreeRTOS-Kernel-import.cmake")
 | 
					 | 
				
			||||||
    elseif (PICO_SDK_PATH AND EXISTS "${PICO_SDK_PATH}/../FreeRTOS-Kernel")
 | 
					 | 
				
			||||||
        set(FREERTOS_KERNEL_PATH ${PICO_SDK_PATH}/../FreeRTOS-Kernel)
 | 
					 | 
				
			||||||
        message("Defaulting FREERTOS_KERNEL_PATH as sibling of PICO_SDK_PATH: ${FREERTOS_KERNEL_PATH}")
 | 
					 | 
				
			||||||
    endif()
 | 
					 | 
				
			||||||
endif ()
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
if (NOT FREERTOS_KERNEL_PATH)
 | 
					    if(PICO_PLATFORM STREQUAL "rp2040")
 | 
				
			||||||
    foreach(POSSIBLE_SUFFIX Source FreeRTOS-Kernel FreeRTOS/Source)
 | 
					        set(FREERTOS_KERNEL_RP2040_RELATIVE_PATH "${FREERTOS_KERNEL_RP2040_RELATIVE_PATH}/RP2040")
 | 
				
			||||||
        # check if FreeRTOS-Kernel exists under directory that included us
 | 
					    else()
 | 
				
			||||||
        set(SEARCH_ROOT ${CMAKE_CURRENT_SOURCE_DIR})
 | 
					        if (PICO_PLATFORM STREQUAL "rp2350-riscv")
 | 
				
			||||||
        get_filename_component(_POSSIBLE_PATH ${SEARCH_ROOT}/${POSSIBLE_SUFFIX} REALPATH)
 | 
					            set(FREERTOS_KERNEL_RP2040_RELATIVE_PATH "${FREERTOS_KERNEL_RP2040_RELATIVE_PATH}/RP2350_RISC-V")
 | 
				
			||||||
        if (EXISTS ${_POSSIBLE_PATH}/${FREERTOS_KERNEL_RP2040_RELATIVE_PATH}/CMakeLists.txt)
 | 
					        else()
 | 
				
			||||||
            get_filename_component(FREERTOS_KERNEL_PATH ${_POSSIBLE_PATH} REALPATH)
 | 
					            set(FREERTOS_KERNEL_RP2040_RELATIVE_PATH "${FREERTOS_KERNEL_RP2040_RELATIVE_PATH}/RP2350_ARM_NTZ")
 | 
				
			||||||
            message("Setting FREERTOS_KERNEL_PATH to '${FREERTOS_KERNEL_PATH}' found relative to enclosing project")
 | 
					        endif()
 | 
				
			||||||
 | 
					    endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (NOT FREERTOS_KERNEL_PATH)
 | 
				
			||||||
 | 
					        # check if we are inside the FreeRTOS kernel tree (i.e. this file has been included directly)
 | 
				
			||||||
 | 
					        get_filename_component(_ACTUAL_PATH ${CMAKE_CURRENT_LIST_DIR} REALPATH)
 | 
				
			||||||
 | 
					        get_filename_component(_POSSIBLE_PATH ${CMAKE_CURRENT_LIST_DIR}/${FREERTOS_KERNEL_RP2040_BACK_PATH}/${FREERTOS_KERNEL_RP2040_RELATIVE_PATH} REALPATH)
 | 
				
			||||||
 | 
					        if (_ACTUAL_PATH STREQUAL _POSSIBLE_PATH)
 | 
				
			||||||
 | 
					            get_filename_component(FREERTOS_KERNEL_PATH ${CMAKE_CURRENT_LIST_DIR}/${FREERTOS_KERNEL_RP2040_BACK_PATH} REALPATH)
 | 
				
			||||||
 | 
					        endif()
 | 
				
			||||||
 | 
					        if (_ACTUAL_PATH STREQUAL _POSSIBLE_PATH)
 | 
				
			||||||
 | 
					            get_filename_component(FREERTOS_KERNEL_PATH ${CMAKE_CURRENT_LIST_DIR}/${FREERTOS_KERNEL_RP2040_BACK_PATH} REALPATH)
 | 
				
			||||||
 | 
					            message("Setting FREERTOS_KERNEL_PATH to ${FREERTOS_KERNEL_PATH} based on location of FreeRTOS-Kernel-import.cmake")
 | 
				
			||||||
 | 
					            break()
 | 
				
			||||||
 | 
					        elseif (PICO_SDK_PATH AND EXISTS "${PICO_SDK_PATH}/../FreeRTOS-Kernel")
 | 
				
			||||||
 | 
					            set(FREERTOS_KERNEL_PATH ${PICO_SDK_PATH}/../FreeRTOS-Kernel)
 | 
				
			||||||
 | 
					            message("Defaulting FREERTOS_KERNEL_PATH as sibling of PICO_SDK_PATH: ${FREERTOS_KERNEL_PATH}")
 | 
				
			||||||
            break()
 | 
					            break()
 | 
				
			||||||
        endif()
 | 
					        endif()
 | 
				
			||||||
    endforeach()
 | 
					    endif ()
 | 
				
			||||||
endif()
 | 
					
 | 
				
			||||||
 | 
					    if (NOT FREERTOS_KERNEL_PATH)
 | 
				
			||||||
 | 
					        foreach(POSSIBLE_SUFFIX Source FreeRTOS-Kernel FreeRTOS/Source)
 | 
				
			||||||
 | 
					            # check if FreeRTOS-Kernel exists under directory that included us
 | 
				
			||||||
 | 
					            set(SEARCH_ROOT ${CMAKE_CURRENT_SOURCE_DIR})
 | 
				
			||||||
 | 
					            get_filename_component(_POSSIBLE_PATH ${SEARCH_ROOT}/${POSSIBLE_SUFFIX} REALPATH)
 | 
				
			||||||
 | 
					            if (EXISTS ${_POSSIBLE_PATH}/${FREERTOS_KERNEL_RP2040_RELATIVE_PATH}/CMakeLists.txt)
 | 
				
			||||||
 | 
					                get_filename_component(FREERTOS_KERNEL_PATH ${_POSSIBLE_PATH} REALPATH)
 | 
				
			||||||
 | 
					                message("Setting FREERTOS_KERNEL_PATH to '${FREERTOS_KERNEL_PATH}' found relative to enclosing project")
 | 
				
			||||||
 | 
					                break()
 | 
				
			||||||
 | 
					            endif()
 | 
				
			||||||
 | 
					        endforeach()
 | 
				
			||||||
 | 
					        if (FREERTOS_KERNEL_PATH)
 | 
				
			||||||
 | 
					            break()
 | 
				
			||||||
 | 
					        endif()
 | 
				
			||||||
 | 
					    endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # user must have specified
 | 
				
			||||||
 | 
					    if (FREERTOS_KERNEL_PATH)
 | 
				
			||||||
 | 
					        if (EXISTS "${FREERTOS_KERNEL_PATH}/${FREERTOS_KERNEL_RP2040_RELATIVE_PATH}")
 | 
				
			||||||
 | 
					            break()
 | 
				
			||||||
 | 
					        endif()
 | 
				
			||||||
 | 
					    endif()
 | 
				
			||||||
 | 
					endforeach ()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if (NOT FREERTOS_KERNEL_PATH)
 | 
					if (NOT FREERTOS_KERNEL_PATH)
 | 
				
			||||||
    message(FATAL_ERROR "FreeRTOS location was not specified. Please set FREERTOS_KERNEL_PATH.")
 | 
					    message(FATAL_ERROR "FreeRTOS location was not specified. Please set FREERTOS_KERNEL_PATH.")
 | 
				
			||||||
@ -54,8 +84,8 @@ if (NOT EXISTS ${FREERTOS_KERNEL_PATH})
 | 
				
			|||||||
    message(FATAL_ERROR "Directory '${FREERTOS_KERNEL_PATH}' not found")
 | 
					    message(FATAL_ERROR "Directory '${FREERTOS_KERNEL_PATH}' not found")
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
if (NOT EXISTS ${FREERTOS_KERNEL_PATH}/${FREERTOS_KERNEL_RP2040_RELATIVE_PATH}/CMakeLists.txt)
 | 
					if (NOT EXISTS ${FREERTOS_KERNEL_PATH}/${FREERTOS_KERNEL_RP2040_RELATIVE_PATH}/CMakeLists.txt)
 | 
				
			||||||
    message(FATAL_ERROR "Directory '${FREERTOS_KERNEL_PATH}' does not contain an RP2040 port here: ${FREERTOS_KERNEL_RP2040_RELATIVE_PATH}")
 | 
					    message(FATAL_ERROR "Directory '${FREERTOS_KERNEL_PATH}' does not contain a '${PICO_PLATFORM}' port here: ${FREERTOS_KERNEL_RP2040_RELATIVE_PATH}")
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
set(FREERTOS_KERNEL_PATH ${FREERTOS_KERNEL_PATH} CACHE PATH "Path to the FreeRTOS_KERNEL" FORCE)
 | 
					set(FREERTOS_KERNEL_PATH ${FREERTOS_KERNEL_PATH} CACHE PATH "Path to the FreeRTOS_KERNEL" FORCE)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_subdirectory(${FREERTOS_KERNEL_PATH}/${FREERTOS_KERNEL_RP2040_RELATIVE_PATH} FREERTOS_KERNEL)
 | 
					add_subdirectory(${FREERTOS_KERNEL_PATH}/${FREERTOS_KERNEL_RP2040_RELATIVE_PATH} FREERTOS_KERNEL)
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user