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 7if(NOT CMAKE_BUILD_TYPE STREQUAL "Release") 8 add_definitions(-DBUILD_TYPE_DEBUG) 9endif() 10 11cmake_minimum_required(VERSION 2.8...3.22) 12 13PROJECT(rk_aiq) 14 15list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") 16 17set(C_LIBRARY_NAME "glibc" CACHE INTERNAL "") 18include(CheckGlibc) 19CHECK_GLIBC_VERSION() 20 21include(BuildOptions) 22include(CompileOptions) 23include(GNUInstallDirs) 24 25configure_file( 26 "${PROJECT_SOURCE_DIR}/cmake/rkaiq_config.h.in" 27 "${PROJECT_BINARY_DIR}/config.h" 28 ) 29 30find_package(libdl QUIET) 31if (libdl_FOUND) 32 add_compile_options(${LIBDL_CFLAGS}) 33endif() 34 35if (RKAIQ_USE_RAWSTREAM_LIB) 36 message("USE_RAWSTREAM_LIB") 37 add_compile_options(-DUSE_RAWSTREAM_LIB) 38endif() 39 40find_package(librga QUIET) 41if (librga_FOUND) 42 add_compile_options(${LIBRGA_CFLAGS}) 43endif() 44 45if (RKAIQ_ENABLE_LIBDRM) 46find_package(libdrm QUIET) 47endif() 48if (libdrm_FOUND) 49 add_compile_options(${LIBDRM_CFLAGS}) 50endif() 51 52add_compile_options(${ISP_HW_VERSION}) 53 54set_property(GLOBAL PROPERTY USE_FOLDERS ON) 55set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMakeTargets") 56 57if(NOT RKAIQ_ENABLE_SIMULATOR) 58 set(GENMESH_ONLINE true) 59 if("${ARCH}" STREQUAL "arm") 60 set(MOTION_DETECT true) 61 endif() 62endif() 63 64include_directories( 65 xcore 66 xcore/base 67 aiq_core 68 algos 69 algos_camgroup 70 common 71 common/linux 72 hwi 73 hwi/isp20 74 ipc 75 iq_parser 76 iq_parser_v2 77 uAPI 78 uAPI/include 79 uAPI2 80 ipc_server 81 ./ 82 ./common/ 83 include 84 include/common 85 include/common/mediactl 86 include/iq_parser 87 include/iq_parser_v2 88 include/uAPI 89 include/uAPI2 90 include/xcore 91 include/xcore/base 92 include/algos 93 include/algos/a3dlut 94 include/algos/ablc 95 include/algos/accm 96 include/algos/acgc 97 include/algos/acp 98 include/algos/adebayer 99 include/algos/adehaze 100 include/algos/adpcc 101 include/algos/ae 102 include/algos/afd 103 include/algos/af 104 include/algos/afec 105 include/algos/agamma 106 include/algos/adegamma 107 include/algos/agic 108 include/algos/amerge 109 include/algos/atmo 110 include/algos/adrc 111 include/algos/aie 112 include/algos/aldch 113 include/algos/alsc 114 include/algos/anr 115 include/algos/anr/tnr_md 116 include/algos/aorb 117 include/algos/acsm 118 include/algos/asd 119 include/algos/asharp 120 include/algos/awb 121 include/algos/awdr 122 include/algos/asharp3 123 include/algos/aynr2 124 include/algos/acnr 125 include/algos/aeis 126 include/common/gen_mesh 127 include/ipc_server 128 include/amd 129 include/algos/arawnr 130 include/algos/aynr 131 include/algos/auvnr 132 include/algos/amfnr 133 include/algos/again 134 include/algos/aynr3 135 include/algos/acnr2 136 include/algos/asharp4 137 include/algos/abayer2dnr2 138 include/algos/abayertnr2 139 include/algos/again2 140 include/algos/acac 141 include/algos_camgroup/ae 142 include/algos_camgroup/awb 143 include/algos/abayer2dnrV23 144 include/algos/abayertnrV23 145 include/algos/aynrV22 146 include/algos/acnrV30 147 include/algos/asharpV33 148 include/algos/ablcV32 149 ${PROJECT_BINARY_DIR} 150 ) 151 152set(ALGO_HANDLE_SRC 153 aiq_core/algo_handlers/RkAiqAwbHandle.cpp 154 ) 155 156if (RKAIQ_HAVE_YNR_V2) 157 add_compile_options(-DRKAIQ_HAVE_YNR_V2=1) 158 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAynrV2Handle.cpp) 159endif() 160 161if (RKAIQ_HAVE_AWB_V20) 162 add_compile_options(-DRKAIQ_HAVE_AWB_V20=1) 163 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAwbHandle.cpp) 164 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqCustomAwbHandle.cpp) 165endif() 166 167if (RKAIQ_HAVE_AWB_V21) 168 add_compile_options(-DRKAIQ_HAVE_AWB_V21=1) 169 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAwbV21Handle.cpp) 170 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqCustomAwbHandle.cpp) 171endif() 172 173if (RKAIQ_HAVE_AWB_V32) 174 add_compile_options(-DRKAIQ_HAVE_AWB_V32=1) 175 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAwbV32Handle.cpp) 176 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqCustomAwbHandle.cpp) 177 if (RKAIQ_HAVE_AWB_V32LT) 178 add_compile_options(-DRKAIQ_HAVE_AWB_V32LT=1) 179 endif() 180endif() 181 182if (RKAIQ_HAVE_GIC_V1 OR RKAIQ_HAVE_GIC_V2) 183 if (RKAIQ_HAVE_GIC_V1) 184 add_compile_options(-DRKAIQ_HAVE_GIC_V1=1) 185 endif() 186 if (RKAIQ_HAVE_GIC_V2) 187 add_compile_options(-DRKAIQ_HAVE_GIC_V2=1) 188 endif() 189 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAgicHandle.cpp) 190endif() 191 192if (RKAIQ_HAVE_ORB_V1) 193 add_compile_options(-DRKAIQ_HAVE_ORB_V1=1) 194 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAorbHandle.cpp) 195endif() 196 197if (RKAIQ_HAVE_EIS_V1) 198 add_compile_options(-DRKAIQ_HAVE_EIS_V1=1) 199 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAeisHandle.cpp) 200endif() 201 202if (RKAIQ_HAVE_CAC_V03) 203 add_compile_options(-DRKAIQ_HAVE_CAC_V03=1) 204 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAcacV3Handle.cpp) 205endif() 206 207if (RKAIQ_HAVE_CAC_V10) 208 add_compile_options(-DRKAIQ_HAVE_CAC_V10=1) 209 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAcacHandle.cpp) 210endif() 211 212if (RKAIQ_HAVE_CAC_V11) 213 add_compile_options(-DRKAIQ_HAVE_CAC_V11=1) 214 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAcacV11Handle.cpp) 215endif() 216 217if (RKAIQ_HAVE_YNR_V1) 218 add_compile_options(-DRKAIQ_HAVE_YNR_V1=1) 219 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAynrHandle.cpp) 220endif() 221 222if (RKAIQ_HAVE_YNR_V3) 223 add_compile_options(-DRKAIQ_HAVE_YNR_V3=1) 224 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAynrV3Handle.cpp) 225endif() 226 227if (RKAIQ_HAVE_YNR_V22) 228 add_compile_options(-DRKAIQ_HAVE_YNR_V22=1) 229 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAynrV22Handle.cpp) 230endif() 231 232if (RKAIQ_HAVE_UVNR_V1) 233 add_compile_options(-DRKAIQ_HAVE_UVNR_V1=1) 234 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAcnrHandle.cpp) 235endif() 236 237if (RKAIQ_HAVE_CNR_V1) 238 add_compile_options(-DRKAIQ_HAVE_CNR_V1=1) 239 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAcnrV1Handle.cpp) 240endif() 241 242if (RKAIQ_HAVE_CNR_V2) 243 add_compile_options(-DRKAIQ_HAVE_CNR_V2=1) 244 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAcnrV2Handle.cpp) 245endif() 246 247if (RKAIQ_HAVE_CNR_V30) 248 add_compile_options(-DRKAIQ_HAVE_CNR_V30=1) 249 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAcnrV30Handle.cpp) 250endif() 251 252if (RKAIQ_HAVE_CNR_V30_LITE) 253 add_compile_options(-DRKAIQ_HAVE_CNR_V30_LITE=1) 254 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAcnrV30Handle.cpp) 255endif() 256 257if (RKAIQ_HAVE_SHARP_V1) 258 add_compile_options(-DRKAIQ_HAVE_SHARP_V1=1) 259 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAsharpHandle.cpp) 260endif() 261 262if (RKAIQ_HAVE_SHARP_V3) 263 add_compile_options(-DRKAIQ_HAVE_SHARP_V3=1) 264 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAsharpV3Handle.cpp) 265endif() 266 267if (RKAIQ_HAVE_SHARP_V4) 268 add_compile_options(-DRKAIQ_HAVE_SHARP_V4=1) 269 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAsharpV4Handle.cpp) 270endif() 271 272if (RKAIQ_HAVE_SHARP_V33) 273 add_compile_options(-DRKAIQ_HAVE_SHARP_V33=1) 274 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAsharpV33Handle.cpp) 275endif() 276 277if (RKAIQ_HAVE_SHARP_V33_LITE) 278 add_compile_options(-DRKAIQ_HAVE_SHARP_V33_LITE=1) 279 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAsharpV33Handle.cpp) 280endif() 281 282if (RKAIQ_HAVE_MFNR_V1) 283 add_compile_options(-DRKAIQ_HAVE_MFNR_V1=1) 284 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAmfnrHandle.cpp) 285endif() 286 287if (RKAIQ_HAVE_BAYERNR_V1) 288 add_compile_options(-DRKAIQ_HAVE_BAYERNR_V1=1) 289 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqArawnrHandle.cpp) 290endif() 291 292if (RKAIQ_HAVE_BAYERNR_V2) 293 add_compile_options(-DRKAIQ_HAVE_BAYERNR_V2=1) 294 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqArawnrV2Handle.cpp) 295endif() 296 297if (RKAIQ_HAVE_BAYER2DNR_V2) 298 add_compile_options(-DRKAIQ_HAVE_BAYER2DNR_V2=1) 299 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAbayer2dnrV2Handle.cpp) 300endif() 301 302if (RKAIQ_HAVE_BAYER2DNR_V23) 303 add_compile_options(-DRKAIQ_HAVE_BAYER2DNR_V23=1) 304 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAbayer2dnrV23Handle.cpp) 305endif() 306 307if (RKAIQ_HAVE_BAYERTNR_V2) 308 add_compile_options(-DRKAIQ_HAVE_BAYERTNR_V2=1) 309 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAbayertnrV2Handle.cpp) 310endif() 311 312if (RKAIQ_HAVE_BAYERTNR_V23) 313 add_compile_options(-DRKAIQ_HAVE_BAYERTNR_V23=1) 314 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAbayertnrV23Handle.cpp) 315endif() 316 317if (RKAIQ_HAVE_BAYERTNR_V23_LITE) 318 add_compile_options(-DRKAIQ_HAVE_BAYERTNR_V23_LITE=1) 319 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAbayertnrV23Handle.cpp) 320endif() 321 322if (RKAIQ_HAVE_GAIN_V1) 323 add_compile_options(-DRKAIQ_HAVE_GAIN_V1=1) 324 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAgainHandle.cpp) 325endif() 326 327if (RKAIQ_HAVE_GAIN_V2) 328 add_compile_options(-DRKAIQ_HAVE_GAIN_V2=1) 329 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAgainV2Handle.cpp) 330endif() 331 332if (RKAIQ_HAVE_BLC_V1) 333 add_compile_options(-DRKAIQ_HAVE_BLC_V1=1) 334 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAblcHandle.cpp) 335endif() 336 337if (RKAIQ_HAVE_BLC_V32) 338 add_compile_options(-DRKAIQ_HAVE_BLC_V32=1) 339 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAblcV32Handle.cpp) 340endif() 341 342if (RKAIQ_HAVE_ANR_V1) 343 add_compile_options(-DRKAIQ_HAVE_ANR_V1=1) 344 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAnrHandle.cpp) 345endif() 346 347if (RKAIQ_HAVE_AMD_V1) 348 add_compile_options(-DRKAIQ_HAVE_AMD_V1=1) 349 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAmdHandle.cpp) 350endif() 351 352if (RKAIQ_HAVE_AF_V20 OR RKAIQ_HAVE_AF_V30 OR RKAIQ_HAVE_AF_V31 OR RKAIQ_HAVE_AF_V32_LITE) 353 add_compile_options(-DRKAIQ_HAVE_AF=1) 354 if (RKAIQ_HAVE_AF_V20) 355 add_compile_options(-DRKAIQ_HAVE_AF_V20=1) 356 endif() 357 if (RKAIQ_HAVE_AF_V30) 358 add_compile_options(-DRKAIQ_HAVE_AF_V30=1) 359 endif() 360 if (RKAIQ_HAVE_AF_V31) 361 add_compile_options(-DRKAIQ_HAVE_AF_V31=1) 362 endif() 363 if (RKAIQ_HAVE_AF_V32_LITE) 364 add_compile_options(-DRKAIQ_HAVE_AF_V32_LITE=1) 365 endif() 366 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAfHandle.cpp) 367endif() 368 369if (RKAIQ_ONLY_AF_STATS_V20 OR RKAIQ_ONLY_AF_STATS_V30 OR RKAIQ_ONLY_AF_STATS_V31 OR RKAIQ_ONLY_AF_STATS_V32_LITE) 370 add_compile_options(-DRKAIQ_HAVE_AF=1) 371 if (RKAIQ_ONLY_AF_STATS_V20) 372 add_compile_options(-DRKAIQ_ONLY_AF_STATS_V20=1) 373 endif() 374 if (RKAIQ_ONLY_AF_STATS_V30) 375 add_compile_options(-DRKAIQ_ONLY_AF_STATS_V30=1) 376 endif() 377 if (RKAIQ_ONLY_AF_STATS_V31) 378 add_compile_options(-DRKAIQ_ONLY_AF_STATS_V31=1) 379 endif() 380 if (RKAIQ_ONLY_AF_STATS_V32_LITE) 381 add_compile_options(-DRKAIQ_ONLY_AF_STATS_V32_LITE=1) 382 endif() 383 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAfHandle.cpp) 384endif() 385 386if (RKAIQ_HAVE_3DLUT_V1) 387 add_compile_options(-DRKAIQ_HAVE_3DLUT_V1=1) 388 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqA3dlutHandle.cpp) 389endif() 390 391if (RKAIQ_HAVE_CCM_V1 OR RKAIQ_HAVE_CCM_V2) 392 if (RKAIQ_HAVE_CCM_V1) 393 add_compile_options(-DRKAIQ_HAVE_CCM_V1=1) 394 endif() 395 if (RKAIQ_HAVE_CCM_V2) 396 add_compile_options(-DRKAIQ_HAVE_CCM_V2=1) 397 endif() 398 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAccmHandle.cpp) 399endif() 400 401if (RKAIQ_HAVE_GAMMA_V10 OR RKAIQ_HAVE_GAMMA_V11) 402 if (RKAIQ_HAVE_GAMMA_V10) 403 add_compile_options(-DRKAIQ_HAVE_GAMMA_V10=1) 404 endif() 405 if (RKAIQ_HAVE_GAMMA_V11) 406 add_compile_options(-DRKAIQ_HAVE_GAMMA_V11=1) 407 endif() 408 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAgammaHandle.cpp) 409endif() 410 411if (RKAIQ_HAVE_MERGE_V10 OR RKAIQ_HAVE_MERGE_V11 OR RKAIQ_HAVE_MERGE_V12) 412 if (RKAIQ_HAVE_MERGE_V10) 413 add_compile_options(-DRKAIQ_HAVE_MERGE_V10=1) 414 endif() 415 if (RKAIQ_HAVE_MERGE_V11) 416 add_compile_options(-DRKAIQ_HAVE_MERGE_V11=1) 417 endif() 418 if (RKAIQ_HAVE_MERGE_V12) 419 add_compile_options(-DRKAIQ_HAVE_MERGE_V12=1) 420 endif() 421 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAmergeHandle.cpp) 422endif() 423 424if (RKAIQ_HAVE_DRC_V10 OR RKAIQ_HAVE_DRC_V11 OR RKAIQ_HAVE_DRC_V12 OR RKAIQ_HAVE_DRC_V12_LITE) 425 if (RKAIQ_HAVE_DRC_V10) 426 add_compile_options(-DRKAIQ_HAVE_DRC_V10=1) 427 endif() 428 if (RKAIQ_HAVE_DRC_V11) 429 add_compile_options(-DRKAIQ_HAVE_DRC_V11=1) 430 endif() 431 if (RKAIQ_HAVE_DRC_V12) 432 add_compile_options(-DRKAIQ_HAVE_DRC_V12=1) 433 endif() 434 if (RKAIQ_HAVE_DRC_V12_LITE) 435 add_compile_options(-DRKAIQ_HAVE_DRC_V12_LITE=1) 436 endif() 437 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAdrcHandle.cpp) 438endif() 439 440if (RKAIQ_HAVE_DEHAZE_V10 OR RKAIQ_HAVE_DEHAZE_V11 OR RKAIQ_HAVE_DEHAZE_V11_DUO OR RKAIQ_HAVE_DEHAZE_V12) 441 if (RKAIQ_HAVE_DEHAZE_V10) 442 add_compile_options(-DRKAIQ_HAVE_DEHAZE_V10=1) 443 endif() 444 if (RKAIQ_HAVE_DEHAZE_V11) 445 add_compile_options(-DRKAIQ_HAVE_DEHAZE_V11=1) 446 endif() 447 if (RKAIQ_HAVE_DEHAZE_V11_DUO) 448 add_compile_options(-DRKAIQ_HAVE_DEHAZE_V11_DUO=1) 449 endif() 450 if (RKAIQ_HAVE_DEHAZE_V12) 451 add_compile_options(-DRKAIQ_HAVE_DEHAZE_V12=1) 452 endif() 453 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAdehazeHandle.cpp) 454endif() 455 456if (RKAIQ_HAVE_DEGAMMA_V1) 457 add_compile_options(-DRKAIQ_HAVE_DEGAMMA_V1=1) 458 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAdegammaHandle.cpp) 459endif() 460 461if (RKAIQ_HAVE_TMO_V1) 462 add_compile_options(-DRKAIQ_HAVE_TMO_V1=1) 463 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAtmoHandle.cpp) 464endif() 465 466if (RKAIQ_HAVE_WDR_V1) 467 add_compile_options(-DRKAIQ_HAVE_WDR_V1=1) 468 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAwdrHandle.cpp) 469endif() 470 471if (RKAIQ_HAVE_LDCH_V10) 472 add_compile_options(-DRKAIQ_HAVE_LDCH_V10=1) 473 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAldchHandle.cpp) 474endif() 475 476if (RKAIQ_HAVE_LDCH_V21) 477 add_compile_options(-DRKAIQ_HAVE_LDCH_V21=1) 478 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAldchHandle.cpp) 479endif() 480 481if (RKAIQ_HAVE_FEC_V10) 482 add_compile_options(-DRKAIQ_HAVE_FEC_V10=1) 483 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAfecHandle.cpp) 484endif() 485 486if (RKAIQ_HAVE_CSM_V1) 487 add_compile_options(-DRKAIQ_HAVE_CSM_V1=1) 488 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAcsmHandle.cpp) 489endif() 490 491if (RKAIQ_HAVE_CGC_V1) 492 add_compile_options(-DRKAIQ_HAVE_CGC_V1=1) 493 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAcgcHandle.cpp) 494endif() 495 496if (RKAIQ_HAVE_AE_V1) 497 add_compile_options(-DRKAIQ_HAVE_AE_V1=1) 498 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAeHandle.cpp) 499 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqCustomAeHandle.cpp) 500endif() 501 502if (RKAIQ_HAVE_AFD_V1 OR RKAIQ_HAVE_AFD_V2) 503 if (RKAIQ_HAVE_AFD_V1) 504 add_compile_options(-DRKAIQ_HAVE_AFD_V1=1) 505 endif() 506 if (RKAIQ_HAVE_AFD_V2) 507 add_compile_options(-DRKAIQ_HAVE_AFD_V2=1) 508 endif() 509 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAfdHandle.cpp) 510endif() 511 512if (RKAIQ_HAVE_DEBAYER_V1 OR RKAIQ_HAVE_DEBAYER_V2 OR RKAIQ_HAVE_DEBAYER_V2_LITE) 513 if (RKAIQ_HAVE_DEBAYER_V1) 514 add_compile_options(-DRKAIQ_HAVE_DEBAYER_V1=1) 515 endif() 516 if (RKAIQ_HAVE_DEBAYER_V2) 517 add_compile_options(-DRKAIQ_HAVE_DEBAYER_V2=1) 518 endif() 519 if (RKAIQ_HAVE_DEBAYER_V2_LITE) 520 add_compile_options(-DRKAIQ_HAVE_DEBAYER_V2_LITE=1) 521 endif() 522 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAdebayerHandle.cpp) 523endif() 524 525if (RKAIQ_HAVE_LSC_V1 OR RKAIQ_HAVE_LSC_V2 OR RKAIQ_HAVE_LSC_V3) 526 if (RKAIQ_HAVE_LSC_V1) 527 add_compile_options(-DRKAIQ_HAVE_LSC_V1=1) 528 endif() 529 if (RKAIQ_HAVE_LSC_V2) 530 add_compile_options(-DRKAIQ_HAVE_LSC_V2=1) 531 endif() 532 if (RKAIQ_HAVE_LSC_V3) 533 add_compile_options(-DRKAIQ_HAVE_LSC_V3=1) 534 endif() 535 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAlscHandle.cpp) 536endif() 537 538if (RKAIQ_HAVE_DPCC_V1) 539 add_compile_options(-DRKAIQ_HAVE_DPCC_V1=1) 540 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAdpccHandle.cpp) 541endif() 542 543if (RKAIQ_HAVE_ACP_V10) 544 add_compile_options(-DRKAIQ_HAVE_ACP_V10=1) 545 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAcpHandle.cpp) 546endif() 547 548if (RKAIQ_HAVE_AIE_V10) 549 add_compile_options(-DRKAIQ_HAVE_AIE_V10=1) 550 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAieHandle.cpp) 551endif() 552 553if (RKAIQ_HAVE_ASD_V10) 554 add_compile_options(-DRKAIQ_HAVE_ASD_V10=1) 555 list(APPEND ALGO_HANDLE_SRC aiq_core/algo_handlers/RkAiqAsdHandle.cpp) 556endif() 557 558set(AIQ_CORE_SRC 559 ${ALGO_HANDLE_SRC} 560 aiq_core/RkAiqHandle.cpp 561 aiq_core/RkAiqCore.cpp 562 aiq_core/MessageBus.cpp 563 aiq_core/RkAiqAnalyzeGroupManager.cpp 564 aiq_core/RkAiqResourceTranslator.cpp 565 aiq_core/RkAiqResourceTranslatorV21.cpp 566 aiq_core/RkAiqResourceTranslatorV3x.cpp 567 aiq_core/RkAiqResourceTranslatorV32.cpp 568 RkAiqCamProfiles.cpp 569 ) 570 571if (RKAIQ_ISP_VERSION STREQUAL "20") 572 list(APPEND AIQ_CORE_SRC aiq_core/RkLumaCore.cpp) 573endif() 574 575if (RKAIQ_HAVE_THUMBNAILS) 576 add_compile_options(-DRKAIQ_HAVE_THUMBNAILS) 577 set(AIQ_CORE_SRC 578 ${AIQ_CORE_SRC} 579 aiq_core/thumbnails.cpp 580 ) 581endif() 582 583set(ALGO_COMMON_SRC 584 algos/interpolation.cpp 585 ) 586 587if(GENMESH_ONLINE) 588 set(COMMON_SRC 589 common/mediactl/mediactl.c 590 common/gen_mesh/genMesh.cpp 591 common/code_to_pixel_format.cpp 592 common/media_buffer/media_buffer.c 593 common/media_buffer/media_buffer_pool.c 594 ) 595else() 596 set(COMMON_SRC 597 common/mediactl/mediactl.c 598 ) 599endif() 600 601if(RKAIQ_ENABLE_SIMULATOR) 602 set(HWI_SRC 603 hwi/CamHwBase.cpp 604 hwi/simulator/CamHwSimulator.cpp 605 ) 606else() 607 set(HWI_SRC 608 hwi/CamHwBase.cpp 609 hwi/isp20/CamHwIsp20.cpp 610 hwi/isp20/Isp20Params.cpp 611 hwi/isp20/Isp20StatsBuffer.cpp 612 hwi/isp20/Isp20_module_dbg.cpp 613 hwi/isp20/Stream.cpp 614 hwi/isp20/RawStreamCapUnit.cpp 615 hwi/isp20/RawStreamProcUnit.cpp 616 hwi/isp20/PdafStreamProcUnit.cpp 617 hwi/isp20/CaptureRawData.cpp 618 hwi/isp20/CifScaleStream.cpp 619 hwi/isp21/CamHwIsp21.cpp 620 hwi/isp3x/CamHwIsp3x.cpp 621 hwi/isp32/CamHwIsp32.cpp 622 hwi/SensorHw.cpp 623 hwi/LensHw.cpp 624 hwi/FlashLight.cpp 625 hwi/image_processor.cpp 626 hwi/isp20/Isp20Evts.cpp 627 ) 628endif() 629 630if (RKAIQ_HAVE_MULTIISP) 631 add_compile_options(-DRKAIQ_HAVE_MULTIISP) 632 set(HWI_SRC 633 ${HWI_SRC} 634 hwi/IspParamsSplitter.cpp 635 ) 636endif() 637 638if (RKAIQ_ISP_VERSION STREQUAL "20") 639 list(APPEND HWI_SRC 640 hwi/isp20/NrStatsStream.cpp 641 hwi/isp20/TnrStatsStream.cpp 642 hwi/isp20/NrStreamProcUnit.cpp 643 hwi/isp20/FecParamStream.cpp 644 hwi/isp20/TnrStreamProcUnit.cpp 645 ) 646endif() 647 648if (RKAIQ_HAVE_FAKECAM) 649 add_compile_options(-DRKAIQ_ENABLE_FAKECAM) 650 list(APPEND HWI_SRC 651 hwi/fakecamera/FakeCamHwIsp20.cpp 652 hwi/fakecamera/FakeSensorHw.cpp 653 ) 654endif() 655 656if (RKAIQ_HAVE_SPSTREAM) 657 add_compile_options(-DRKAIQ_ENABLE_SPSTREAM) 658 list(APPEND HWI_SRC 659 hwi/isp20/SPStreamProcUnit.cpp 660 ) 661endif() 662 663if(RKAIQ_ENABLE_PARSER_V1) 664 add_compile_options(-DRKAIQ_ENABLE_PARSER_V1) 665 set(IQ_PARSER_SRC 666 iq_parser/RkAiqCalibParser.cpp 667 iq_parser/RkAiqCalibDb.cpp 668 iq_parser/RkAiqCalibTag.cpp 669 iq_parser/tinyxml2.cpp 670 iq_parser/xmltags.cpp 671 iq_parser/RkAiqCalibApi.cpp 672 ) 673 set(IQ_PARSER_V2_SRC 674 iq_parser_v2/awb_xml2json.cpp 675 iq_parser_v2/bayernr_xml2json_v1.cpp 676 iq_parser_v2/mfnr_xml2json_v1.cpp 677 iq_parser_v2/ynr_xml2json_v1.cpp 678 iq_parser_v2/uvnr_xml2json_v1.cpp 679 iq_parser_v2/sharp_xml2json_v1.cpp 680 iq_parser_v2/edgefilter_xml2json_v1.cpp 681 ) 682endif() 683 684set(UAPI_SRC 685 #uAPI/rk_aiq_user_api_sysctl.cpp 686 uAPI2/rk_aiq_user_api2_sysctl.cpp 687 uAPI2/rk_aiq_user_api2_debug.cpp 688 uAPI2/rk_aiq_user_api2_helper.cpp 689 uAPI2/rk_aiq_user_api2_wrapper.cpp 690 ) 691 692set(XCORE_SRC 693 xcore/xcam_common.cpp 694 xcore/xcam_log.cpp 695 xcore/xcam_thread.cpp 696 xcore/xcam_buffer.cpp 697 xcore/video_buffer.cpp 698 xcore/v4l2_buffer_proxy.cpp 699 xcore/v4l2_device.cpp 700 xcore/fake_v4l2_device.cpp 701 xcore/buffer_pool.cpp 702 xcore/poll_thread.cpp 703 xcore/smart_buffer_priv.cpp 704 ) 705 706if (libdrm_FOUND) 707 set(XCORE_SRC 708 ${XCORE_SRC} 709 xcore/drm_device.cpp 710 xcore/drm_buffer.cpp 711 xcore/dma_buffer.cpp 712 xcore/dma_video_buffer.cpp 713 ) 714endif() 715 716set (IPC_SERVER_SRC 717 ipc_server/socket_server.cpp 718 ipc_server/rkaiq_tool_ae.cpp 719 ipc_server/rkaiq_tool_anr.cpp 720 ipc_server/rkaiq_tool_imgproc.cpp 721 ipc_server/rkaiq_tool_sharp.cpp 722 ipc_server/rkaiq_tool_sysctl.cpp 723 ipc_server/command_process.cpp 724 ipc_server/MessageParser.cpp 725 ) 726 727set (INI_READER_SRC 728 common/rkaiq_ini.c 729 ) 730 731set (RK_AIQ_SRC 732 ${ALGO_COMMON_SRC} 733 ${COMMON_SRC} 734 ${HWI_SRC} 735 ${IPC_SRC} 736 ${IQ_PARSER_SRC} 737 ${IQ_PARSER_V2_SRC} 738 ${UAPI_SRC} 739 ${XCORE_SRC} 740 ${AIQ_CORE_SRC} 741 ${IPC_SERVER_SRC} 742 ${INI_READER_SRC} 743 RkAiqManager.cpp 744 ) 745 746if (RKAIQ_ENABLE_CAMGROUP) 747 aux_source_directory(aiq_core/algo_camgroup_handlers ALGO_CAMGROUP_HANDLE_SRC) 748 add_compile_options(-DRKAIQ_ENABLE_CAMGROUP) 749 set (RK_AIQ_SRC 750 ${RK_AIQ_SRC} 751 RkAiqCamGroupManager.cpp 752 aiq_core/RkAiqCamgroupHandle.cpp 753 ${ALGO_CAMGROUP_HANDLE_SRC} 754 ) 755endif() 756 757set(RK_AIQ_STATIC_LIB_ARS) 758set(STATIC_LIB_PREFIX $<TARGET_FILE:) 759set(STATIC_LIB_SUFFIX >) 760 761if(GENMESH_ONLINE AND (RKAIQ_HAVE_LDCH_V10 OR RKAIQ_HAVE_LDCH_V21 OR RKAIQ_HAVE_FEC_V10)) 762 set(GENMESH_LIBS genMeshLib) 763 if(ARCH STREQUAL "aarch64") 764 set(GENMESH_LIBS_DIR 765 ${PROJECT_SOURCE_DIR}/common/gen_mesh/linux/genMesh_static_64bit/ 766 ) 767 else() 768 set(GENMESH_LIBS_DIR 769 ${PROJECT_SOURCE_DIR}/common/gen_mesh/linux/genMesh_static_32bit/ 770 ) 771 endif() 772 list(APPEND RK_AIQ_STATIC_LIB_ARS ${GENMESH_LIBS_DIR}/libgenMeshLib.a) 773 add_compile_options(-DGENMESH_ONLINE) 774endif() 775 776if (RKAIQ_HAVE_AMD_V1) 777if(MOTION_DETECT) 778 set(MOTION_DETECT_LIBS rkaiq_tnr_md) 779endif() 780endif() 781 782if (RKAIQ_HAVE_PDAF) 783 add_compile_options(-DRKAIQ_HAVE_PDAF=1) 784endif() 785if (RKAIQ_HAVE_PDAF) 786 set (PDAF_LIBS rkaiq_pdaf) 787 list(APPEND RK_AIQ_STATIC_LIB_ARS 788 ${STATIC_LIB_PREFIX}rkaiq_pdaf${STATIC_LIB_SUFFIX}) 789endif() 790 791# set output binary path 792if(WIN32) 793 SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/exe) 794 SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/all_lib/) 795 SET(CMAKE_LIBRARY_PATH ${LIBRARY_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}) 796else() 797 SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/exe/${CMAKE_BUILD_TYPE}) 798 SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/all_lib/${CMAKE_BUILD_TYPE}) 799 SET(CMAKE_LIBRARY_PATH ${LIBRARY_OUTPUT_PATH}) 800endif() 801 802#set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi") 803#set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF") 804message(${CMAKE_LIBRARY_PATH}) 805message(${LIBRARY_OUTPUT_PATH}) 806 807 808add_subdirectory(iq_parser_v2) 809include_directories(include/iq_parser_v2) 810include_directories(include/iq_parser_v2/j2s) 811 812add_subdirectory(algos) 813if (RKAIQ_ENABLE_CAMGROUP) 814 add_subdirectory(algos_camgroup) 815endif() 816 817cmake_policy(SET CMP0015 NEW) 818 819link_directories("${LIBRARY_OUTPUT_PATH}" "${OPENCV_LIBS_DIR}" "${GENMESH_LIBS_DIR}") 820 821add_library(rkaiq_tmp STATIC ${RK_AIQ_SRC}) 822set_target_properties(rkaiq_tmp PROPERTIES FOLDER "rk_aiq") 823set_target_properties(rkaiq_tmp PROPERTIES CLEAN_DIRECT_OUTPUT 1) 824add_dependencies(rkaiq_tmp j2s_parser) 825 826if (RKAIQ_BUILD_BINARY_IQ) 827 add_dependencies(rkaiq_tmp j2s4b) 828endif() 829 830add_library(rkaiq SHARED ${RK_AIQ_SRC}) 831set_target_properties(rkaiq PROPERTIES FOLDER "rk_aiq") 832set_target_properties(rkaiq PROPERTIES CLEAN_DIRECT_OUTPUT 1) 833set_target_properties(rkaiq PROPERTIES C_VISIBILITY_PRESET default) 834set_target_properties(rkaiq PROPERTIES CXX_VISIBILITY_PRESET default) 835 836target_link_libraries(rkaiq 837 PRIVATE 838 rkaiq_tmp 839 rkaiq_ae 840 rkaiq_awb 841 ${OPENCV_LIBS} 842 ${OPENCV_3RDPARTY_LIBS} 843 ${GENMESH_LIBS} 844 ${MOTION_DETECT_LIBS} 845 pthread) 846 847list(APPEND RK_AIQ_STATIC_LIB_ARS 848 ${STATIC_LIB_PREFIX}rkaiq_tmp${STATIC_LIB_SUFFIX} 849 ${STATIC_LIB_PREFIX}rkaiq_ae${STATIC_LIB_SUFFIX} 850 ${STATIC_LIB_PREFIX}rkaiq_awb${STATIC_LIB_SUFFIX} 851 ) 852 853if (RKAIQ_HAVE_YNR_V2) 854target_link_libraries(rkaiq 855 PRIVATE 856 rkaiq_aynr_v2 857 ) 858list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_aynr_v2${STATIC_LIB_SUFFIX}) 859endif() 860 861if (RKAIQ_HAVE_GIC_V1 OR RKAIQ_HAVE_GIC_V2) 862target_link_libraries(rkaiq 863 PRIVATE 864 rkaiq_agic 865 ) 866list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_agic${STATIC_LIB_SUFFIX}) 867endif() 868 869if (RKAIQ_HAVE_ORB_V1) 870target_link_libraries(rkaiq 871 PRIVATE 872 rkaiq_aorb 873 ) 874list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_aorb${STATIC_LIB_SUFFIX}) 875endif() 876 877if (RKAIQ_HAVE_EIS_V1) 878target_link_libraries(rkaiq 879 PRIVATE 880 rkaiq_aeis 881 ) 882list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_aeis${STATIC_LIB_SUFFIX}) 883endif() 884 885if (RKAIQ_HAVE_CAC_V03 OR RKAIQ_HAVE_CAC_V10 OR RKAIQ_HAVE_CAC_V11) 886target_link_libraries(rkaiq 887 PRIVATE 888 rkaiq_acac 889 ) 890list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_acac${STATIC_LIB_SUFFIX}) 891endif() 892 893if (RKAIQ_HAVE_YNR_V1) 894target_link_libraries(rkaiq 895 PRIVATE 896 rkaiq_aynr_v1 897 ) 898list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_aynr_v1${STATIC_LIB_SUFFIX}) 899endif() 900 901if (RKAIQ_HAVE_YNR_V3) 902target_link_libraries(rkaiq 903 PRIVATE 904 rkaiq_aynr_v3 905 ) 906list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_aynr_v3${STATIC_LIB_SUFFIX}) 907endif() 908 909if (RKAIQ_HAVE_YNR_V22) 910target_link_libraries(rkaiq 911 PRIVATE 912 rkaiq_aynr_v22 913 ) 914list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_aynr_v22${STATIC_LIB_SUFFIX}) 915endif() 916 917if (RKAIQ_HAVE_UVNR_V1) 918target_link_libraries(rkaiq 919 PRIVATE 920 rkaiq_auvnr_v1 921 ) 922list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_auvnr_v1${STATIC_LIB_SUFFIX}) 923endif() 924 925if (RKAIQ_HAVE_CNR_V1) 926target_link_libraries(rkaiq 927 PRIVATE 928 rkaiq_acnr_v1 929 ) 930list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_acnr_v1${STATIC_LIB_SUFFIX}) 931endif() 932 933if (RKAIQ_HAVE_CNR_V2) 934target_link_libraries(rkaiq 935 PRIVATE 936 rkaiq_acnr_v2 937 ) 938list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_acnr_v2${STATIC_LIB_SUFFIX}) 939endif() 940 941if (RKAIQ_HAVE_CNR_V30 OR RKAIQ_HAVE_CNR_V30_LITE) 942target_link_libraries(rkaiq 943 PRIVATE 944 rkaiq_acnr_v30 945 ) 946list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_acnr_v30${STATIC_LIB_SUFFIX}) 947endif() 948 949if (RKAIQ_HAVE_SHARP_V1) 950target_link_libraries(rkaiq 951 PRIVATE 952 rkaiq_asharp 953 ) 954list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_asharp${STATIC_LIB_SUFFIX}) 955endif() 956 957if (RKAIQ_HAVE_SHARP_V3) 958target_link_libraries(rkaiq 959 PRIVATE 960 rkaiq_asharp_v3 961 ) 962list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_asharp_v3${STATIC_LIB_SUFFIX}) 963endif() 964 965if (RKAIQ_HAVE_SHARP_V4) 966target_link_libraries(rkaiq 967 PRIVATE 968 rkaiq_asharp_v4 969 ) 970list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_asharp_v4${STATIC_LIB_SUFFIX}) 971endif() 972 973if (RKAIQ_HAVE_SHARP_V33 OR RKAIQ_HAVE_SHARP_V33_LITE) 974target_link_libraries(rkaiq 975 PRIVATE 976 rkaiq_asharp_v33 977 ) 978list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_asharp_v33${STATIC_LIB_SUFFIX}) 979endif() 980 981if (RKAIQ_HAVE_MFNR_V1) 982target_link_libraries(rkaiq 983 PRIVATE 984 rkaiq_amfnr_v1 985 ) 986list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_amfnr_v1${STATIC_LIB_SUFFIX}) 987endif() 988 989if (RKAIQ_HAVE_BAYERNR_V1) 990target_link_libraries(rkaiq 991 PRIVATE 992 rkaiq_arawnr_v1 993 ) 994list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_arawnr_v1${STATIC_LIB_SUFFIX}) 995endif() 996 997if (RKAIQ_HAVE_BAYERNR_V2) 998target_link_libraries(rkaiq 999 PRIVATE 1000 rkaiq_arawnr_v2 1001 ) 1002list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_arawnr_v2${STATIC_LIB_SUFFIX}) 1003endif() 1004 1005if (RKAIQ_HAVE_BAYER2DNR_V2) 1006target_link_libraries(rkaiq 1007 PRIVATE 1008 rkaiq_abayer2dnr_v2 1009 ) 1010list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_abayer2dnr_v2${STATIC_LIB_SUFFIX}) 1011endif() 1012 1013if (RKAIQ_HAVE_BAYER2DNR_V23) 1014target_link_libraries(rkaiq 1015 PRIVATE 1016 rkaiq_abayer2dnr_v23 1017 ) 1018list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_abayer2dnr_v23${STATIC_LIB_SUFFIX}) 1019endif() 1020 1021if (RKAIQ_HAVE_BAYERTNR_V2) 1022target_link_libraries(rkaiq 1023 PRIVATE 1024 rkaiq_abayertnr_v2 1025 ) 1026list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_abayertnr_v2${STATIC_LIB_SUFFIX}) 1027endif() 1028 1029if (RKAIQ_HAVE_BAYERTNR_V23 OR RKAIQ_HAVE_BAYERTNR_V23_LITE) 1030target_link_libraries(rkaiq 1031 PRIVATE 1032 rkaiq_abayertnr_v23 1033 ) 1034list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_abayertnr_v23${STATIC_LIB_SUFFIX}) 1035endif() 1036 1037if (RKAIQ_HAVE_GAIN_V1) 1038target_link_libraries(rkaiq 1039 PRIVATE 1040 rkaiq_again_v1 1041 ) 1042list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_again_v1${STATIC_LIB_SUFFIX}) 1043endif() 1044 1045if (RKAIQ_HAVE_GAIN_V2) 1046target_link_libraries(rkaiq 1047 PRIVATE 1048 rkaiq_again_v2 1049 ) 1050list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_again_v2${STATIC_LIB_SUFFIX}) 1051endif() 1052 1053if (RKAIQ_HAVE_BLC_V1) 1054target_link_libraries(rkaiq 1055 PRIVATE 1056 rkaiq_ablc 1057 ) 1058list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_ablc${STATIC_LIB_SUFFIX}) 1059endif() 1060 1061if (RKAIQ_HAVE_BLC_V32) 1062target_link_libraries(rkaiq 1063 PRIVATE 1064 rkaiq_ablc_v32 1065 ) 1066list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_ablc_v32${STATIC_LIB_SUFFIX}) 1067endif() 1068 1069if (RKAIQ_HAVE_ANR_V1) 1070target_link_libraries(rkaiq 1071 PRIVATE 1072 rkaiq_anr 1073 ) 1074list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_anr${STATIC_LIB_SUFFIX}) 1075endif() 1076 1077 1078if (RKAIQ_HAVE_AMD_V1) 1079target_link_libraries(rkaiq 1080 PRIVATE 1081 rkaiq_amd 1082 ) 1083list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_amd${STATIC_LIB_SUFFIX}) 1084endif() 1085 1086if (RKAIQ_HAVE_AF_V20 OR RKAIQ_HAVE_AF_V30 OR RKAIQ_HAVE_AF_V31 OR RKAIQ_HAVE_AF_V32_LITE) 1087target_link_libraries(rkaiq 1088 PRIVATE 1089 rkaiq_af 1090 ${PDAF_LIBS} 1091 ) 1092list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_af${STATIC_LIB_SUFFIX}) 1093elseif (RKAIQ_ONLY_AF_STATS_V20 OR RKAIQ_ONLY_AF_STATS_V30 OR RKAIQ_ONLY_AF_STATS_V31 OR RKAIQ_ONLY_AF_STATS_V32_LITE) 1094target_link_libraries(rkaiq 1095 PRIVATE 1096 rkaiq_thirdaf 1097 ) 1098list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_thirdaf${STATIC_LIB_SUFFIX}) 1099endif() 1100 1101if (RKAIQ_HAVE_3DLUT_V1) 1102target_link_libraries(rkaiq 1103 PRIVATE 1104 rkaiq_a3dlut 1105 ) 1106list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_a3dlut${STATIC_LIB_SUFFIX}) 1107endif() 1108if (RKAIQ_HAVE_CCM_V1 OR RKAIQ_HAVE_CCM_V2) 1109target_link_libraries(rkaiq 1110 PRIVATE 1111 rkaiq_accm 1112 ) 1113list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_accm${STATIC_LIB_SUFFIX}) 1114endif() 1115 1116if (RKAIQ_HAVE_GAMMA_V10 OR RKAIQ_HAVE_GAMMA_V11) 1117target_link_libraries(rkaiq 1118 PRIVATE 1119 rkaiq_agamma 1120 ) 1121list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_agamma${STATIC_LIB_SUFFIX}) 1122endif() 1123 1124if (RKAIQ_HAVE_MERGE_V10 OR RKAIQ_HAVE_MERGE_V11 OR RKAIQ_HAVE_MERGE_V12) 1125target_link_libraries(rkaiq 1126 PRIVATE 1127 rkaiq_amerge 1128 ) 1129list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_amerge${STATIC_LIB_SUFFIX}) 1130endif() 1131 1132if (RKAIQ_HAVE_DRC_V10 OR RKAIQ_HAVE_DRC_V11 OR RKAIQ_HAVE_DRC_V12 OR RKAIQ_HAVE_DRC_V12_LITE) 1133target_link_libraries(rkaiq 1134 PRIVATE 1135 rkaiq_adrc 1136 ) 1137list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_adrc${STATIC_LIB_SUFFIX}) 1138endif() 1139 1140if (RKAIQ_HAVE_DEHAZE_V10 OR RKAIQ_HAVE_DEHAZE_V11 OR RKAIQ_HAVE_DEHAZE_V11_DUO OR RKAIQ_HAVE_DEHAZE_V12) 1141target_link_libraries(rkaiq 1142 PRIVATE 1143 rkaiq_adehaze 1144 ) 1145list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_adehaze${STATIC_LIB_SUFFIX}) 1146endif() 1147 1148if (RKAIQ_HAVE_DEGAMMA_V1) 1149target_link_libraries(rkaiq 1150 PRIVATE 1151 rkaiq_adegamma 1152 ) 1153list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_adegamma${STATIC_LIB_SUFFIX}) 1154endif() 1155 1156if (RKAIQ_HAVE_TMO_V1) 1157target_link_libraries(rkaiq 1158 PRIVATE 1159 rkaiq_atmo 1160 ) 1161list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_atmo${STATIC_LIB_SUFFIX}) 1162endif() 1163 1164if (RKAIQ_HAVE_WDR_V1) 1165target_link_libraries(rkaiq 1166 PRIVATE 1167 rkaiq_awdr 1168 ) 1169list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_awdr${STATIC_LIB_SUFFIX}) 1170endif() 1171 1172if (RKAIQ_HAVE_LDCH_V10 OR RKAIQ_HAVE_LDCH_V21) 1173target_link_libraries(rkaiq 1174 PRIVATE 1175 rkaiq_aldch 1176 ) 1177list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_aldch${STATIC_LIB_SUFFIX}) 1178endif() 1179 1180if (RKAIQ_HAVE_FEC_V10) 1181target_link_libraries(rkaiq 1182 PRIVATE 1183 rkaiq_afec 1184 ) 1185list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_afec${STATIC_LIB_SUFFIX}) 1186endif() 1187 1188if (RKAIQ_HAVE_CSM_V1) 1189target_link_libraries(rkaiq 1190 PRIVATE 1191 rkaiq_acsm 1192 ) 1193list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_acsm${STATIC_LIB_SUFFIX}) 1194endif() 1195 1196if (RKAIQ_HAVE_CGC_V1) 1197target_link_libraries(rkaiq 1198 PRIVATE 1199 rkaiq_acgc 1200 ) 1201list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_acgc${STATIC_LIB_SUFFIX}) 1202endif() 1203 1204if (RKAIQ_ENABLE_CAMGROUP) 1205target_link_libraries(rkaiq 1206 PRIVATE 1207 rkaiq_camgroup_ae 1208 rkaiq_camgroup_awb 1209 rkaiq_camgroup_misc 1210 ) 1211list(APPEND RK_AIQ_STATIC_LIB_ARS 1212 ${STATIC_LIB_PREFIX}rkaiq_camgroup_ae${STATIC_LIB_SUFFIX} 1213 ${STATIC_LIB_PREFIX}rkaiq_camgroup_awb${STATIC_LIB_SUFFIX} 1214 ${STATIC_LIB_PREFIX}rkaiq_camgroup_misc${STATIC_LIB_SUFFIX} 1215 ) 1216endif() 1217 1218if (RKAIQ_HAVE_DEBAYER_V1 OR RKAIQ_HAVE_DEBAYER_V2 OR RKAIQ_HAVE_DEBAYER_V2_LITE) 1219target_link_libraries(rkaiq 1220 PRIVATE 1221 rkaiq_adebayer 1222 ) 1223list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_adebayer${STATIC_LIB_SUFFIX}) 1224endif() 1225 1226if (RKAIQ_HAVE_AFD_V1 OR RKAIQ_HAVE_AFD_V2) 1227target_link_libraries(rkaiq 1228 PRIVATE 1229 rkaiq_afd 1230 ) 1231list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_afd${STATIC_LIB_SUFFIX}) 1232endif() 1233 1234if (RKAIQ_HAVE_LSC_V1 OR RKAIQ_HAVE_LSC_V2 OR RKAIQ_HAVE_LSC_V3) 1235target_link_libraries(rkaiq 1236 PRIVATE 1237 rkaiq_alsc 1238 ) 1239list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_alsc${STATIC_LIB_SUFFIX}) 1240endif() 1241 1242if (RKAIQ_HAVE_DPCC_V1) 1243target_link_libraries(rkaiq 1244 PRIVATE 1245 rkaiq_adpcc 1246 ) 1247list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_adpcc${STATIC_LIB_SUFFIX}) 1248endif() 1249 1250if (RKAIQ_HAVE_AIE_V10) 1251target_link_libraries(rkaiq 1252 PRIVATE 1253 rkaiq_aie 1254 ) 1255list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_aie${STATIC_LIB_SUFFIX}) 1256endif() 1257 1258if (RKAIQ_HAVE_ACP_V10) 1259target_link_libraries(rkaiq 1260 PRIVATE 1261 rkaiq_acp 1262 ) 1263list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_acp${STATIC_LIB_SUFFIX}) 1264endif() 1265 1266if (RKAIQ_HAVE_ASD_V10) 1267target_link_libraries(rkaiq 1268 PRIVATE 1269 rkaiq_asd 1270 ) 1271list(APPEND RK_AIQ_STATIC_LIB_ARS ${STATIC_LIB_PREFIX}rkaiq_asd${STATIC_LIB_SUFFIX}) 1272endif() 1273 1274if (libdl_FOUND) 1275 target_link_libraries(rkaiq 1276 PRIVATE 1277 libdl::libdl 1278 ) 1279endif() 1280 1281if (libdrm_FOUND) 1282 target_link_libraries(rkaiq 1283 PRIVATE 1284 libdrm::libdrm 1285 ) 1286endif() 1287 1288#build static librkaiq.a 1289 1290foreach(STATIC_LIB_AR ${RK_AIQ_STATIC_LIB_ARS}) 1291 add_custom_command (TARGET rkaiq_tmp POST_BUILD 1292 COMMAND ${CMAKE_AR} x ${STATIC_LIB_AR} 1293 ) 1294endforeach() 1295 1296add_custom_command (TARGET rkaiq_tmp POST_BUILD 1297 COMMAND ${CMAKE_AR} rcs ${CMAKE_LIBRARY_PATH}/librkaiq.a *.o 1298 COMMAND ${CMAKE_STRIP} --strip-debug ${CMAKE_LIBRARY_PATH}/librkaiq.a 1299 COMMAND rm *.o 1300 ) 1301 1302set(RKAIQ_HEAD_DEPENDENCE 1303 include/ 1304 include/algos/ 1305 include/uAPI2/ 1306 include/xcore/ 1307 include/common/ 1308 include/iq_parser/ 1309 include/iq_parser_v2/) 1310target_include_directories(rkaiq PUBLIC ${RKAIQ_HEAD_DEPENDENCE}) 1311 1312 1313install(DIRECTORY include/ 1314 DESTINATION include/rkaiq 1315 FILES_MATCHING PATTERN "*.h") 1316install(FILES ${PROJECT_BINARY_DIR}/config.h 1317 DESTINATION include/rkaiq) 1318install(TARGETS rkaiq 1319 LIBRARY DESTINATION lib) 1320install(FILES ${CMAKE_LIBRARY_PATH}/librkaiq.a DESTINATION lib) 1321