diff --git a/CMakeLists.txt b/CMakeLists.txt index ad08c72d1ae..10e2eb437e3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -296,7 +296,10 @@ if(EXECUTORCH_BUILD_TESTS) endif() # TODO(dbort): Fix these warnings and remove this flag. -set(_common_compile_options -Wno-deprecated-declarations -fPIC) +set(_common_compile_options + $<$:/wd4996> + $<$>:-Wno-deprecated-declarations -fPIC> +) # Let files say "include ". # TODO(#6475): This requires/assumes that the repo lives in a directory named @@ -787,7 +790,10 @@ if(EXECUTORCH_BUILD_PYBIND) bundled_module PUBLIC ${_common_include_directories} ) target_compile_options( - bundled_module PUBLIC -Wno-deprecated-declarations -fPIC + bundled_module + PUBLIC $<$:/wd4996> + $<$>:-Wno-deprecated-declarations + -fPIC> ) endif() @@ -859,8 +865,14 @@ if(EXECUTORCH_BUILD_PYBIND) endif() # compile options for pybind - set(_pybind_compile_options -Wno-deprecated-declarations -fPIC -frtti - -fexceptions + set(_pybind_compile_options + $<$:/EHsc + /GR + /wd4996> + $<$>:-Wno-deprecated-declarations + -fPIC + -frtti + -fexceptions> ) # util lib diff --git a/backends/aoti/CMakeLists.txt b/backends/aoti/CMakeLists.txt index 845144af50f..fcabb0a3f2b 100644 --- a/backends/aoti/CMakeLists.txt +++ b/backends/aoti/CMakeLists.txt @@ -36,9 +36,15 @@ target_include_directories( # PyTorch AOTI headers from ExecuTorch's torch detection ${TORCH_INCLUDE_DIRS} ) -target_compile_options(aoti_common PUBLIC -fexceptions -frtti -fPIC) +target_compile_options( + aoti_common + PUBLIC $<$:/EHsc /GR> + $<$>:-fexceptions -frtti -fPIC> +) # Ensure symbols are exported properly -target_link_options(aoti_common PUBLIC -Wl,--export-dynamic) +target_link_options( + aoti_common PUBLIC $<$>:-Wl,--export-dynamic> +) # Link against ExecuTorch libraries and standard libraries target_link_libraries(aoti_common PUBLIC extension_tensor ${CMAKE_DL_LIBS}) diff --git a/backends/cuda/CMakeLists.txt b/backends/cuda/CMakeLists.txt index 575f676e4cc..221291442ec 100644 --- a/backends/cuda/CMakeLists.txt +++ b/backends/cuda/CMakeLists.txt @@ -49,9 +49,14 @@ target_include_directories( # PyTorch AOTI headers from ExecutorTorch's torch detection ${TORCH_INCLUDE_DIRS} ) -target_compile_options(aoti_cuda PUBLIC -fexceptions -frtti -fPIC) +target_compile_options( + aoti_cuda PUBLIC $<$:/EHsc /GR> + $<$>:-fexceptions -frtti -fPIC> +) # Ensure symbols are exported properly -target_link_options(aoti_cuda PUBLIC -Wl,--export-dynamic) +target_link_options( + aoti_cuda PUBLIC $<$>:-Wl,--export-dynamic> +) # Link against CUDA::cudart, common AOTI library, and PyTorch CUDA libraries target_link_libraries( diff --git a/extension/android/CMakeLists.txt b/extension/android/CMakeLists.txt index 34a1d3d2fd0..38b28a1407a 100644 --- a/extension/android/CMakeLists.txt +++ b/extension/android/CMakeLists.txt @@ -18,7 +18,10 @@ endif() set(EXECUTORCH_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../..") include(${EXECUTORCH_ROOT}/tools/cmake/Utils.cmake) -set(_common_compile_options -Wno-deprecated-declarations -fPIC) +set(_common_compile_options + $<$:/wd4996> + $<$>:-Wno-deprecated-declarations -fPIC> +) if(NOT ANDROID_PLATFORM) set(ANDROID_PLATFORM android-30) endif() diff --git a/extension/llm/custom_ops/CMakeLists.txt b/extension/llm/custom_ops/CMakeLists.txt index 8b29dfdcfd0..2cdfe547430 100644 --- a/extension/llm/custom_ops/CMakeLists.txt +++ b/extension/llm/custom_ops/CMakeLists.txt @@ -16,9 +16,14 @@ if(NOT EXECUTORCH_ROOT) set(EXECUTORCH_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../../..) endif() -set(_common_compile_options -Wno-deprecated-declarations -fPIC) +set(_common_compile_options + $<$:/wd4996> + $<$>:-Wno-deprecated-declarations -fPIC> +) if(CMAKE_SYSTEM_PROCESSOR MATCHES "arm64|aarch64") - list(APPEND _common_compile_options "-march=armv8.2-a+dotprod") + list(APPEND _common_compile_options + "$<$>:-march=armv8.2-a+dotprod>" + ) endif() include(${EXECUTORCH_ROOT}/tools/cmake/Utils.cmake) @@ -135,8 +140,15 @@ if(EXECUTORCH_BUILD_KERNELS_LLM_AOT) target_link_libraries(custom_ops_aot_lib PUBLIC pthreadpool cpuinfo) endif() target_compile_options( - custom_ops_aot_lib PUBLIC -Wno-deprecated-declarations -fPIC -frtti - -fexceptions ${_common_compile_options} + custom_ops_aot_lib + PUBLIC $<$:/EHsc + /GR + /wd4996> + $<$>:-Wno-deprecated-declarations + -fPIC + -frtti + -fexceptions> + ${_common_compile_options} ) install( diff --git a/extension/module/CMakeLists.txt b/extension/module/CMakeLists.txt index 8fb2be9a677..4e1c3f160bd 100644 --- a/extension/module/CMakeLists.txt +++ b/extension/module/CMakeLists.txt @@ -35,7 +35,9 @@ target_include_directories( extension_module PUBLIC ${_common_include_directories} ) target_compile_options( - extension_module PUBLIC -Wno-deprecated-declarations -fPIC + extension_module + PUBLIC $<$:/wd4996> + $<$>:-Wno-deprecated-declarations -fPIC> ) # Module extension built as a static library. TODO(gjcomer) Remove this target @@ -50,7 +52,9 @@ target_include_directories( extension_module_static PUBLIC ${_common_include_directories} ) target_compile_options( - extension_module_static PUBLIC -Wno-deprecated-declarations -fPIC + extension_module_static + PUBLIC $<$:/wd4996> + $<$>:-Wno-deprecated-declarations -fPIC> ) # Install libraries diff --git a/extension/training/CMakeLists.txt b/extension/training/CMakeLists.txt index ed2b3bc5a1e..8f572514aa5 100644 --- a/extension/training/CMakeLists.txt +++ b/extension/training/CMakeLists.txt @@ -70,7 +70,14 @@ if(EXECUTORCH_BUILD_PYBIND) target_include_directories(_training_lib PRIVATE ${TORCH_INCLUDE_DIRS}) target_compile_options( - _training_lib PUBLIC -Wno-deprecated-declarations -fPIC -frtti -fexceptions + _training_lib + PUBLIC $<$:/EHsc + /GR + /wd4996> + $<$>:-Wno-deprecated-declarations + -fPIC + -frtti + -fexceptions> ) target_link_libraries(_training_lib PRIVATE ${_pybind_training_dep_libs}) diff --git a/extension/wasm/CMakeLists.txt b/extension/wasm/CMakeLists.txt index 36c336e17c5..8ffd1801c63 100644 --- a/extension/wasm/CMakeLists.txt +++ b/extension/wasm/CMakeLists.txt @@ -27,7 +27,15 @@ if(NOT EXECUTORCH_ROOT) endif() include(${EXECUTORCH_ROOT}/tools/cmake/Utils.cmake) -set(_common_compile_options -Wno-deprecated-declarations -fPIC -Wall -Werror) +set(_common_compile_options + $<$:/W4 + /WX + /wd4996> + $<$>:-Wall + -Werror + -Wno-deprecated-declarations + -fPIC> +) set(_common_include_directories ${EXECUTORCH_ROOT}/..) set(link_libraries)