xref: /OK3568_Linux_fs/external/mpp/osal/CMakeLists.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# vim: syntax=cmake
2*4882a593Smuzhiyuncmake_minimum_required(VERSION 2.6.3)
3*4882a593SmuzhiyunPROJECT(osal C CXX)
4*4882a593SmuzhiyunINCLUDE(GNUInstallDirs)
5*4882a593Smuzhiyun
6*4882a593Smuzhiyunfind_package(Threads)
7*4882a593Smuzhiyun
8*4882a593Smuzhiyunset(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
9*4882a593Smuzhiyunset(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_REENTRANT -D_GNU_SOURCE")
10*4882a593Smuzhiyunset(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64")
11*4882a593Smuzhiyunset(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
12*4882a593Smuzhiyun
13*4882a593Smuzhiyunif (HAVE_DRM)
14*4882a593Smuzhiyun    add_definitions(-DHAVE_DRM)
15*4882a593Smuzhiyun    set(DRM_FILES allocator/allocator_drm.c)
16*4882a593Smuzhiyun    message(STATUS "compile with drm support")
17*4882a593Smuzhiyunelse()
18*4882a593Smuzhiyun    message(STATUS "compile without drm support")
19*4882a593Smuzhiyunendif()
20*4882a593Smuzhiyun
21*4882a593Smuzhiyunset(MPP_ALLOCATOR
22*4882a593Smuzhiyun    allocator/allocator_std.c
23*4882a593Smuzhiyun    allocator/allocator_ion.c
24*4882a593Smuzhiyun    allocator/allocator_ext_dma.c
25*4882a593Smuzhiyun    allocator/allocator_dma_heap.c
26*4882a593Smuzhiyun    ${DRM_FILES}
27*4882a593Smuzhiyun)
28*4882a593Smuzhiyun
29*4882a593Smuzhiyunset(MPP_DRIVER
30*4882a593Smuzhiyun    driver/mpp_server.cpp
31*4882a593Smuzhiyun    driver/mpp_device.c
32*4882a593Smuzhiyun    driver/mpp_service.c
33*4882a593Smuzhiyun    driver/vcodec_service.c
34*4882a593Smuzhiyun)
35*4882a593Smuzhiyun
36*4882a593Smuzhiyunadd_library(osal STATIC
37*4882a593Smuzhiyun    mpp_soc.cpp
38*4882a593Smuzhiyun    mpp_platform.cpp
39*4882a593Smuzhiyun    mpp_runtime.cpp
40*4882a593Smuzhiyun    mpp_allocator.cpp
41*4882a593Smuzhiyun    mpp_mem_pool.cpp
42*4882a593Smuzhiyun    mpp_callback.cpp
43*4882a593Smuzhiyun    mpp_eventfd.cpp
44*4882a593Smuzhiyun    mpp_thread.cpp
45*4882a593Smuzhiyun    mpp_compat.cpp
46*4882a593Smuzhiyun    mpp_common.cpp
47*4882a593Smuzhiyun    mpp_queue.cpp
48*4882a593Smuzhiyun    mpp_trace.cpp
49*4882a593Smuzhiyun    mpp_lock.cpp
50*4882a593Smuzhiyun    mpp_time.cpp
51*4882a593Smuzhiyun    mpp_list.cpp
52*4882a593Smuzhiyun    mpp_mem.cpp
53*4882a593Smuzhiyun    mpp_env.cpp
54*4882a593Smuzhiyun    mpp_log.cpp
55*4882a593Smuzhiyun    osal_2str.c
56*4882a593Smuzhiyun    # Those files have a compiler marco protection, so only target
57*4882a593Smuzhiyun    # OS will be built
58*4882a593Smuzhiyun    android/os_allocator.c
59*4882a593Smuzhiyun    android/os_mem.c
60*4882a593Smuzhiyun    android/os_env.c
61*4882a593Smuzhiyun    android/os_log.c
62*4882a593Smuzhiyun    linux/os_allocator.c
63*4882a593Smuzhiyun    linux/os_mem.c
64*4882a593Smuzhiyun    linux/os_env.c
65*4882a593Smuzhiyun    linux/os_log.cpp
66*4882a593Smuzhiyun    windows/os_allocator.c
67*4882a593Smuzhiyun    windows/os_mem.c
68*4882a593Smuzhiyun    windows/os_env.c
69*4882a593Smuzhiyun    windows/os_log.c
70*4882a593Smuzhiyun    ${MPP_ALLOCATOR}
71*4882a593Smuzhiyun    ${MPP_DRIVER}
72*4882a593Smuzhiyun)
73*4882a593Smuzhiyun
74*4882a593Smuzhiyuntarget_link_libraries(osal ${CMAKE_THREAD_LIBS_INIT})
75*4882a593Smuzhiyun
76*4882a593Smuzhiyuntarget_include_directories(osal PUBLIC
77*4882a593Smuzhiyun    "${CMAKE_CURRENT_SOURCE_DIR}"
78*4882a593Smuzhiyun    "${CMAKE_CURRENT_SOURCE_DIR}/inc"
79*4882a593Smuzhiyun    "${CMAKE_CURRENT_SOURCE_DIR}/allocator"
80*4882a593Smuzhiyun    "${CMAKE_CURRENT_SOURCE_DIR}/driver/inc"
81*4882a593Smuzhiyun)
82*4882a593Smuzhiyun
83*4882a593Smuzhiyunset_target_properties(osal PROPERTIES FOLDER "osal")
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun# leave those special platform here
86*4882a593Smuzhiyunif(ANDROID)
87*4882a593Smuzhiyun    add_definitions(-static)
88*4882a593Smuzhiyun    # in Android pthread is in libc, also need liblog
89*4882a593Smuzhiyun    target_link_libraries(osal log m)
90*4882a593Smuzhiyunendif(ANDROID)
91*4882a593Smuzhiyun
92*4882a593Smuzhiyun# unit test
93*4882a593Smuzhiyunadd_subdirectory(test)
94