|
85 | 85 | # |
86 | 86 | # go_library(example SHARED) |
87 | 87 | # |
| 88 | +# To build a unit test binary, which is an executable binary with libpaddle.so |
| 89 | +# automatically linked: |
| 90 | +# |
| 91 | +# paddle_test(example SHARED) |
| 92 | +# |
88 | 93 |
|
89 | 94 | # including binary directory for generated headers. |
90 | 95 | include_directories(${CMAKE_CURRENT_BINARY_DIR}) |
@@ -466,6 +471,7 @@ function(cc_test_build TARGET_NAME) |
466 | 471 | list(REMOVE_ITEM cc_test_DEPS python) |
467 | 472 | target_link_libraries(${TARGET_NAME} ${PYTHON_LIBRARIES}) |
468 | 473 | endif() |
| 474 | + target_compile_definitions(${TARGET_NAME} PUBLIC STATIC_PADDLE) |
469 | 475 | endif() |
470 | 476 | get_property(os_dependency_modules GLOBAL PROPERTY OS_DEPENDENCY_MODULES) |
471 | 477 | target_link_libraries(${TARGET_NAME} ${cc_test_DEPS} |
@@ -578,6 +584,62 @@ function(cc_test_old TARGET_NAME) |
578 | 584 | endif() |
579 | 585 | endfunction() |
580 | 586 |
|
| 587 | +function(paddle_test_build TARGET_NAME) |
| 588 | + if(WITH_TESTING) |
| 589 | + set(oneValueArgs "") |
| 590 | + set(multiValueArgs SRCS DEPS) |
| 591 | + cmake_parse_arguments(paddle_test "${options}" "${oneValueArgs}" |
| 592 | + "${multiValueArgs}" ${ARGN}) |
| 593 | + add_executable(${TARGET_NAME} ${paddle_test_SRCS}) |
| 594 | + get_property(paddle_lib GLOBAL PROPERTY PADDLE_LIB_NAME) |
| 595 | + target_link_libraries(${TARGET_NAME} $<TARGET_LINKER_FILE:${paddle_lib}> |
| 596 | + ${paddle_test_DEPS} paddle_gtest_main_new) |
| 597 | + add_dependencies(${TARGET_NAME} ${paddle_lib} ${paddle_test_DEPS} |
| 598 | + paddle_gtest_main_new) |
| 599 | + if(WITH_SHARED_PHI) |
| 600 | + target_link_libraries(${TARGET_NAME} $<TARGET_LINKER_FILE:phi>) |
| 601 | + add_dependencies(${TARGET_NAME} phi) |
| 602 | + endif() |
| 603 | + if(WITH_SHARED_IR) |
| 604 | + target_link_libraries(${TARGET_NAME} $<TARGET_LINKER_FILE:pir>) |
| 605 | + add_dependencies(${TARGET_NAME} pir) |
| 606 | + endif() |
| 607 | + if(NOT ((NOT WITH_PYTHON) AND ON_INFER)) |
| 608 | + target_link_libraries(${TARGET_NAME} ${PYTHON_LIBRARIES}) |
| 609 | + endif() |
| 610 | + if(WITH_CINN AND NOT CINN_ONLY) |
| 611 | + target_link_libraries(${TARGET_NAME} $<TARGET_LINKER_FILE:cinnapi>) |
| 612 | + add_dependencies(${TARGET_NAME} cinnapi) |
| 613 | + endif() |
| 614 | + if(WITH_XPU) |
| 615 | + target_link_libraries(${TARGET_NAME} xpulib) |
| 616 | + endif() |
| 617 | + if(WITH_ROCM) |
| 618 | + target_link_libraries(${TARGET_NAME} ${ROCM_HIPRTC_LIB}) |
| 619 | + endif() |
| 620 | + if(APPLE) |
| 621 | + target_link_libraries( |
| 622 | + ${TARGET_NAME} |
| 623 | + "-Wl,-rpath,$<TARGET_FILE_DIR:${paddle_lib}> -Wl,-rpath,$<TARGET_FILE_DIR:phi> -Wl,-rpath,$<TARGET_FILE_DIR:pir>" |
| 624 | + ) |
| 625 | + endif() |
| 626 | + common_link(${TARGET_NAME}) |
| 627 | + check_coverage_opt(${TARGET_NAME} ${paddle_test_SRCS}) |
| 628 | + endif() |
| 629 | +endfunction() |
| 630 | + |
| 631 | +function(paddle_test TARGET_NAME) |
| 632 | + if(WITH_TESTING) |
| 633 | + set(oneValueArgs "") |
| 634 | + set(multiValueArgs SRCS DEPS ARGS) |
| 635 | + cmake_parse_arguments(paddle_test "${options}" "${oneValueArgs}" |
| 636 | + "${multiValueArgs}" ${ARGN}) |
| 637 | + paddle_test_build(${TARGET_NAME} SRCS ${paddle_test_SRCS} DEPS |
| 638 | + ${paddle_test_DEPS}) |
| 639 | + cc_test_run(${TARGET_NAME} COMMAND ${TARGET_NAME} ARGS ${paddle_test_ARGS}) |
| 640 | + endif() |
| 641 | +endfunction() |
| 642 | + |
581 | 643 | function(nv_library TARGET_NAME) |
582 | 644 | if(WITH_GPU) |
583 | 645 | set(options STATIC static SHARED shared) |
|
0 commit comments