if(NOT CMAKE_BUILD_TYPE) 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() cmake_minimum_required(VERSION 2.8...3.22) # surpress CXX_VISIBILITY_PRESET warning if (POLICY CMP0063) # Visibility cmake_policy(SET CMP0063 NEW) endif (POLICY CMP0063) include_directories( ../xcore ../xcore/base ./ ) if(WIN32) set(PREFIX ) set(SUFFIX lib) else() set(PREFIX ${LIBRARY_OUTPUT_PATH}/lib) set(SUFFIX a) endif() if (${CMAKE_SYSTEM_NAME} EQUAL "") set(OS "linux") else() string(TOLOWER ${CMAKE_SYSTEM_NAME} OS) endif() if (${C_LIBRARY_NAME} EQUAL "") set(C_LIBRARY_NAME "glibc" CACHE INTERNAL "" FORCE) endif() string(TOLOWER ${RKAIQ_TARGET_SOC} SOC) macro(dec_algo_v name version chk_file src_list) set(_src_list ${src_list} ${ARGN} ) set(PREBUILT_DIR "${CMAKE_CURRENT_LIST_DIR}/${OS}/${SOC}/${ARCH}/${C_LIBRARY_NAME}") set(LIBPREFIX "${PREBUILT_DIR}/lib") if (${version} EQUAL 0) set(target_name "rkaiq_${name}") set(target_folder "algos/${name}") else() set(target_name "rkaiq_${name}_v${version}") set(target_folder "algos/${name}${version}") endif() if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${chk_file}") add_library(${target_name} STATIC ${_src_list}) set_target_properties(${target_name} PROPERTIES FOLDER "${target_folder}") set_target_properties(${target_name} PROPERTIES CLEAN_DIRECT_OUTPUT 1) set_target_properties(${target_name} PROPERTIES C_VISIBILITY_PRESET default) set_target_properties(${target_name} PROPERTIES CXX_VISIBILITY_PRESET default) if (${RKAIQ_INSTALL_ALGOS_LIB}) install(TARGETS ${target_name} ARCHIVE DESTINATION ${PREBUILT_DIR}) endif() else() message(STATUS "Can NOT found ${CMAKE_CURRENT_SOURCE_DIR}/${chk_file}. Using lib") add_library(${target_name} STATIC IMPORTED GLOBAL) set_target_properties(${target_name} PROPERTIES IMPORTED_LOCATION "${LIBPREFIX}${target_name}.${SUFFIX}") set_target_properties(${target_name} PROPERTIES IMPORTED_IMPLIB "${LIBPREFIX}${target_name}.${SUFFIX}") endif() endmacro(dec_algo_v) macro(dec_algo name chk_file src_list) set(_src_list ${src_list} ${ARGN}) dec_algo_v(${name} 0 ${chk_file} ${_src_list}) endmacro(dec_algo) if (RKAIQ_HAVE_AE_V1) add_subdirectory(ae) endif() add_subdirectory(awb) if (RKAIQ_HAVE_AF_V20 OR RKAIQ_ONLY_AF_STATS_V20 OR RKAIQ_HAVE_AF_V30 OR RKAIQ_ONLY_AF_STATS_V30 OR RKAIQ_HAVE_AF_V31 OR RKAIQ_ONLY_AF_STATS_V31 OR RKAIQ_HAVE_AF_V32_LITE OR RKAIQ_ONLY_AF_STATS_V32_LITE) add_subdirectory(af) endif() if (RKAIQ_HAVE_AIE_V10) add_subdirectory(aie) endif() if (RKAIQ_HAVE_MERGE_V10 OR RKAIQ_HAVE_MERGE_V11 OR RKAIQ_HAVE_MERGE_V12) add_subdirectory(amerge) endif() if (RKAIQ_HAVE_TMO_V1) add_subdirectory(atmo) endif() if (RKAIQ_HAVE_DRC_V10 OR RKAIQ_HAVE_DRC_V11 OR RKAIQ_HAVE_DRC_V12 OR RKAIQ_HAVE_DRC_V12_LITE) add_subdirectory(adrc) endif() if (RKAIQ_HAVE_ANR_V1) add_subdirectory(anr) endif() if (RKAIQ_HAVE_SHARP_V1) add_subdirectory(asharp) endif() if (RKAIQ_HAVE_ASD_V10) add_subdirectory(asd) endif() if (RKAIQ_HAVE_ACP_V10) add_subdirectory(acp) endif() if (RKAIQ_HAVE_DEHAZE_V10 OR RKAIQ_HAVE_DEHAZE_V11 OR RKAIQ_HAVE_DEHAZE_V11_DUO OR RKAIQ_HAVE_DEHAZE_V12) add_subdirectory(adehaze) endif() if (RKAIQ_HAVE_3DLUT_V1) add_subdirectory(a3dlut) endif() if (RKAIQ_HAVE_BLC_V1) add_subdirectory(ablc) endif() if (RKAIQ_HAVE_BLC_V32) add_subdirectory(ablcV32) endif() if (RKAIQ_HAVE_CCM_V1 OR RKAIQ_HAVE_CCM_V2) add_subdirectory(accm) endif() if (RKAIQ_HAVE_CGC_V1) add_subdirectory(acgc) endif() if (RKAIQ_HAVE_DEBAYER_V1 OR RKAIQ_HAVE_DEBAYER_V2 OR RKAIQ_HAVE_DEBAYER_V2_LITE) add_subdirectory(adebayer) endif() if (RKAIQ_HAVE_AFD_V1 OR RKAIQ_HAVE_AFD_V2) add_subdirectory(afd) endif() if (RKAIQ_HAVE_FEC_V10) add_subdirectory(afec) endif() if (RKAIQ_HAVE_GAMMA_V10 OR RKAIQ_HAVE_GAMMA_V11) add_subdirectory(agamma) endif() if (RKAIQ_HAVE_DEGAMMA_V1) add_subdirectory(adegamma) endif() if (RKAIQ_HAVE_GIC_V1 OR RKAIQ_HAVE_GIC_V2) add_subdirectory(agic) endif() if (RKAIQ_HAVE_LDCH_V10 OR RKAIQ_HAVE_LDCH_V21) add_subdirectory(aldch) endif() if (RKAIQ_HAVE_LSC_V1 OR RKAIQ_HAVE_LSC_V2 OR RKAIQ_HAVE_LSC_V3) add_subdirectory(alsc) endif() if (RKAIQ_HAVE_ORB_V1) add_subdirectory(aorb) endif() if (RKAIQ_HAVE_CSM_V1) add_subdirectory(acsm) endif() if (RKAIQ_HAVE_WDR_V1) add_subdirectory(awdr) endif() if (RKAIQ_HAVE_SHARP_V3) add_subdirectory(asharp3) endif() if (RKAIQ_HAVE_YNR_V2) add_subdirectory(aynr2) endif() if (RKAIQ_HAVE_CNR_V1) add_subdirectory(acnr) endif() if (RKAIQ_HAVE_BAYERNR_V2) add_subdirectory(arawnr2) endif() if (RKAIQ_HAVE_EIS_V1) add_subdirectory(aeis) endif() if (RKAIQ_HAVE_AMD_V1) add_subdirectory(amd) endif() if (RKAIQ_HAVE_BAYERNR_V1) add_subdirectory(arawnr) endif() if (RKAIQ_HAVE_YNR_V1) add_subdirectory(aynr) endif() if (RKAIQ_HAVE_UVNR_V1) add_subdirectory(auvnr) endif() if (RKAIQ_HAVE_MFNR_V1) add_subdirectory(amfnr) endif() if (RKAIQ_HAVE_GAIN_V1) add_subdirectory(again) endif() if (RKAIQ_HAVE_GAIN_V2) add_subdirectory(again2) endif() if (RKAIQ_HAVE_YNR_V3) add_subdirectory(aynr3) endif() if (RKAIQ_HAVE_YNR_V22) add_subdirectory(aynrV22) endif() if (RKAIQ_HAVE_CNR_V2) add_subdirectory(acnr2) endif() if (RKAIQ_HAVE_SHARP_V4) add_subdirectory(asharp4) endif() if (RKAIQ_HAVE_SHARP_V33 OR RKAIQ_HAVE_SHARP_V33_LITE) add_subdirectory(asharpV33) endif() if (RKAIQ_HAVE_BAYER2DNR_V2) add_subdirectory(abayer2dnr2) endif() if (RKAIQ_HAVE_BAYER2DNR_V23) add_subdirectory(abayer2dnrV23) endif() if (RKAIQ_HAVE_BAYERTNR_V2) add_subdirectory(abayertnr2) endif() if (RKAIQ_HAVE_BAYERTNR_V23 OR RKAIQ_HAVE_BAYERTNR_V23_LITE) add_subdirectory(abayertnrV23) endif() if (RKAIQ_HAVE_CNR_V30 OR RKAIQ_HAVE_CNR_V30_LITE) add_subdirectory(acnrV30) endif() if (RKAIQ_HAVE_CAC_V03 OR RKAIQ_HAVE_CAC_V10 OR RKAIQ_HAVE_CAC_V11) add_subdirectory(acac) endif() if (RKAIQ_HAVE_DPCC_V1) add_subdirectory(adpcc) endif()