cmake_minimum_required(VERSION 3.5) enable_testing() set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) message(${CMAKE_CURRENT_SOURCE_DIR}) if(NOT CMAKE_BUILD_TYPE) message("default to Release build for GCC builds") set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." FORCE) endif() ########################## # Command #execute_process(COMMAND bash ${CMAKE_CURRENT_SOURCE_DIR}/version.sh) #execute_process(COMMAND ls) ########################## # Choose compilation method set(TOOL_CHAIN_DIR ${CMAKE_MODULE_PATH}) if(CMAKE_BUILD_TARGET STREQUAL android_ndk) message("set android_ndk toolchain") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error -DLOG_TAG=librga") add_compile_options(-DLINUX) add_compile_options(-DANDROID) # add_compile_options(-DANDROID_VNDK) endif() if(CMAKE_BUILD_TARGET STREQUAL buildroot) message("set buildroot toolchain") set(CMAKE_TOOLCHAIN_FILE ${TOOL_CHAIN_DIR}/buildroot.cmake) include(${TOOL_CHAIN_DIR}/buildroot.cmake) add_compile_options(-DLINUX) set(CMAKE_CXX_FLAGS "-std=c++11 -O2 -pthread") endif() ########################## # Choose a third-party library if(CMAKE_BUILD_THIRD_PARTY STREQUAL drm) message("set third party drm") add_compile_options(-DLIBDRM=1) endif() #add_compile_options(-DRGA3=1) ########################## # Set project project(im2d_rga_slt) include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/sources ${CMAKE_CURRENT_SOURCE_DIR}/../../ ${CMAKE_CURRENT_SOURCE_DIR}/../../include ${CMAKE_CURRENT_SOURCE_DIR}/../../im2d_api ) if(CMAKE_BUILD_THIRD_PARTY STREQUAL drm) include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/third-party/libdrm/include ${CMAKE_CURRENT_SOURCE_DIR}/third-party/libdrm/include/libdrm ) endif() set(IM2D_RGA_SLT_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/sources/rga_im2d_slt.cpp ${CMAKE_CURRENT_SOURCE_DIR}/sources/dma_alloc.cpp ) if(CMAKE_BUILD_THIRD_PARTY STREQUAL drm) set(IM2D_RGA_SLT_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/sources/drm_alloc.cpp ) endif() add_executable(im2d_slt ${IM2D_RGA_SLT_SRCS}) target_link_libraries(im2d_slt "-Wl,--allow-shlib-undefined" dl) target_link_libraries(im2d_slt ${CMAKE_CURRENT_SOURCE_DIR}/../../build_linux/install/lib/librga.so) if(CMAKE_BUILD_THIRD_PARTY STREQUAL drm) target_link_libraries(im2d_slt drm) endif() if(CMAKE_BUILD_TARGET STREQUAL ndk) string(REPLACE "-DANDROID" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") endif() SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) install(TARGETS im2d_slt RUNTIME DESTINATION bin)