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