xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/IspFec/CMakeLists.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1if(NOT CMAKE_BUILD_TYPE)
2    set(CMAKE_BUILD_TYPE Release CACHE STRING
3        "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel."
4        FORCE)
5endif()
6
7cmake_minimum_required(VERSION 2.8...3.22)
8
9PROJECT(IspFec)
10
11list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
12
13include(BuildOptions)
14include(CompileOptions)
15include(GNUInstallDirs)
16
17set_property(GLOBAL PROPERTY USE_FOLDERS ON)
18set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMakeTargets")
19
20set(RK_ISPFEC_SOURCE_DIR ${PROJECT_SOURCE_DIR})
21message("rkIspFec src path" ${RK_ISPFEC_SOURCE_DIR})
22
23add_compile_options(-Os)
24add_compile_options(-fstack-protector-strong -D_FORTIFY_SOURCE=2)
25set(RK_ISPFEC_INSTALLED_DIR "${RK_ISPFEC_SOURCE_DIR}/build/linux/output/${ARCH}/installed" CACHE STRING "ISPFEC library installed dir")
26set(RK_ISPFEC_LIB_DIR ${RK_ISPFEC_INSTALLED_DIR}/lib)
27message("rkIspFec lib path" ${RK_ISPFEC_LIB_DIR})
28
29include_directories(
30    ./
31    include/
32    include_prv/
33    )
34
35set (IspFec_SRC
36	src/rk_ispfec.cpp
37	src/RkIspFecHw.cpp
38	src/RkIspFecHwMgr.cpp
39	)
40
41set(ISP_FEC_STATIC_LIB_ARS)
42set(STATIC_LIB_PREFIX $<TARGET_FILE:)
43set(STATIC_LIB_SUFFIX >)
44
45if(RK_GDC_GEN_MESH_ONLINE)
46	list(APPEND IspFec_SRC
47	     src/gen_mesh/genMesh.cpp
48	     src/RkIspFecGenMesh.cpp
49	     )
50
51    set(GENMESH_LIBS genMeshLib)
52    if(ARCH STREQUAL "aarch64")
53        set(GENMESH_LIBS_DIR
54            ${PROJECT_SOURCE_DIR}/src/gen_mesh/linux/genMesh_static_64bit/
55            )
56    else()
57        set(GENMESH_LIBS_DIR
58            ${PROJECT_SOURCE_DIR}/src/gen_mesh/linux/genMesh_static_32bit/
59            )
60    endif()
61
62    list(APPEND ISP_FEC_STATIC_LIB_ARS ${GENMESH_LIBS_DIR}/libgenMeshLib.a)
63    add_compile_options(-DGENMESH_ONLINE)
64endif()
65
66list(APPEND DIR_SRCS ${AFDEMO_DIR_SRCS})
67
68SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/all_lib/${CMAKE_BUILD_TYPE})
69SET(CMAKE_LIBRARY_PATH ${LIBRARY_OUTPUT_PATH})
70
71#set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi")
72#set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
73message(${CMAKE_LIBRARY_PATH})
74message(${LIBRARY_OUTPUT_PATH})
75
76add_definitions(-D_CRT_SECURE_NO_WARNINGS)
77
78link_directories("${RK_ISPFEC_LIB_DIR}" "${GENMESH_LIBS_DIR}")
79add_library(IspFec SHARED ${IspFec_SRC})
80
81target_link_libraries(IspFec
82	PRIVATE
83    ${GENMESH_LIBS})
84
85add_library(IspFec_static STATIC ${IspFec_SRC})
86set_target_properties(IspFec_static PROPERTIES FOLDER "IspFec")
87set_target_properties(IspFec_static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
88
89list(APPEND ISP_FEC_STATIC_LIB_ARS
90    ${STATIC_LIB_PREFIX}IspFec_static${STATIC_LIB_SUFFIX}
91    )
92
93
94#build static libIspFec_static.a
95foreach(STATIC_LIB_AR ${ISP_FEC_STATIC_LIB_ARS})
96        add_custom_command (TARGET IspFec_static POST_BUILD
97        COMMAND ${CMAKE_AR} x ${STATIC_LIB_AR}
98        )
99endforeach()
100
101add_custom_command (TARGET IspFec_static POST_BUILD
102        COMMAND ${CMAKE_AR} rcs ${CMAKE_LIBRARY_PATH}/libIspFec_static.a *.o
103        COMMAND ${CMAKE_STRIP} --strip-debug ${CMAKE_LIBRARY_PATH}/libIspFec_static.a
104        COMMAND rm *.o
105        )
106
107install(DIRECTORY include/ DESTINATION include/IspFec FILES_MATCHING PATTERN "*.h")
108install(FILES ${CMAKE_LIBRARY_PATH}/libIspFec.so DESTINATION lib)
109install(FILES ${CMAKE_LIBRARY_PATH}/libIspFec_static.a DESTINATION lib RENAME libIspFec.a)
110