Fix some CMake issues (#153686)

These issues were discovered when trying CMake 3.27:
1. set C++ language on HIP sources.
2. add missing link to gtest_main.

Pull Request resolved: https://github.com/pytorch/pytorch/pull/153686
Approved by: https://github.com/Skylion007
This commit is contained in:
cyy
2025-05-19 00:31:34 +00:00
committed by PyTorch MergeBot
parent 75eb2f3ff6
commit a8986963da
16 changed files with 23 additions and 21 deletions

View File

@ -17,10 +17,13 @@ if(BUILD_TEST)
if(WIN32 AND test_src MATCHES "^.*\.hip$")
set_source_files_properties(${test_src} PROPERTIES HIP_SOURCE_PROPERTY_FORMAT 1)
hip_add_executable(${test_name} "${test_src}")
set_target_properties(${test_name} PROPERTIES LINKER_LANGUAGE CXX HIP_ARCHITECTURES ${PYTORCH_ROCM_ARCH})
set_target_properties(${test_name} PROPERTIES HIP_ARCHITECTURES ${PYTORCH_ROCM_ARCH})
else()
add_executable(${test_name} "${test_src}")
endif()
if(test_src MATCHES "^.*\.hip$")
set_target_properties(${test_name} PROPERTIES LINKER_LANGUAGE CXX)
endif()
target_link_libraries(${test_name} ${C10_CUDA_LIB} ${C10_LIB} gmock gtest gtest_main)
add_test(NAME ${test_name} COMMAND $<TARGET_FILE:${test_name}>)
if(INSTALL_TEST)

View File

@ -1939,10 +1939,13 @@ if(BUILD_TEST)
set(HIP_HIPCC_FLAGS ${BASE_HIPCC_FLAGS})
set_source_files_properties(${test_src} PROPERTIES HIP_SOURCE_PROPERTY_FORMAT 1)
hip_add_executable(${test_name} "${test_src}")
set_target_properties(${test_name} PROPERTIES LINKER_LANGUAGE CXX HIP_ARCHITECTURES ${PYTORCH_ROCM_ARCH})
set_target_properties(${test_name} PROPERTIES HIP_ARCHITECTURES ${PYTORCH_ROCM_ARCH})
else()
add_executable(${test_name} "${test_src}")
endif()
if(test_src MATCHES "^.*\.hip$")
set_target_properties(${test_name} PROPERTIES LINKER_LANGUAGE CXX)
endif()
target_link_libraries(${test_name} torch_library gtest_main)
target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>)
target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE} ${Caffe2_HIP_INCLUDE})

View File

@ -19,7 +19,7 @@ target_compile_definitions(test_aoti_abi_check PRIVATE USE_GTEST)
# WARNING: DO NOT LINK torch!!!
# The purpose is to check if the used aten/c10 headers are writtern in a header-only way
target_link_libraries(test_aoti_abi_check PRIVATE gtest)
target_link_libraries(test_aoti_abi_check PRIVATE gtest_main)
target_include_directories(test_aoti_abi_check PRIVATE ${ATen_CPU_INCLUDE})
if(INSTALL_TEST)

View File

@ -55,7 +55,7 @@ add_custom_command(
target_link_libraries(test_aoti_inference PRIVATE
torch
gtest
gtest_main
-Wl,--no-as-needed aoti_custom_class
)

View File

@ -50,7 +50,7 @@ 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 gmock)
target_link_libraries(test_api PRIVATE torch gtest_main gmock)
if(USE_CUDA)
target_compile_definitions(test_api PRIVATE "USE_CUDA")

View File

@ -7,7 +7,7 @@ if(USE_DISTRIBUTED AND NOT WIN32)
add_executable(test_dist_autograd ${DIST_AUTOGRAD_TEST_SOURCES})
target_include_directories(test_dist_autograd PRIVATE ${ATen_CPU_INCLUDE})
target_link_libraries(test_dist_autograd PRIVATE torch gtest)
target_link_libraries(test_dist_autograd PRIVATE torch gtest_main)
if(USE_CUDA)
target_compile_definitions(test_dist_autograd PRIVATE "USE_CUDA")

View File

@ -125,7 +125,7 @@ if(USE_MKLDNN)
target_link_libraries(test_jit PRIVATE caffe2::mkldnn)
endif()
set(JIT_TEST_DEPENDENCIES torch gtest jitbackend_test backend_with_compiler gmock)
set(JIT_TEST_DEPENDENCIES torch gtest_main jitbackend_test backend_with_compiler gmock)
if(MSVC)
list(APPEND JIT_TEST_DEPENDENCIES onnx_library)

View File

@ -28,7 +28,7 @@ add_executable(test_lazy
# TODO temporary until we can delete the old gtest polyfills.
target_compile_definitions(test_lazy PRIVATE USE_GTEST)
set(LAZY_TEST_DEPENDENCIES torch gtest)
set(LAZY_TEST_DEPENDENCIES torch gtest_main)
target_link_libraries(test_lazy PRIVATE ${LAZY_TEST_DEPENDENCIES})
target_include_directories(test_lazy PRIVATE ${ATen_CPU_INCLUDE})

View File

@ -21,7 +21,7 @@ target_include_directories(
${ATen_CPU_INCLUDE}
)
target_link_libraries(test_lite_interpreter_runtime PRIVATE torch gtest backend_with_compiler_runtime)
target_link_libraries(test_lite_interpreter_runtime PRIVATE torch gtest_main backend_with_compiler_runtime)
if(LINUX)
target_link_libraries(test_lite_interpreter_runtime PRIVATE "-Wl,--no-as-needed,$<TARGET_FILE:backend_with_compiler_runtime>,--as-needed")

View File

@ -17,7 +17,7 @@ add_executable(test_nativert
# TODO temporary until we can delete the old gtest polyfills.
target_compile_definitions(test_nativert PRIVATE USE_GTEST)
set(NATIVERT_TEST_DEPENDENCIES torch gtest)
set(NATIVERT_TEST_DEPENDENCIES torch gtest_main)
target_link_libraries(test_nativert PRIVATE ${NATIVERT_TEST_DEPENDENCIES})
target_link_libraries(test_nativert PRIVATE fmt::fmt-header-only)

View File

@ -5,7 +5,7 @@ set(TORCH_RPC_TEST_SOURCES
${TORCH_RPC_TEST_DIR}/test_wire_serialization.cpp
)
set(TORCH_RPC_TEST_DEPENDENCY_LIBS
torch gtest
torch gtest_main
)
if(USE_GLOO)

View File

@ -39,7 +39,7 @@ add_executable(test_tensorexpr
${TENSOREXPR_TEST_ROOT}/padded_buffer.cpp
${TENSOREXPR_TEST_SRCS})
target_link_libraries(test_tensorexpr PRIVATE torch gtest)
target_link_libraries(test_tensorexpr PRIVATE torch gtest_main)
target_include_directories(test_tensorexpr PRIVATE ${ATen_CPU_INCLUDE})
target_compile_definitions(test_tensorexpr PRIVATE USE_GTEST)

View File

@ -9,7 +9,7 @@ append_cxx_flag_if_supported("-Wno-unused-private-field" CMAKE_CXX_FLAGS)
# Generate unboxing kernels
set(GEN_COMMAND
"${Python_EXECUTABLE}" -m torchgen.gen_executorch
Python::Interpreter -m torchgen.gen_executorch
--source-path=${TEST_ROOT}
--install-dir=${OUTPUT_DIRECTORY}
--tags-path=${TORCH_ROOT}/aten/src/ATen/native/tags.yaml
@ -58,11 +58,7 @@ add_executable(test_edge_op_registration
target_compile_definitions(test_edge_op_registration PRIVATE USE_GTEST)
set(TEST_DEPENDENCIES gtest unbox_lib)
target_link_libraries(test_edge_op_registration PRIVATE
${TEST_DEPENDENCIES}
)
target_link_libraries(test_edge_op_registration PRIVATE gtest_main unbox_lib)
if((CMAKE_CXX_COMPILER_ID MATCHES "AppleClang") OR (APPLE AND CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
target_link_options(test_edge_op_registration PRIVATE
"-Wl,-force_load,$<TARGET_FILE:unbox_lib>"

View File

@ -43,5 +43,5 @@ FetchContent_MakeAvailable(googletest)
# TODO(voz): This is a little assumptive of just this one test, rewrite with real dir includes
include_directories(${ATEN_INCLUDE})
add_executable(test_cpp_prefix test_cpp_prefix.cpp ../../torchinductor/codegen/cpp_prefix.h)
target_link_libraries(test_cpp_prefix gtest gtest_main)
target_link_libraries(test_cpp_prefix gtest_main)
add_test(NAME test_cpp_prefix COMMAND test_cpp_prefix)

View File

@ -12,7 +12,7 @@ target_include_directories(test_codegen_unboxing PRIVATE ${ATen_CPU_INCLUDE})
target_compile_definitions(test_codegen_unboxing PRIVATE USE_GTEST)
set(TEST_UNBOXING_DEPENDENCIES torch gtest)
set(TEST_UNBOXING_DEPENDENCIES torch gtest_main)
target_link_libraries(test_codegen_unboxing PRIVATE
${TEST_UNBOXING_DEPENDENCIES}

View File

@ -11,7 +11,7 @@ add_executable(test_mobile_nnc
${MOBILE_NNC_TEST_SRCS}
)
target_link_libraries(test_mobile_nnc PRIVATE torch gtest)
target_link_libraries(test_mobile_nnc PRIVATE torch gtest_main)
target_include_directories(test_mobile_nnc PRIVATE ${ATen_CPU_INCLUDE})
target_compile_definitions(test_mobile_nnc PRIVATE USE_GTEST)