forked from epagris/FreeRTOS-Kernel
		
	Cmake: Create a single static library including port
Modify portable/CMakeLists.txt to create only one static library containing both the common kernel code and kernel port. Change the freertos_kernel_port target from a STATIC library to an OBJECT library and introduce a new freertos_kernel_port_headers INTERFACE library target. --------- Co-authored-by: ABARNAT <ahmed.barnat@actia-engineering.tn> Co-authored-by: Soren Ptak <ptaksoren@gmail.com> Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									8622bd5f49
								
							
						
					
					
						commit
						c565fd45c1
					
				@ -217,16 +217,17 @@ elseif((FREERTOS_PORT STREQUAL "A_CUSTOM_PORT") AND (NOT TARGET freertos_kernel_
 | 
			
		||||
    "    port.c\n"
 | 
			
		||||
    "    portmacro.h\n"
 | 
			
		||||
    " Where FreeRTOSCustomPort/CMakeLists.txt is a modified version of:\n"
 | 
			
		||||
    "   add_library(freertos_kernel_port STATIC)\n"
 | 
			
		||||
    "   add_library(freertos_kernel_port OBJECT)\n"
 | 
			
		||||
    "   target_sources(freertos_kernel_port\n"
 | 
			
		||||
    "     PRIVATE\n"
 | 
			
		||||
    "       port.c\n"
 | 
			
		||||
    "       portmacro.h)\n"
 | 
			
		||||
    "   target_include_directories(freertos_kernel_port\n"
 | 
			
		||||
    "     PUBLIC\n"
 | 
			
		||||
    "   add_library(freertos_kernel_port_headers INTERFACE)\n"
 | 
			
		||||
    "     target_include_directories(freertos_kernel_port_headers INTERFACE \n"
 | 
			
		||||
    "      .)\n"
 | 
			
		||||
    "   target_link_libraries(freertos_kernel_port\n"
 | 
			
		||||
    "     PRIVATE\n"
 | 
			
		||||
    "       freertos_kernel_port_headers\n"
 | 
			
		||||
    "       freertos_kernel_include)")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
@ -257,8 +258,11 @@ endif()
 | 
			
		||||
 | 
			
		||||
target_link_libraries(freertos_kernel
 | 
			
		||||
    PUBLIC
 | 
			
		||||
        freertos_kernel_port
 | 
			
		||||
        freertos_kernel_include
 | 
			
		||||
        freertos_kernel_port_headers
 | 
			
		||||
    PRIVATE
 | 
			
		||||
        freertos_kernel_port
 | 
			
		||||
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
########################################################################
 | 
			
		||||
 | 
			
		||||
@ -15,7 +15,7 @@ endif()
 | 
			
		||||
 | 
			
		||||
# FreeRTOS internal cmake file. Do not use it in user top-level project
 | 
			
		||||
 | 
			
		||||
add_library(freertos_kernel_port STATIC
 | 
			
		||||
add_library(freertos_kernel_port OBJECT
 | 
			
		||||
    # TEMPLATE Port
 | 
			
		||||
    $<$<STREQUAL:${FREERTOS_PORT},TEMPLATE>:
 | 
			
		||||
        template/port.c>
 | 
			
		||||
@ -755,8 +755,9 @@ if( FREERTOS_PORT MATCHES "GCC_ARM_CM(3|4)_MPU" OR
 | 
			
		||||
        Common/mpu_wrappers_v2.c
 | 
			
		||||
    )
 | 
			
		||||
endif()
 | 
			
		||||
add_library(freertos_kernel_port_headers INTERFACE)
 | 
			
		||||
 | 
			
		||||
target_include_directories(freertos_kernel_port PUBLIC
 | 
			
		||||
target_include_directories(freertos_kernel_port_headers INTERFACE
 | 
			
		||||
    # TEMPLATE Port
 | 
			
		||||
    $<$<STREQUAL:${FREERTOS_PORT},TEMPLATE>:${CMAKE_CURRENT_LIST_DIR}/template>
 | 
			
		||||
 | 
			
		||||
@ -1094,6 +1095,7 @@ target_link_libraries(freertos_kernel_port
 | 
			
		||||
    PUBLIC
 | 
			
		||||
        $<$<STREQUAL:${FREERTOS_PORT},GCC_RP2040>:pico_base_headers>
 | 
			
		||||
        $<$<STREQUAL:${FREERTOS_PORT},GCC_XTENSA_ESP32>:idf::esp32>
 | 
			
		||||
        freertos_kernel_port_headers
 | 
			
		||||
    PRIVATE
 | 
			
		||||
        freertos_kernel_include
 | 
			
		||||
        $<$<STREQUAL:${FREERTOS_PORT},GCC_POSIX>:Threads::Threads>
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user