CMakeLists.txt 2.1 KB

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