xref: /OK3568_Linux_fs/external/linux-rga/samples/im2d_slt/CMakeLists.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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