| set(TORCH_API_TEST_DIR "${TORCH_ROOT}/test/cpp/api") | |
| set(TORCH_API_TEST_SOURCES | |
| ${TORCH_ROOT}/test/cpp/common/main.cpp | |
| ${TORCH_API_TEST_DIR}/autograd.cpp | |
| ${TORCH_API_TEST_DIR}/any.cpp | |
| ${TORCH_API_TEST_DIR}/dataloader.cpp | |
| ${TORCH_API_TEST_DIR}/enum.cpp | |
| ${TORCH_API_TEST_DIR}/expanding-array.cpp | |
| ${TORCH_API_TEST_DIR}/fft.cpp | |
| ${TORCH_API_TEST_DIR}/functional.cpp | |
| ${TORCH_API_TEST_DIR}/integration.cpp | |
| ${TORCH_API_TEST_DIR}/init.cpp | |
| ${TORCH_API_TEST_DIR}/jit.cpp | |
| ${TORCH_API_TEST_DIR}/memory.cpp | |
| ${TORCH_API_TEST_DIR}/meta_tensor.cpp | |
| ${TORCH_API_TEST_DIR}/misc.cpp | |
| ${TORCH_API_TEST_DIR}/module.cpp | |
| ${TORCH_API_TEST_DIR}/moduledict.cpp | |
| ${TORCH_API_TEST_DIR}/modulelist.cpp | |
| ${TORCH_API_TEST_DIR}/modules.cpp | |
| ${TORCH_API_TEST_DIR}/parameterdict.cpp | |
| ${TORCH_API_TEST_DIR}/parameterlist.cpp | |
| ${TORCH_API_TEST_DIR}/namespace.cpp | |
| ${TORCH_API_TEST_DIR}/nn_utils.cpp | |
| ${TORCH_API_TEST_DIR}/optim.cpp | |
| ${TORCH_API_TEST_DIR}/ordered_dict.cpp | |
| ${TORCH_API_TEST_DIR}/rnn.cpp | |
| ${TORCH_API_TEST_DIR}/sequential.cpp | |
| ${TORCH_API_TEST_DIR}/transformer.cpp | |
| ${TORCH_API_TEST_DIR}/serialize.cpp | |
| ${TORCH_API_TEST_DIR}/special.cpp | |
| ${TORCH_API_TEST_DIR}/static.cpp | |
| ${TORCH_API_TEST_DIR}/support.cpp | |
| ${TORCH_API_TEST_DIR}/tensor_cuda.cpp | |
| ${TORCH_API_TEST_DIR}/tensor_indexing.cpp | |
| ${TORCH_API_TEST_DIR}/tensor_options_cuda.cpp | |
| ${TORCH_API_TEST_DIR}/tensor_options.cpp | |
| ${TORCH_API_TEST_DIR}/tensor.cpp | |
| ${TORCH_API_TEST_DIR}/torch_include.cpp | |
| ${TORCH_API_TEST_DIR}/inference_mode.cpp | |
| ${TORCH_API_TEST_DIR}/grad_mode.cpp | |
| ${TORCH_API_TEST_DIR}/operations.cpp | |
| ) | |
| if(USE_DEPLOY) | |
| list(APPEND TORCH_API_TEST_SOURCES ${TORCH_API_TEST_DIR}/imethod.cpp) | |
| endif() | |
| if(USE_CUDA) | |
| list(APPEND TORCH_API_TEST_SOURCES ${TORCH_API_TEST_DIR}/parallel.cpp) | |
| endif() | |
| add_executable(test_api ${TORCH_API_TEST_SOURCES}) | |
| target_include_directories(test_api PRIVATE ${ATen_CPU_INCLUDE}) | |
| target_link_libraries(test_api PRIVATE torch gtest) | |
| if(NOT MSVC) | |
| target_compile_options(test_api PRIVATE -Wno-unused-variable) | |
| endif() | |
| if(USE_CUDA) | |
| target_link_libraries(test_api PRIVATE | |
| ${CUDA_LIBRARIES} | |
| ${CUDA_NVRTC_LIB} | |
| ${CUDA_CUDA_LIB} | |
| ${TORCH_CUDA_LIBRARIES}) | |
| target_compile_definitions(test_api PRIVATE "USE_CUDA") | |
| endif() | |
| if(USE_DEPLOY) | |
| target_link_libraries(test_api PRIVATE torch_deploy) | |
| endif() | |
| # Workaround for https://github.com/pytorch/pytorch/issues/40941 | |
| if(USE_OPENMP AND CMAKE_COMPILER_IS_GNUCXX AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0.0)) | |
| # Compiling transformer.cpp or pow_test.cpp with -O2+ and both -fuse-openmp and -faligned-newout any optimization | |
| # Fails with internal compiler error in gcc-7.5 or older | |
| # Workaround by compiling the tests without openmp (which they are not using anyway) | |
| set_property(TARGET test_api APPEND_STRING PROPERTY COMPILE_FLAGS "-fno-openmp") | |
| endif() | |
| if(NOT MSVC) | |
| if(APPLE) | |
| target_compile_options(test_api PRIVATE | |
| # Clang has an unfixed bug leading to spurious missing braces | |
| # warnings, see https://bugs.llvm.org/show_bug.cgi?id=21629 | |
| -Wno-missing-braces) | |
| else() | |
| target_compile_options(test_api PRIVATE | |
| # Considered to be flaky. See the discussion at | |
| # https://github.com/pytorch/pytorch/pull/9608 | |
| -Wno-maybe-uninitialized | |
| # gcc gives nonsensical warnings about variadic.h | |
| -Wno-unused-but-set-parameter) | |
| endif() | |
| endif() | |
| if(INSTALL_TEST) | |
| install(TARGETS test_api DESTINATION bin) | |
| # Install PDB files for MSVC builds | |
| if(MSVC AND BUILD_SHARED_LIBS) | |
| install(FILES $<TARGET_PDB_FILE:test_api> DESTINATION bin OPTIONAL) | |
| endif() | |
| endif() | |
| add_executable(parallel_benchmark ${TORCH_API_TEST_DIR}/parallel_benchmark.cpp) | |
| target_include_directories(parallel_benchmark PRIVATE ${ATen_CPU_INCLUDE}) | |
| target_link_libraries(parallel_benchmark PRIVATE torch) |