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