CMakeLists.txt 20.9 KB
Newer Older
1
if(LITE_WITH_LIGHT_WEIGHT_FRAMEWORK OR (NOT LITE_WITH_LOG))
Y
Yan Chunwei 已提交
2 3 4
  lite_cc_library(place SRCS paddle_place.cc DEPS logging)
else()
  lite_cc_library(place SRCS paddle_place.cc DEPS glog)
5
endif()
Y
Yan Chunwei 已提交
6

7
if (LITE_ON_TINY_PUBLISH)
8 9
    set(CMAKE_CXX_FLAGS_RELEASE "-Os -DNDEBUG")
    set(CMAKE_C_FLAGS_RELEASE "-Os -DNDEBUG")
10
endif()
11 12

set(light_lib_DEPS light_api paddle_api paddle_api_light)
H
huzhiqiang 已提交
13

14
if ((NOT LITE_ON_TINY_PUBLISH) AND (LITE_WITH_CUDA OR LITE_WITH_X86 OR LITE_WITH_BM OR ARM_TARGET_OS STREQUAL "android" OR ARM_TARGET_OS STREQUAL "armlinux"))
15
    #full api dynamic library
16 17
    lite_cc_library(paddle_full_api_shared SHARED SRCS paddle_api.cc light_api.cc cxx_api.cc cxx_api_impl.cc light_api_impl.cc
                  DEPS paddle_api paddle_api_light  paddle_api_full)
18
    target_sources(paddle_full_api_shared PUBLIC ${__lite_cc_files})
19
    add_dependencies(paddle_full_api_shared op_list_h kernel_list_h framework_proto op_registry framework_fbs_header)
20
    target_link_libraries(paddle_full_api_shared framework_proto op_registry)
H
huzhiqiang 已提交
21
    if(LITE_WITH_X86)
22 23
        add_dependencies(paddle_full_api_shared xxhash)
        target_link_libraries(paddle_full_api_shared xxhash)
24
        if (NOT LITE_ON_MODEL_OPTIMIZE_TOOL)
25 26
            add_dependencies(paddle_full_api_shared dynload_mklml)
        endif()
27 28 29
        if(WIN32)
             target_link_libraries(paddle_full_api_shared shlwapi.lib)
        endif()
H
huzhiqiang 已提交
30
    endif()
31 32
    if(LITE_WITH_CUDA)
        target_link_libraries(paddle_full_api_shared ${math_cuda} "-Wl,--whole-archive" ${cuda_kernels} "-Wl,--no-whole-archive")
33 34
    endif(LITE_WITH_CUDA)

35
    #light api dynamic library
36 37 38 39 40
    lite_cc_library(paddle_light_api_shared SHARED SRCS paddle_api.cc light_api.cc light_api_impl.cc
                  DEPS ${light_lib_DEPS}
                  ARM_DEPS ${arm_kernels}
                  CV_DEPS paddle_cv_arm
                  NPU_DEPS ${npu_kernels}
H
hong19860320 已提交
41
                  APU_DEPS ${apu_kernels}
42
                  RKNPU_DEPS ${rknpu_kernels}
43
                  )
44

45
    add_dependencies(paddle_light_api_shared op_list_h kernel_list_h)
46 47 48
    if(WIN32)
        target_link_libraries(paddle_light_api_shared shlwapi.lib)
    endif()
H
hong19860320 已提交
49
    target_link_libraries(paddle_light_api_shared ${light_lib_DEPS} ${arm_kernels} ${npu_kernels} ${rknpu_kernels} ${apu_kernels})
50 51 52 53 54 55 56 57
   if(APPLE)
        set(LINK_MAP_FILE "${PADDLE_SOURCE_DIR}/lite/core/exported_symbols.lds")
        set(LINK_FLAGS "-Wl,-exported_symbols_list, ${LINK_MAP_FILE}")
        add_custom_command(OUTPUT ${LINK_MAP_FILE} COMMAND ...)
        add_custom_target(custom_linker_map DEPENDS ${LINK_MAP_FILE})
        set_target_properties(paddle_full_api_shared PROPERTIES LINK_FLAGS ${LINK_FLAGS})
        add_dependencies(paddle_full_api_shared custom_linker_map)
   elseif(NOT WIN32)
58 59 60 61 62 63 64
        set(LINK_MAP_FILE "${PADDLE_SOURCE_DIR}/lite/core/lite.map")
        set(LINK_FLAGS "-Wl,--version-script ${LINK_MAP_FILE}")
        add_custom_command(OUTPUT ${LINK_MAP_FILE} COMMAND ...)
        add_custom_target(custom_linker_map DEPENDS ${LINK_MAP_FILE})
        set_target_properties(paddle_full_api_shared PROPERTIES LINK_FLAGS ${LINK_FLAGS})
        add_dependencies(paddle_full_api_shared custom_linker_map)
   endif()
65
else()
66
    if ((ARM_TARGET_OS STREQUAL "android") OR (ARM_TARGET_OS STREQUAL "armlinux"))
67 68
        add_library(paddle_light_api_shared SHARED "")
        target_sources(paddle_light_api_shared PUBLIC ${__lite_cc_files} paddle_api.cc light_api.cc light_api_impl.cc)
69 70 71
        set(TARGET_COMIPILE_FLAGS "-fdata-sections")
        if (NOT (ARM_TARGET_LANG STREQUAL "clang")) #gcc
            set(TARGET_COMIPILE_FLAGS "${TARGET_COMIPILE_FLAGS} -flto")
72
        endif()
73
        set_target_properties(paddle_light_api_shared PROPERTIES COMPILE_FLAGS "${TARGET_COMIPILE_FLAGS}")
74
        add_dependencies(paddle_light_api_shared op_list_h kernel_list_h framework_fbs_header)
75 76
        if (LITE_WITH_NPU)
            # Need to add HIAI runtime libs (libhiai.so) dependency
77
            target_link_libraries(paddle_light_api_shared ${npu_builder_libs} ${npu_runtime_libs})
78
        endif()
79 80 81 82 83
        if (LITE_WITH_RKNPU)
            # Need to add RKNPU runtime libs dependency
            target_link_libraries(paddle_light_api_shared ${rknpu_builder_libs} ${rknpu_runtime_libs})
        endif()

84 85 86
    endif()
endif()

Y
Yan Chunwei 已提交
87 88 89 90
if (WITH_TESTING)
    lite_cc_library(lite_api_test_helper SRCS lite_api_test_helper.cc
      DEPS scope optimizer target_wrapper_host model_parser program
           ${ops} ${host_kernels}
91
      CUDA_DEPS ${cuda_kernels}
92
      X86_DEPS ${x86_kernels}
93
      XPU_DEPS ${xpu_kernels}
94
      RKNPU_DEPS ${rknpu_kernels}
95
      BM_DEPS ${bm_kernels}
H
hong19860320 已提交
96 97 98
      MLU_DEPS ${mlu_kernels}
      APU_DEPS ${apu_kernels})

Y
Yan Chunwei 已提交
99 100 101 102 103 104
endif()
if(LITE_WITH_FPGA)
    set(light_api_deps ${light_api_deps} ${fpga_deps})
    set(cxx_api_deps ${cxx_api_deps} ${fpga_deps})
endif()

105 106 107 108 109
if(LITE_WITH_BM)
    set(light_api_deps ${light_api_deps} ${bm_deps})
    set(cxx_api_deps ${cxx_api_deps} ${bm_deps})
endif()

110 111 112 113 114 115
if(LITE_WITH_RKNPU)
    set(light_api_deps ${light_api_deps} ${rknpu_deps})
    set(cxx_api_deps ${cxx_api_deps} ${rknpu_deps})
endif()


Y
Yan Chunwei 已提交
116
message(STATUS "get ops ${ops}")
117
message(STATUS "get X86 kernels ${x86_kernels}")
118
message(STATUS "get CUDA kernels ${cuda_kernels}")
Y
Yan Chunwei 已提交
119 120
message(STATUS "get Host kernels ${host_kernels}")
message(STATUS "get ARM kernels ${arm_kernels}")
121
message(STATUS "get OpenCL kernels ${opencl_kernels}")
Y
Yan Chunwei 已提交
122
message(STATUS "get NPU kernels ${npu_kernels}")
H
hong19860320 已提交
123
message(STATUS "get APU kernels ${apu_kernels}")
124
message(STATUS "get XPU kernels ${xpu_kernels}")
125
message(STATUS "get RKNPU kernels ${rknpu_kernels}")
Y
Yan Chunwei 已提交
126
message(STATUS "get FPGA kernels ${fpga_kernels}")
127
message(STATUS "get BM kernels ${bm_kernels}")
128
message(STATUS "get MLU kernels ${mlu_kernels}")
Y
Yan Chunwei 已提交
129 130 131 132

# for full api
if (NOT LITE_ON_TINY_PUBLISH)
    set(cxx_api_deps
133
    scope optimizer target_wrapper_host model_parser program)
Y
Yan Chunwei 已提交
134
    lite_cc_library(cxx_api
135 136 137
                        SRCS cxx_api.cc
                        DEPS ${cxx_api_deps} ${ops} ${host_kernels} program
                        X86_DEPS ${x86_kernels}
138
                        CUDA_DEPS ${cuda_kernels}
139 140
                        ARM_DEPS ${arm_kernels}
                        CV_DEPS paddle_cv_arm
Z
zhupengyang 已提交
141 142
                        NPU_DEPS ${npu_kernels}
                        XPU_DEPS ${xpu_kernels}
H
hong19860320 已提交
143
                        APU_DEPS ${apu_kernels}
144
                        RKNPU_DEPS ${rknpu_kernels}
145
                        BM_DEPS ${bm_kernels}
146 147
                        CL_DEPS ${opencl_kernels}
                        FPGA_DEPS ${fpga_kernels})
Y
Yan Chunwei 已提交
148 149 150 151 152 153
endif()

# for light api
set(light_api_deps
    scope target_wrapper_host model_parser program)
if(LITE_WITH_CUDA)
154
    get_property(cuda_deps GLOBAL PROPERTY CUDA_MODULES)
Y
Yan Chunwei 已提交
155 156 157 158 159
    set(light_api_deps ${light_api_deps} target_wrapper_cuda)
endif()
lite_cc_library(light_api SRCS light_api.cc
        DEPS scope target_wrapper_host model_parser
            ${light_api_deps} ${ops} ${host_kernels} program
160
        CUDA_DEPS ${cuda_kernels}
Y
Yan Chunwei 已提交
161 162
        X86_DEPS ${x86_kernels}
        ARM_DEPS ${arm_kernels}
163
        CV_DEPS paddle_cv_arm
164
        NPU_DEPS ${npu_kernels}
H
hong19860320 已提交
165
        APU_DEPS ${apu_kernels}
166
        XPU_DEPS ${xpu_kernels}
167
        RKNPU_DEPS ${rknpu_kernels}
168
        CL_DEPS ${opencl_kernels}
169
        FPGA_DEPS ${fpga_kernels}
170 171
        BM_DEPS ${bm_kernels}
        MLU_DEPS ${mlu_kernels})
Y
Yan Chunwei 已提交
172 173 174 175 176 177

include(ExternalProject)
set(LITE_DEMO_INSTALL_DIR "${THIRD_PARTY_PATH}/inference_demo" CACHE STRING
        "A path setting inference demo download directories.")

if(WITH_TESTING)
178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198
    if(NOT WITH_COVERAGE)
        lite_cc_test(test_cxx_api SRCS cxx_api_test.cc
           DEPS cxx_api mir_passes lite_api_test_helper
           ${ops} ${host_kernels}
           X86_DEPS ${x86_kernels}
           CUDA_DEPS ${cuda_kernels}
           ARM_DEPS ${arm_kernels}
           CV_DEPS paddle_cv_arm
           NPU_DEPS ${npu_kernels}
           APU_DEPS ${apu_kernels}
           XPU_DEPS ${xpu_kernels}
           RKNPU_DEPS ${rknpu_kernels}
           CL_DEPS ${opencl_kernels}
           FPGA_DEPS ${fpga_kernels}
           BM_DEPS ${bm_kernels}
           MLU_DEPS ${mlu_kernels}
           EXCLUDE_COMPILE_DEPS "ON"
           ARGS --model_dir=${LITE_MODEL_DIR}/lite_naive_model
                --optimized_model=${LITE_MODEL_DIR}/lite_naive_model_opt SERIAL)
        add_dependencies(test_cxx_api extern_lite_download_lite_naive_model_tar_gz)
    endif()
Y
Yan Chunwei 已提交
199
    if(NOT LITE_WITH_LIGHT_WEIGHT_FRAMEWORK)
200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231
        if(LITE_WITH_X86)
            lite_cc_test(test_googlenet SRCS test_googlenet_lite.cc
               DEPS mir_passes lite_api_test_helper paddle_api_full paddle_api_light gflags utils
               ${ops} ${host_kernels} ${x86_kernels}
               ARGS --model_dir=${LITE_MODEL_DIR}/googlenet)
            add_dependencies(test_googlenet extern_lite_download_GoogleNet_inference_tar_gz)
            lite_cc_test(test_mobilenetv1_lite_x86 SRCS test_mobilenetv1_lite_x86.cc
               DEPS mir_passes lite_api_test_helper paddle_api_full paddle_api_light gflags utils
               ${ops} ${host_kernels} ${x86_kernels}
               ARGS --model_dir=${LITE_MODEL_DIR}/mobilenet_v1)
            add_dependencies(test_mobilenetv1_lite_x86 extern_lite_download_mobilenet_v1_tar_gz)
            lite_cc_test(test_mobilenetv2_lite_x86 SRCS test_mobilenetv2_lite_x86.cc
               DEPS mir_passes lite_api_test_helper paddle_api_full paddle_api_light gflags utils
               ${ops} ${host_kernels} ${x86_kernels}
               ARGS --model_dir=${LITE_MODEL_DIR}/mobilenet_v2_relu)
            add_dependencies(test_mobilenetv2_lite_x86 extern_lite_download_mobilenet_v2_relu_tar_gz)
            lite_cc_test(test_inceptionv4_lite_x86 SRCS test_inceptionv4_lite_x86.cc
               DEPS mir_passes lite_api_test_helper paddle_api_full paddle_api_light gflags utils
               ${ops} ${host_kernels} ${x86_kernels}
               ARGS --model_dir=${LITE_MODEL_DIR}/inception_v4_simple)
            add_dependencies(test_inceptionv4_lite_x86 extern_lite_download_inception_v4_simple_tar_gz)
            lite_cc_test(test_resnet50_lite_x86 SRCS test_resnet50_lite_x86.cc
               DEPS mir_passes lite_api_test_helper paddle_api_full paddle_api_light gflags utils
               ${ops} ${host_kernels} ${x86_kernels}
               ARGS --model_dir=${LITE_MODEL_DIR}/resnet50)
            add_dependencies(test_resnet50_lite_x86 extern_lite_download_resnet50_tar_gz)
            lite_cc_test(test_step_rnn_lite_x86 SRCS test_step_rnn_lite_x86.cc
               DEPS mir_passes lite_api_test_helper paddle_api_full paddle_api_light gflags utils
               ${ops} ${host_kernels} ${x86_kernels}
               ARGS --model_dir=${LITE_MODEL_DIR}/step_rnn)
            add_dependencies(test_step_rnn_lite_x86 extern_lite_download_step_rnn_tar_gz)
        endif()
232
        if(LITE_WITH_BM)
233
           lite_cc_test(test_classify_lite_bm SRCS test_classify_lite_bm.cc
234 235
              DEPS mir_passes lite_api_test_helper paddle_api_full paddle_api_light gflags utils
              ${ops} ${host_kernels} ${bm_kernels} ${bm_bridges}
236 237 238 239 240
              ARGS --model_dir=${LITE_MODEL_DIR}/classify)
           lite_cc_test(test_yolov3_lite_bm SRCS test_yolov3_lite_bm.cc
              DEPS mir_passes lite_api_test_helper paddle_api_full paddle_api_light gflags utils
              ${ops} ${host_kernels} ${bm_kernels} ${bm_bridges}
              ARGS --model_dir=${LITE_MODEL_DIR}/yolov3)
241
        endif()
Y
Yan Chunwei 已提交
242 243 244 245
    endif()
endif()

if(LITE_WITH_LIGHT_WEIGHT_FRAMEWORK AND WITH_TESTING)
H
hong19860320 已提交
246
    set(lite_model_test_DEPS cxx_api mir_passes ${ops} ${host_kernels} ${arm_kernels} ${npu_kernels} ${apu_kernels} ${fpga_kernels})
Y
Yan Chunwei 已提交
247 248 249 250

    lite_cc_test(test_mobilenetv1_int8 SRCS mobilenetv1_int8_test.cc
       DEPS ${lite_model_test_DEPS}
       CL_DEPS ${opencl_kernels}
251
       ARGS --cl_path=${CMAKE_SOURCE_DIR}/lite/backends/opencl
Y
Yan Chunwei 已提交
252 253 254 255 256 257 258
        --model_dir=${LITE_MODEL_DIR}/MobilenetV1_quant SERIAL)
    add_dependencies(test_mobilenetv1_int8 extern_lite_download_MobileNetV1_quant_tar_gz)

    lite_cc_test(test_mobilenetv1 SRCS mobilenetv1_test.cc
       DEPS ${lite_model_test_DEPS}
       CL_DEPS ${opencl_kernels}
       NPU_DEPS ${npu_kernels} ${npu_bridges}
259
       ARGS --cl_path=${CMAKE_SOURCE_DIR}/lite/backends/opencl
Y
Yan Chunwei 已提交
260 261
            --model_dir=${LITE_MODEL_DIR}/mobilenet_v1 SERIAL)
    add_dependencies(test_mobilenetv1 extern_lite_download_mobilenet_v1_tar_gz)
262 263 264 265
    if(NOT WIN32)
       set(LINK_FLAGS "-Wl,--version-script ${PADDLE_SOURCE_DIR}/lite/core/lite.map")
       set_target_properties(test_mobilenetv1 PROPERTIES LINK_FLAGS "${LINK_FLAGS}")
    endif()
266

Y
Yan Chunwei 已提交
267 268 269
    lite_cc_test(test_mobilenetv2 SRCS mobilenetv2_test.cc
       DEPS ${lite_model_test_DEPS}
       CL_DEPS ${opencl_kernels}
270
       ARGS --cl_path=${CMAKE_SOURCE_DIR}/lite/backends/opencl
Y
Yan Chunwei 已提交
271 272
            --model_dir=${LITE_MODEL_DIR}/mobilenet_v2_relu SERIAL)
    add_dependencies(test_mobilenetv2 extern_lite_download_mobilenet_v2_relu_tar_gz)
273 274 275
    if(NOT WIN32)
        set_target_properties(test_mobilenetv2 PROPERTIES LINK_FLAGS "${LINK_FLAGS}")
    endif()
276

Y
Yan Chunwei 已提交
277
    lite_cc_test(test_resnet50 SRCS resnet50_test.cc
278
       DEPS ${lite_model_test_DEPS} paddle_api_light
Y
Yan Chunwei 已提交
279 280
       CL_DEPS ${opencl_kernels}
       FPGA_DEPS ${fpga_kernels}
281
       ARGS --cl_path=${CMAKE_SOURCE_DIR}/lite/backends/opencl
Y
Yan Chunwei 已提交
282 283 284 285 286 287 288 289 290 291 292
            --model_dir=${LITE_MODEL_DIR}/resnet50 SERIAL)
    add_dependencies(test_resnet50 extern_lite_download_resnet50_tar_gz)

    lite_cc_test(test_resnet50_fpga SRCS resnet50_test_fpga.cc
       DEPS ${lite_model_test_DEPS}
       CL_DEPS ${opencl_kernels}
       FPGA_DEPS ${fpga_kernels})

    lite_cc_test(test_inceptionv4 SRCS inceptionv4_test.cc
       DEPS ${lite_model_test_DEPS}
       CL_DEPS ${opencl_kernels}
293
       ARGS --cl_path=${CMAKE_SOURCE_DIR}/lite/backends/opencl
Y
Yan Chunwei 已提交
294
            --model_dir=${LITE_MODEL_DIR}/inception_v4 SERIAL)
295
    add_dependencies(test_inceptionv4 extern_lite_download_inception_v4_simple_tar_gz)
296

X
xiaogang 已提交
297
   # brief: we comment ocr_test_ut because we do not supply ocr model to test, it is the reference to infer nlp model
T
TianXiaogang 已提交
298 299 300 301 302 303 304
   # lite_cc_test(test_ocr_attention SRCS ocr_attention_test.cc
   #    DEPS ${lite_model_test_DEPS})

   # lite_cc_test(model_run_test_image SRCS model_run_test_image.cc
   #    DEPS ${lite_model_test_DEPS}
   #    CL_DEPS ${opencl_kernels}
   #    FPGA_DEPS ${fpga_kernels})
Y
Yan Chunwei 已提交
305 306
endif()

307
lite_cc_library(paddle_api SRCS paddle_api.cc DEPS op_params tensor device_info)
Y
Yan Chunwei 已提交
308 309 310

#-----------------------------------------------------------------------------------------------------
# The final inference library for both CxxConfig and MobileConfig.
311 312 313 314 315
if (LITE_ON_TINY_PUBLISH)
    lite_cc_library(paddle_api_light SRCS light_api_impl.cc DEPS light_api paddle_api stream)
else()
    lite_cc_library(paddle_api_light SRCS light_api_impl.cc DEPS light_api paddle_api)
endif()
Y
Yan Chunwei 已提交
316
if (NOT LITE_ON_TINY_PUBLISH)
317
    lite_cc_library(paddle_api_full SRCS cxx_api_impl.cc DEPS cxx_api paddle_api_light
318 319 320 321
        ${ops}
        ARM_DEPS ${arm_kernels}
        CV_DEPS paddle_cv_arm
        NPU_DEPS ${npu_kernels}
H
hong19860320 已提交
322
        APU_DEPS ${apu_kernels}
323
        CL_DEPS ${opencl_kernels}
324 325
        FPGA_DEPS ${fpga_kernels}
        BM_DEPS ${bm_kernels})
Y
Yan Chunwei 已提交
326 327
    # The final inference library for just MobileConfig.
    bundle_static_library(paddle_api_full paddle_api_full_bundled bundle_full_api)
328
    target_link_libraries(paddle_api_full ${cuda_deps})
329
    get_property(fluid_modules GLOBAL PROPERTY FLUID_MODULES)
Y
Yan Chunwei 已提交
330
endif()
331

Y
Yan Chunwei 已提交
332 333 334
bundle_static_library(paddle_api_light paddle_api_light_bundled bundle_light_api)
#-----------------------------------------------------------------------------------------------------

335 336
# These tests needs CLI arguments, and is not supported in ARM CI.
# TODO(Superjomn) support latter.
337 338
if(NOT WITH_COVERAGE)
    lite_cc_test(test_light_api SRCS light_api_test.cc
339 340 341
        DEPS light_api program mir_passes paddle_api_light
        CL_DEPS ${opencl_kernels}
        FPGA_DEPS ${fpga_kernels}
342
        RKNPU_DEPS ${rknpu_kernels}
343
        BM_DEPS ${bm_kernels}
344 345
        ARGS --optimized_model=${LITE_MODEL_DIR}/lite_naive_model_opt SERIAL)

346
    lite_cc_test(test_apis SRCS apis_test.cc
347 348 349
        DEPS cxx_api light_api ${ops} paddle_api_light
        CL_DEPS ${opencl_kernels}
        X86_DEPS ${x86_kernels}
350
        XPU_DEPS ${xpu_kernels}
351
        FPGA_DEPS ${fpga_kernels}
352
        RKNPU_DEPS ${rknpu_kernels}
353
        BM_DEPS ${bm_kernels}
354
        MLU_DEPS ${mlu_kernels}
355 356
        ARGS --model_dir=${LITE_MODEL_DIR}/lite_naive_model
        --optimized_model=${LITE_MODEL_DIR}/lite_naive_model_opt SERIAL)
357
endif()
358

Y
Yan Chunwei 已提交
359 360 361 362
if (LITE_WITH_JAVA AND LITE_WITH_ARM)
    add_subdirectory(android)
endif()

363
if (LITE_WITH_PYTHON)
S
sangoly 已提交
364
    add_subdirectory(python)
365 366 367
    # add library for opt_base
    lite_cc_library(opt_base SRCS opt_base.cc cxx_api_impl.cc paddle_api.cc cxx_api.cc DEPS kernel op optimizer mir_passes utils)
    add_dependencies(opt_base supported_kernel_op_info_h framework_proto all_kernel_faked_cc kernel_list_h)
S
sangoly 已提交
368 369
endif()

Y
Yan Chunwei 已提交
370 371 372
if (LITE_ON_TINY_PUBLISH)
    return()
endif()
373

374 375


376
if (LITE_ON_MODEL_OPTIMIZE_TOOL)
377 378
    message(STATUS "Compiling opt")
    lite_cc_binary(opt SRCS opt.cc cxx_api_impl.cc paddle_api.cc cxx_api.cc
379
        DEPS gflags kernel op optimizer mir_passes utils ${host_kernels})
380
    add_dependencies(opt op_list_h kernel_list_h all_kernel_faked_cc supported_kernel_op_info_h)
381 382
endif(LITE_ON_MODEL_OPTIMIZE_TOOL)

383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400
if(NOT WITH_COVERAGE)
    lite_cc_test(test_paddle_api SRCS paddle_api_test.cc DEPS paddle_api_full paddle_api_light
      ${ops}
      ARM_DEPS ${arm_kernels}
      CV_DEPS paddle_cv_arm
      NPU_DEPS ${npu_kernels}
      XPU_DEPS ${xpu_kernels}
      APU_DEPS ${apu_kernels}
      RKNPU_DEPS ${rknpu_kernels}
      CL_DEPS ${opencl_kernels}
      X86_DEPS ${x86_kernels}
      FPGA_DEPS ${fpga_kernels}
      BM_DEPS ${bm_kernels}
      MLU_DEPS ${mlu_kernels}
      ARGS --model_dir=${LITE_MODEL_DIR}/lite_naive_model SERIAL)
    if (WITH_TESTING)
        add_dependencies(test_paddle_api extern_lite_download_lite_naive_model_tar_gz)
    endif()
Y
Yan Chunwei 已提交
401 402 403 404
endif()

# Some bins
if(NOT IOS)
405 406 407 408 409 410
    lite_cc_binary(test_model_bin SRCS model_test.cc DEPS paddle_api_full paddle_api_light gflags utils
        ${ops} ${host_kernels}
        ARM_DEPS ${arm_kernels}
        CV_DEPS paddle_cv_arm
        NPU_DEPS ${npu_kernels}
        XPU_DEPS ${xpu_kernels}
411
        MLU_DEPS ${mlu_kernels}
H
hong19860320 已提交
412
        APU_DEPS ${apu_kernels}
413
        CL_DEPS ${opencl_kernels}
414
        BM_DEPS ${bm_kernels}
415
        RKNPU_DEPS ${rknpu_kernels}
416 417 418
        FPGA_DEPS ${fpga_kernels}
        X86_DEPS ${x86_kernels}
        CUDA_DEPS ${cuda_kernels})
419 420 421 422 423 424 425
    
    lite_cc_binary(test_model_detection_bin SRCS model_test_detection.cc DEPS paddle_api_full paddle_api_light gflags utils
        ${ops} ${host_kernels}
        ARM_DEPS ${arm_kernels}
        CV_DEPS paddle_cv_arm
        NPU_DEPS ${npu_kernels}
        XPU_DEPS ${xpu_kernels}
426
        MLU_DEPS ${mlu_kernels}
H
hong19860320 已提交
427
        APU_DEPS ${apu_kernels}
428 429
        CL_DEPS ${opencl_kernels}
        BM_DEPS ${bm_kernels}
430
        RKNPU_DEPS ${rknpu_kernels}
431 432 433 434 435 436 437 438 439 440
        FPGA_DEPS ${fpga_kernels}
        X86_DEPS ${x86_kernels}
        CUDA_DEPS ${cuda_kernels})
    
    lite_cc_binary(test_model_classify_bin SRCS model_test_classify.cc DEPS paddle_api_full paddle_api_light gflags utils
        ${ops} ${host_kernels}
        ARM_DEPS ${arm_kernels}
        CV_DEPS paddle_cv_arm
        NPU_DEPS ${npu_kernels}
        XPU_DEPS ${xpu_kernels}
441
        MLU_DEPS ${mlu_kernels}
H
hong19860320 已提交
442
        APU_DEPS ${apu_kernels}
443 444
        CL_DEPS ${opencl_kernels}
        BM_DEPS ${bm_kernels}
445
        RKNPU_DEPS ${rknpu_kernels}
446 447 448
        FPGA_DEPS ${fpga_kernels}
        X86_DEPS ${x86_kernels}
        CUDA_DEPS ${cuda_kernels})
H
HappyAngel 已提交
449

450 451 452
    lite_cc_binary(benchmark_bin SRCS benchmark.cc DEPS paddle_api_full paddle_api_light gflags utils
        ${ops} ${host_kernels}
        ARM_DEPS ${arm_kernels}
H
HappyAngel 已提交
453
        CV_DEPS paddle_cv_arm
454 455
        NPU_DEPS ${npu_kernels}
        XPU_DEPS ${xpu_kernels}
456
        RKNPU_DEPS ${rknpu_kernels}
457
        MLU_DEPS ${mlu_kernels}
H
hong19860320 已提交
458
        APU_DEPS ${apu_kernels}
459 460 461 462
        CL_DEPS ${opencl_kernels}
        FPGA_DEPS ${fpga_kernels}
        X86_DEPS ${x86_kernels}
        CUDA_DEPS ${cuda_kernels})
463
    
X
xiaogang 已提交
464 465 466 467 468
    lite_cc_binary(multithread_test SRCS lite_multithread_test.cc DEPS paddle_api_full paddle_api_light gflags utils
        ${ops} ${host_kernels}
        ARM_DEPS ${arm_kernels}
        CV_DEPS paddle_cv_arm
        NPU_DEPS ${npu_kernels}
H
hong19860320 已提交
469
        APU_DEPS ${apu_kernels}
X
xiaogang 已提交
470
        XPU_DEPS ${xpu_kernels}
471
        RKNPU_DEPS ${rknpu_kernels}
472
        MLU_DEPS ${mlu_kernels}
X
xiaogang 已提交
473
        CL_DEPS ${opencl_kernels}
474
	BM_DEPS ${bm_kernels}
X
xiaogang 已提交
475 476 477
        FPGA_DEPS ${fpga_kernels}
        X86_DEPS ${x86_kernels}
        CUDA_DEPS ${cuda_kernels})
478

X
xiaogang 已提交
479 480 481 482 483
    lite_cc_binary(test_transformer SRCS transform_test.cc DEPS paddle_api_full paddle_api_light gflags utils
        ${ops} ${host_kernels}
        ARM_DEPS ${arm_kernels}
        CV_DEPS paddle_cv_arm
        NPU_DEPS ${npu_kernels}
484
        RKNPU_DEPS ${npu_kernels}
X
xiaogang 已提交
485
        XPU_DEPS ${xpu_kernels}
H
hong19860320 已提交
486
        APU_DEPS ${apu_kernels}
X
xiaogang 已提交
487 488 489 490
        CL_DEPS ${opencl_kernels}
        FPGA_DEPS ${fpga_kernels}
        X86_DEPS ${x86_kernels}
        CUDA_DEPS ${cuda_kernels})
Y
Yan Chunwei 已提交
491 492 493 494 495 496
endif()

#lite_cc_binary(cxx_api_bin SRCS cxx_api_bin.cc
    #X86_DEPS operator
    #DEPS light_api model_parser target_wrapper_host mir_passes
    #ARM_DEPS ${arm_kernels}) NPU_DEPS ${npu_kernels})