xref: /rockchip-linux_mpp/osal/CMakeLists.txt (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
1# vim: syntax=cmake
2cmake_minimum_required(VERSION 2.6.3)
3PROJECT(osal C CXX)
4INCLUDE(GNUInstallDirs)
5
6find_package(Threads)
7
8set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
9set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_REENTRANT -D_GNU_SOURCE")
10set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64")
11set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
12
13set(MPP_ALLOCATOR
14    allocator/allocator_std.c
15    allocator/allocator_ion.c
16    allocator/allocator_ext_dma.c
17    allocator/allocator_dma_heap.c
18    allocator/allocator_drm.c
19)
20
21set(MPP_DRIVER
22    driver/mpp_server.c
23    driver/mpp_device.c
24    driver/mpp_service.c
25    driver/vcodec_service.c
26    driver/mpp_vcodec_client.c
27)
28
29add_library(osal OBJECT
30    mpp_singleton.c
31    mpp_soc.c
32    mpp_platform.c
33    mpp_runtime.c
34    mpp_allocator.c
35    mpp_mem_pool.c
36    mpp_callback.c
37    mpp_eventfd.c
38    mpp_dmabuf.c
39    mpp_thread.c
40    mpp_compat.c
41    mpp_common.c
42    mpp_queue.c
43    mpp_trace.c
44    mpp_lock.c
45    mpp_time.c
46    mpp_list.c
47    mpp_mem.c
48    mpp_env.c
49    mpp_log.c
50    osal_2str.c
51    # Those files have a compiler marco protection, so only target
52    # OS will be built
53    android/os_mem.c
54    android/os_env.c
55    android/os_log.c
56    linux/os_mem.c
57    linux/os_env.c
58    linux/os_log.c
59    ${MPP_ALLOCATOR}
60    ${MPP_DRIVER}
61)
62
63target_link_libraries(osal ${CMAKE_THREAD_LIBS_INIT})
64
65target_include_directories(osal PUBLIC
66    "${CMAKE_CURRENT_SOURCE_DIR}"
67    "${CMAKE_CURRENT_SOURCE_DIR}/inc"
68    "${CMAKE_CURRENT_SOURCE_DIR}/allocator"
69    "${CMAKE_CURRENT_SOURCE_DIR}/driver/inc"
70)
71
72set_target_properties(osal PROPERTIES FOLDER "osal")
73
74# leave those special platform here
75if(ANDROID)
76    add_definitions(-static)
77    # in Android pthread is in libc, also need liblog
78    # Android 14 requires libc++ not libstdc++
79    if("${ANDROID_STL}" STREQUAL "c++_static")
80        target_link_libraries(osal log ${LIBM})
81    else()
82        target_link_libraries(osal log stdc++ ${LIBM})
83    endif()
84endif(ANDROID)
85
86# unit test
87add_subdirectory(test)
88