1cmake_minimum_required(VERSION 3.5) 2enable_testing() 3 4set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) 5set(CMAKE_EXPORT_COMPILE_COMMANDS ON) 6 7message(${CMAKE_CURRENT_SOURCE_DIR}) 8 9if(NOT CMAKE_BUILD_TYPE) 10 message("default to Release build for GCC builds") 11 set(CMAKE_BUILD_TYPE Release CACHE STRING 12 "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." 13 FORCE) 14endif() 15 16########################## 17# Command 18#execute_process(COMMAND bash ${CMAKE_CURRENT_SOURCE_DIR}/version.sh) 19#execute_process(COMMAND ls) 20 21########################## 22# Choose compilation method 23set(TOOL_CHAIN_DIR ${CMAKE_MODULE_PATH}) 24 25if(CMAKE_BUILD_TARGET STREQUAL android_ndk) 26 message("set android_ndk toolchain") 27 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error -DLOG_TAG=librga") 28 add_compile_options(-DLINUX) 29 add_compile_options(-DANDROID) 30# add_compile_options(-DANDROID_VNDK) 31endif() 32 33if(CMAKE_BUILD_TARGET STREQUAL buildroot) 34 message("set buildroot toolchain") 35 set(CMAKE_TOOLCHAIN_FILE 36 ${TOOL_CHAIN_DIR}/buildroot.cmake) 37 include(${TOOL_CHAIN_DIR}/buildroot.cmake) 38 add_compile_options(-DLINUX) 39 set(CMAKE_CXX_FLAGS "-std=c++11 -O2 -pthread") 40endif() 41 42########################## 43# Choose a third-party library 44if(CMAKE_BUILD_THIRD_PARTY STREQUAL drm) 45 message("set third party drm") 46 add_compile_options(-DLIBDRM=1) 47endif() 48#add_compile_options(-DRGA3=1) 49 50########################## 51# Set project 52project(im2d_rga_slt) 53 54include_directories( 55 ${CMAKE_CURRENT_SOURCE_DIR} 56 ${CMAKE_CURRENT_SOURCE_DIR}/sources 57 ${CMAKE_CURRENT_SOURCE_DIR}/../../ 58 ${CMAKE_CURRENT_SOURCE_DIR}/../../include 59 ${CMAKE_CURRENT_SOURCE_DIR}/../../im2d_api 60) 61 62if(CMAKE_BUILD_THIRD_PARTY STREQUAL drm) 63include_directories( 64 ${CMAKE_CURRENT_SOURCE_DIR}/third-party/libdrm/include 65 ${CMAKE_CURRENT_SOURCE_DIR}/third-party/libdrm/include/libdrm 66) 67endif() 68 69set(IM2D_RGA_SLT_SRCS 70 ${CMAKE_CURRENT_SOURCE_DIR}/sources/rga_im2d_slt.cpp 71 ${CMAKE_CURRENT_SOURCE_DIR}/sources/dma_alloc.cpp 72) 73if(CMAKE_BUILD_THIRD_PARTY STREQUAL drm) 74set(IM2D_RGA_SLT_SRCS 75 ${CMAKE_CURRENT_SOURCE_DIR}/sources/drm_alloc.cpp 76) 77endif() 78 79add_executable(im2d_slt ${IM2D_RGA_SLT_SRCS}) 80 81target_link_libraries(im2d_slt "-Wl,--allow-shlib-undefined" dl) 82target_link_libraries(im2d_slt ${CMAKE_CURRENT_SOURCE_DIR}/../../build_linux/install/lib/librga.so) 83 84if(CMAKE_BUILD_THIRD_PARTY STREQUAL drm) 85 target_link_libraries(im2d_slt drm) 86endif() 87 88if(CMAKE_BUILD_TARGET STREQUAL ndk) 89 string(REPLACE "-DANDROID" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") 90endif() 91 92SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) 93 94install(TARGETS im2d_slt RUNTIME DESTINATION bin) 95