mcu_hi3321_watch/kernel/freertos/utils/posix/CMakeLists.txt
2025-05-26 20:15:20 +08:00

152 lines
4.5 KiB
CMake

set(COMPONENT_NAME "posix")
set(FREERTOS_POSIX_VERSION Lab-Project-FreeRTOS-POSIX-master)
set(FREERTOS_POSIX_SRC FreeRTOS-Plus-POSIX)
set(POSIX_SRC posix)
set(PORTABLE_INC_PATH ${CMAKE_CURRENT_SOURCE_DIR}/${POSIX_SRC}/include/portable)
set(FREERTOS_POSIX_ZIP ${FREERTOS_POSIX_VERSION}.zip)
if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${FREERTOS_POSIX_VERSION})
execute_process(
COMMAND ${UNZIP} ${FREERTOS_POSIX_ZIP}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
endif()
message("unzip ${FREERTOS_POSIX_ZIP} done\n")
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${FREERTOS_POSIX_VERSION})
execute_process(
COMMAND ${CP_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${FREERTOS_POSIX_VERSION}/${FREERTOS_POSIX_SRC} ${CMAKE_CURRENT_SOURCE_DIR}/${POSIX_SRC}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
endif()
message("cp FreeRTOS-Plus-POSIX src done\n")
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${FREERTOS_POSIX_VERSION})
execute_process(
COMMAND ${CP_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${FREERTOS_POSIX_VERSION}/include ${CMAKE_CURRENT_SOURCE_DIR}/include
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
endif()
message("cp FreeRTOS-Plus-POSIX include done\n")
if(EXISTS ${PORTABLE_INC_PATH})
execute_process(
COMMAND ${MKDIR} ${PORTABLE_INC_PATH}/brandy
WORKING_DIRECTORY ${PORTABLE_INC_PATH}
)
endif()
if(EXISTS ${PORTABLE_INC_PATH}/brandy)
execute_process(
COMMAND ${CP} ${PORTABLE_INC_PATH}/pc/windows/FreeRTOS_POSIX_portable.h ${PORTABLE_INC_PATH}/brandy/FreeRTOS_POSIX_portable.h
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
endif()
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${FREERTOS_POSIX_VERSION})
execute_process(
COMMAND ${RM_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${FREERTOS_POSIX_VERSION}
COMMAND ${RM} ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
message("rm ${CMAKE_CURRENT_SOURCE_DIR}/${FREERTOS_POSIX_VERSION} success\n")
endif()
set(SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/${POSIX_SRC}/source/FreeRTOS_POSIX_mqueue.c
${CMAKE_CURRENT_SOURCE_DIR}/${POSIX_SRC}/source/FreeRTOS_POSIX_pthread_barrier.c
${CMAKE_CURRENT_SOURCE_DIR}/${POSIX_SRC}/source/FreeRTOS_POSIX_pthread.c
${CMAKE_CURRENT_SOURCE_DIR}/${POSIX_SRC}/source/FreeRTOS_POSIX_pthread_cond.c
${CMAKE_CURRENT_SOURCE_DIR}/${POSIX_SRC}/source/FreeRTOS_POSIX_pthread_mutex.c
${CMAKE_CURRENT_SOURCE_DIR}/${POSIX_SRC}/source/FreeRTOS_POSIX_sched.c
${CMAKE_CURRENT_SOURCE_DIR}/${POSIX_SRC}/source/FreeRTOS_POSIX_semaphore.c
${CMAKE_CURRENT_SOURCE_DIR}/${POSIX_SRC}/source/FreeRTOS_POSIX_timer.c
${CMAKE_CURRENT_SOURCE_DIR}/${POSIX_SRC}/source/FreeRTOS_POSIX_utils.c
)
set(PUBLIC_HEADER
${LIB_PUBLIC_HEADER_PATH}
${CMAKE_CURRENT_SOURCE_DIR}/include
${CMAKE_CURRENT_SOURCE_DIR}/include/private
${CMAKE_CURRENT_SOURCE_DIR}/${POSIX_SRC}/include
${CMAKE_CURRENT_SOURCE_DIR}/${POSIX_SRC}/include/portable
${CMAKE_CURRENT_SOURCE_DIR}/${POSIX_SRC}/include/portable/brandy
)
set(PRIVATE_HEADER
)
set(PRIVATE_DEFINES
PTHREAD_MUTEX_DEFAULT=2
)
set(PUBLIC_DEFINES
)
# use this when you want to add ccflags like -include xxx
set(COMPONENT_PUBLIC_CCFLAGS
)
if(${CHIP} MATCHES "ws63")
set(COMPONENT_CCFLAGS
-nostdinc
-nostdlib
"-Wno-error=uninitialized"
"-Wno-error=int-conversion"
"-Wno-error=long-long"
"-Wno-unused-variable"
"-Wno-error=unused-variable"
"-Wno-error=unused-value"
"-Wno-error=unused-function"
"-Wno-error=sign-compare"
"-Wno-error=unused-parameter"
"-Wno-error=tautological-compare"
"-Wno-error=bad-function-cast"
"-Wno-error=incompatible-pointer-types"
"-Wno-error=implicit-function-declaration"
"-Wno-missing-braces"
"-Wno-missing-field-initializers"
)
else()
set(COMPONENT_CCFLAGS
-nostdinc
-nostdlib
-march=rv32imfcxlinxma_xlinxmb_xlinxmc
-mabi=ilp32f
--target=riscv32
"-Wno-error=out-of-line-declaration"
"-Wno-error=uninitialized"
"-Wno-error=int-conversion"
"-Wno-error=enum-conversion"
"-Wno-error=long-long"
"-Wno-unused-variable"
"-Wno-error=unused-variable"
"-Wno-error=unused-value"
"-Wno-error=unused-function"
"-Wno-error=sign-compare"
"-Wno-error=unused-parameter"
"-Wno-error=tautological-compare"
"-Wno-error=bad-function-cast"
"-Wno-error=incompatible-pointer-types"
"-Wno-error=implicit-function-declaration"
"-Wno-missing-braces"
"-Wno-main-return-type"
"-Wno-unused-command-line-argument"
"-Wno-missing-field-initializers"
)
endif()
set(WHOLE_LINK
true
)
set(MAIN_COMPONENT
false
)
build_component()
install_sdk(${CMAKE_CURRENT_SOURCE_DIR} "*")