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