• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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()