hc
2025-02-14 bbb9540dc49f70f6b703d1c8d1b85fa5f602d86e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
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)