xref: /OK3568_Linux_fs/external/linux-rga/samples/im2d_api_demo/CMakeLists.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1cmake_minimum_required(VERSION 3.5)
2
3if (EXISTS ${BUILD_TOOLCHAINS_PATH})
4message("load ${BUILD_TOOLCHAINS_PATH}")
5include(${BUILD_TOOLCHAINS_PATH})
6endif()
7
8project(rgaImDemo)
9
10if(NOT CMAKE_BUILD_TYPE)
11    message("default to Release build for GCC builds")
12    set(CMAKE_BUILD_TYPE Release CACHE STRING
13        "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel."
14        FORCE)
15endif()
16
17if(CMAKE_BUILD_TARGET STREQUAL android_ndk)
18    message("cmake build android ndk")
19    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-error -DLOG_TAG=librga")
20    add_compile_options(-DLINUX)
21    add_compile_options(-DANDROID_VNDK)
22    string(REPLACE "-DANDROID" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
23endif()
24
25if(CMAKE_BUILD_TARGET STREQUAL buildroot)
26    message("cmake build buildroot")
27    set(CMAKE_CXX_FLAGS "-std=c++11 -O2 -pthread")
28    add_compile_options(-DLINUX)
29endif()
30
31if(CMAKE_BUILD_TARGET STREQUAL cmake_linux)
32    message("RGA build with cmake")
33    add_compile_options(-DLINUX)
34    # TO support pass external CMAKE_CXX_FLAGS
35    set(CMAKE_CXX_FLAGS_EXT "-std=c++11 -O2 -pthread")
36
37    if (NOT DEFINED CMAKE_C_COMPILER)
38        message(FATAL_ERROR "RGA: CMAKE_C_COMPILER not define")
39    endif()
40
41    if (NOT DEFINED CMAKE_CXX_COMPILER)
42        message(FATAL_ERROR "RGA: CMAKE_CXX_COMPILER not define")
43    endif()
44
45endif()
46
47if (EXISTS ${LIBRGA_FILE_LIB}/librga.so)
48	message("load ${LIBRGA_FILE_LIB}/librga.so")
49    set(RGA_LIB ${LIBRGA_FILE_LIB}/librga.so)
50else ()
51    set(RGA_LIB rga)
52endif()
53
54#install path
55if (NOT DEFINED CMAKE_INSTALL_BINDIR)
56    set(CMAKE_INSTALL_BINDIR bin)
57endif()
58
59set(IM2D_DEMO_NAME ${PROJECT_NAME})
60set(IM2D_DEMO_SRCS
61    args.cpp
62    rgaImDemo.cpp)
63set(IM2D_DEMO_INCLUDE
64    ./
65    ../../include
66    ../../im2d_api)
67
68add_executable(${IM2D_DEMO_NAME} ${IM2D_DEMO_SRCS})
69target_include_directories(${IM2D_DEMO_NAME} PUBLIC ${IM2D_DEMO_INCLUDE})
70target_link_libraries(${IM2D_DEMO_NAME} ${RGA_LIB})
71
72install(TARGETS ${IM2D_DEMO_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
73