@@ -9,6 +9,7 @@ if(WITH_CUDA)
9
9
enable_language (CUDA )
10
10
add_definitions (-D__CUDA_NO_HALF_OPERATORS__ )
11
11
add_definitions (-DWITH_CUDA )
12
+ set (CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --expt-relaxed-constexpr" )
12
13
endif ()
13
14
14
15
find_package (Python3 COMPONENTS Development )
@@ -17,6 +18,15 @@ find_package(Torch REQUIRED)
17
18
find_package (PNG REQUIRED )
18
19
find_package (JPEG REQUIRED )
19
20
21
+ function (CUDA_CONVERT_FLAGS EXISTING_TARGET )
22
+ get_property (old_flags TARGET ${EXISTING_TARGET} PROPERTY INTERFACE_COMPILE_OPTIONS )
23
+ if (NOT "${old_flags} " STREQUAL "" )
24
+ string (REPLACE ";" "," CUDA_flags "${old_flags} " )
25
+ set_property (TARGET ${EXISTING_TARGET} PROPERTY INTERFACE_COMPILE_OPTIONS
26
+ "$<$<BUILD_INTERFACE:$<COMPILE_LANGUAGE:CXX>>:${old_flags} >$<$<BUILD_INTERFACE:$<COMPILE_LANGUAGE:CUDA>>:-Xcompiler=${CUDA_flags} >"
27
+ )
28
+ endif ()
29
+ endfunction ()
20
30
21
31
file (GLOB HEADERS torchvision/csrc/*.h )
22
32
# Image extension
@@ -29,6 +39,26 @@ endif()
29
39
file (GLOB MODELS_HEADERS torchvision/csrc/models/*.h )
30
40
file (GLOB MODELS_SOURCES torchvision/csrc/models/*.h torchvision/csrc/models/*.cpp )
31
41
42
+ if (MSVC )
43
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4819" )
44
+ if (WITH_CUDA )
45
+ set (CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler=/wd4819" )
46
+ foreach (diag cc_clobber_ignored integer_sign_change useless_using_declaration
47
+ set_but_not_used field_without_dll_interface
48
+ base_class_has_different_dll_interface
49
+ dll_interface_conflict_none_assumed
50
+ dll_interface_conflict_dllexport_assumed
51
+ implicit_return_from_non_void_function
52
+ unsigned_compare_with_zero
53
+ declared_but_not_referenced
54
+ bad_friend_decl )
55
+ string (APPEND CMAKE_CUDA_FLAGS " -Xcudafe --diag_suppress=${diag} " )
56
+ endforeach ()
57
+ CUDA_CONVERT_FLAGS (torch_cpu )
58
+ CUDA_CONVERT_FLAGS (torch_cuda )
59
+ endif ()
60
+ endif ()
61
+
32
62
add_library (${PROJECT_NAME} SHARED ${MODELS_SOURCES} ${OPERATOR_SOURCES} ${IMAGE_SOURCES} )
33
63
target_link_libraries (${PROJECT_NAME} PRIVATE ${TORCH_LIBRARIES} ${PNG_LIBRARY} ${JPEG_LIBRARIES} Python3::Python )
34
64
set_target_properties (${PROJECT_NAME} PROPERTIES EXPORT_NAME TorchVision )
0 commit comments