1#=============================================================================== 2# @brief cmake file 3# Copyright (c) 2020 HiSilicon (Shanghai) Technologies CO., LIMITED. 4#=============================================================================== 5set(COMPONENT_NAME "osal") 6 7if(NOT DEFINED OS) 8 return() 9endif() 10 11if(${OS} STREQUAL "non-os") 12 set(src_sub nonos) 13elseif(${OS} STREQUAL "liteos") 14 set(src_sub liteos) 15elseif(${OS} STREQUAL "freertos") 16 set(src_sub freertos) 17elseif(${OS} STREQUAL "alios") 18 set(src_sub alios) 19endif() 20 21if(${OS} STREQUAL "non-os" AND NOT "OSAL_NO_PAL" IN_LIST DEFINES) 22 set(SOURCES 23 ${CMAKE_CURRENT_SOURCE_DIR}/adapt/${OS}/pal_non_os_interface.c 24 ${CMAKE_CURRENT_SOURCE_DIR}/adapt/${OS}/pal_print.c 25 ) 26 if(${CHIP} STREQUAL "bs25") 27 list(APPEND SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/adapt/${OS}/osal_addr.c") 28 endif() 29elseif(${OS} STREQUAL "liteos") 30 set(SOURCES 31 ${CMAKE_CURRENT_SOURCE_DIR}/adapt/${OS}/osal_debug_adapt.c 32 ${CMAKE_CURRENT_SOURCE_DIR}/adapt/${OS}/oal_onetrack.c 33 ${CMAKE_CURRENT_SOURCE_DIR}/adapt/${OS}/osal_cpp_adapt.c 34 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_addr.c 35 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_atomic.c 36 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_barrier.c 37 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_cache.c 38 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_completion.c 39 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_debug.c 40 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_drvbox.c 41 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_event.c 42 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_fileops.c 43 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_interrupt.c 44 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_math.c 45 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_msgqueue.c 46 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_mutex.c 47 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_semaphore.c 48 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_spinlock.c 49 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_string.c 50 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_task.c 51 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_timer.c 52 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_wait.c 53 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_workqueue.c 54 ) 55 56if("LOSCFG_FS_PROC" IN_LIST DEFINES) 57 list(APPEND SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_proc.c) 58endif() 59if(NOT "CHIP_WS63=1" IN_LIST DEFINES AND NOT "CHIP_WS53=1" IN_LIST DEFINES AND NOT "LITEOS_208" IN_LIST DEFINES) 60 list(APPEND SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_device.c) 61endif() 62 63elseif(${OS} STREQUAL "freertos") 64 set(SOURCES 65 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_addr.c 66 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_atomic.c 67 # ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_barrier.c 68 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_cache.c 69 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_completion.c 70 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_debug.c 71 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_device.c 72 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_drvbox.c 73 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_event.c 74 # ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_fileops.c 75 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_interrupt.c 76 # ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_math.c 77 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_msgqueue.c 78 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_mutex.c 79 # ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_proc.c 80 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_semaphore.c 81 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_spinlock.c 82 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_string.c 83 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_task.c 84 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_timer.c 85 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_wait.c 86 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_workqueue.c 87 # ${CMAKE_CURRENT_SOURCE_DIR}/adapt/${src_sub}/osal_debug_adapt.c 88 ${CMAKE_CURRENT_SOURCE_DIR}/adapt/${OS}/osal_adapt.c 89 ) 90 91elseif(${OS} STREQUAL "alios") 92 set(SOURCES 93 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_interrupt.c 94 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_string.c 95 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_debug.c 96 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_addr.c 97 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_mutex.c 98 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_semaphore.c 99 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_timer.c 100 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_task.c 101 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_msgqueue.c 102 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_workqueue.c 103 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_atomic.c 104 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_event.c 105 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_spinlock.c 106 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_wait.c 107 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_cache.c 108 ${CMAKE_CURRENT_SOURCE_DIR}/adapt/${OS}/osal_adapt.c 109 ${CMAKE_CURRENT_SOURCE_DIR}/test/${src_sub}/osal_test.c 110 ${CMAKE_CURRENT_SOURCE_DIR}/test/src/osal_test_mutex01.c 111 ${CMAKE_CURRENT_SOURCE_DIR}/test/src/osal_test_mutex02.c 112 ${CMAKE_CURRENT_SOURCE_DIR}/test/src/osal_test_task01.c 113 # ${CMAKE_CURRENT_SOURCE_DIR}/test/src/osal_test_task02.c 114 # ${CMAKE_CURRENT_SOURCE_DIR}/test/src/osal_test_task03.c 115 ${CMAKE_CURRENT_SOURCE_DIR}/test/src/osal_test_task.c 116 ${CMAKE_CURRENT_SOURCE_DIR}/test/src/osal_test_semaphore01.c 117 ${CMAKE_CURRENT_SOURCE_DIR}/test/src/osal_test_timer01.c 118 ${CMAKE_CURRENT_SOURCE_DIR}/test/src/osal_test_workqueue.c 119 ${CMAKE_CURRENT_SOURCE_DIR}/test/src/osal_test_event.c 120 ${CMAKE_CURRENT_SOURCE_DIR}/test/src/osal_test_atomic01.c 121 ${CMAKE_CURRENT_SOURCE_DIR}/test/src/osal_test_atomic02.c 122 #${CMAKE_CURRENT_SOURCE_DIR}/test/src/osal_test_msgqueue.c 123 #${CMAKE_CURRENT_SOURCE_DIR}/test/alios/osal_test_irq.c 124 #${CMAKE_CURRENT_SOURCE_DIR}/test/src/osal_test_spinlock01.c 125 #${CMAKE_CURRENT_SOURCE_DIR}/test/src/osal_test_spinlock03.c 126 ${CMAKE_CURRENT_SOURCE_DIR}/test/src/osal_test_string01.c 127 ${CMAKE_CURRENT_SOURCE_DIR}/test/src/osal_test_string02.c 128 ${CMAKE_CURRENT_SOURCE_DIR}/test/src/osal_test_wait.c 129 ${CMAKE_CURRENT_SOURCE_DIR}/test/src/osal_test_timer02.c 130 ${CMAKE_CURRENT_SOURCE_DIR}/test/src/osal_test_atomic.c 131) 132 133elseif(${OS} STREQUAL "non-os") 134 set(SOURCES 135 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_atomic.c 136 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_debug.c 137 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_interrupt.c 138 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_mutex.c 139 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_semaphore.c 140 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_spinlock.c 141 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_wait.c 142 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub}/osal_task.c 143 ) 144endif() 145 146set(PUBLIC_HEADER 147 ${CMAKE_CURRENT_SOURCE_DIR}/include 148 ${CMAKE_CURRENT_SOURCE_DIR}/include/atomic 149 ${CMAKE_CURRENT_SOURCE_DIR}/include/debug 150 ${CMAKE_CURRENT_SOURCE_DIR}/include/device 151 ${CMAKE_CURRENT_SOURCE_DIR}/include/drvbox 152 ${CMAKE_CURRENT_SOURCE_DIR}/include/event 153 ${CMAKE_CURRENT_SOURCE_DIR}/include/fileops 154 ${CMAKE_CURRENT_SOURCE_DIR}/include/interrupt 155 ${CMAKE_CURRENT_SOURCE_DIR}/include/lock 156 ${CMAKE_CURRENT_SOURCE_DIR}/include/math 157 ${CMAKE_CURRENT_SOURCE_DIR}/include/memory 158 ${CMAKE_CURRENT_SOURCE_DIR}/include/msgqueue 159 ${CMAKE_CURRENT_SOURCE_DIR}/include/proc 160 ${CMAKE_CURRENT_SOURCE_DIR}/include/schedule 161 ${CMAKE_CURRENT_SOURCE_DIR}/include/semaphore 162 ${CMAKE_CURRENT_SOURCE_DIR}/include/string 163 ${CMAKE_CURRENT_SOURCE_DIR}/include/time 164 ${CMAKE_CURRENT_SOURCE_DIR}/adapt/include 165 ${CMAKE_CURRENT_SOURCE_DIR}/test/alios 166 ${CMAKE_CURRENT_SOURCE_DIR}/test/src 167 168) 169 170set(PRIVATE_HEADER 171 ${CMAKE_CURRENT_SOURCE_DIR}/src/${src_sub} 172) 173 174if(${OS} STREQUAL "alios") 175 list(APPEND PRIVATE_HEADER 176 ${ROOT_DIR}/kernel/alios/alios_v3.3.0/components/osal_aos/rhino/include 177 ${ROOT_DIR}/kernel/alios/alios_v3.3.0/components/osal_aos/include/aos 178 ${ROOT_DIR}/kernel/alios/alios_v3.3.0/components/osal_aos/include 179 ) 180endif() 181 182set(PRIVATE_DEFINES 183 CONFIG_LIB_SUPPORT_COMPAT_LINUX 184) 185 186set(PUBLIC_DEFINES 187) 188 189# use this when you want to add ccflags like -include xxx 190set(COMPONENT_PUBLIC_CCFLAGS 191) 192 193set(COMPONENT_CCFLAGS 194 195 -Wno-unused-parameter 196 -Wno-implicit-function-declaration 197 -Wno-sign-compare 198 -Wno-visibility 199) 200 201if(${ARCH} STREQUAL "riscv70") 202set(COMPONENT_CCFLAGS 203 ${COMPONENT_CCFLAGS} 204 -Wno-typedef-redefinition 205) 206endif() 207 208if (${ARCH} STREQUAL "cortex_m7") 209set(COMPONENT_CCFLAGS 210 ${COMPONENT_CCFLAGS} 211 -Wno-error=cast-function-type 212) 213endif() 214 215set(WHOLE_LINK 216 true 217) 218 219set(MAIN_COMPONENT 220 false 221) 222 223build_component() 224 225if (${CHIP} STREQUAL "socmn1") 226 add_subdirectory_if_exist(test) 227endif() 228 229if(syschannel_host_ko IN_LIST TARGET_COMPONENT) 230install_sdk(${CMAKE_SOURCE_DIR}/kernel/osal/src/linux "*") 231endif()