diff --git a/CMakeLists.txt b/CMakeLists.txt index ed7ff1080b7..d934e6f0888 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -209,6 +209,16 @@ if(NOT MSVC) # Eigen fails to build with some versions, so convert this to a warning # Details at http://eigen.tuxfamily.org/bz/show_bug.cgi?id=1459 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-invalid-partial-specialization") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wextra") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-missing-field-initializers") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-type-limits") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-parameter") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-warning-option") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-pragmas") + if ($ENV{WERROR}) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror") + endif($ENV{WERROR}) else() foreach(flag_var CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE diff --git a/aten/CMakeLists.txt b/aten/CMakeLists.txt index 35554efb47f..d91d0bac8ac 100644 --- a/aten/CMakeLists.txt +++ b/aten/CMakeLists.txt @@ -60,6 +60,7 @@ include(CMakeInitializeConfigs) set(ATen_CPU_SRCS) set(ATen_CPU_TEST_SRCS) set(ATen_CPU_INCLUDE) +set(ATen_THIRD_PARTY_INCLUDE) set(ATen_CUDA_SRCS) set(ATen_CUDA_TEST_SRCS) set(ATen_CUDA_INCLUDE) @@ -173,6 +174,7 @@ if (CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO) set(ATen_CUDA_TEST_SRCS ${ATen_CUDA_TEST_SRCS} PARENT_SCOPE) set(ATen_CPU_INCLUDE ${ATen_CPU_INCLUDE} PARENT_SCOPE) set(ATen_CUDA_INCLUDE ${ATen_CUDA_INCLUDE} PARENT_SCOPE) + set(ATen_THIRD_PARTY_INCLUDE ${ATen_THIRD_PARTY_INCLUDE} PARENT_SCOPE) set(ATen_CPU_DEPENDENCY_LIBS ${ATen_CPU_DEPENDENCY_LIBS} PARENT_SCOPE) set(ATen_CUDA_DEPENDENCY_LIBS ${ATen_CUDA_DEPENDENCY_LIBS} PARENT_SCOPE) endif() diff --git a/aten/src/ATen/CMakeLists.txt b/aten/src/ATen/CMakeLists.txt index af6cd71707f..4835b2f1956 100644 --- a/aten/src/ATen/CMakeLists.txt +++ b/aten/src/ATen/CMakeLists.txt @@ -86,6 +86,11 @@ IF(NOT AT_LINK_STYLE) SET(AT_LINK_STYLE SHARED) ENDIF() +# Unset our restrictive C++ flags here and reset them later. +# Remove this once we use proper target_compile_options. +set(OLD_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) +set(CMAKE_CXX_FLAGS) + set(TBB_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../../third_party/tbb") set(TBB_BUILD_STATIC ON CACHE BOOL " " FORCE) set(TBB_BUILD_SHARED OFF CACHE BOOL " " FORCE) @@ -94,9 +99,11 @@ set(TBB_BUILD_TBBMALLOC_PROXY OFF CACHE BOOL " " FORCE) set(TBB_BUILD_TESTS OFF CACHE BOOL " " FORCE) add_subdirectory(cpu/tbb) set_property(TARGET tbb_static tbb_def_files PROPERTY FOLDER "dependencies") -list(APPEND ATen_CPU_INCLUDE ${TBB_ROOT_DIR}/include) +list(APPEND ATen_THIRD_PARTY_INCLUDE ${TBB_ROOT_DIR}/include) list(APPEND ATen_CPU_DEPENDENCY_LIBS tbb_static) +set(CMAKE_CXX_FLAGS ${OLD_CMAKE_CXX_FLAGS}) + IF(BLAS_FOUND) IF ($ENV{TH_BINARY_BUILD}) MESSAGE(STATUS "TH_BINARY_BUILD detected. Enabling special linkage.") @@ -174,16 +181,23 @@ if(NOT MSVC) set(__aten_sleef_build_shared_libs ${BUILD_SHARED_LIBS}) set(__aten_sleef_build_tests ${BUILD_TESTS}) + # Unset our restrictive C++ flags here and reset them later. + # Remove this once we use proper target_compile_options. + set(OLD_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) + set(CMAKE_CXX_FLAGS) + set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build sleef static" FORCE) set(BUILD_DFT OFF CACHE BOOL "Don't build sleef DFT lib" FORCE) set(BUILD_GNUABI_LIBS OFF CACHE BOOL "Don't build sleef gnuabi libs" FORCE) set(BUILD_TESTS OFF CACHE BOOL "Don't build sleef tests" FORCE) add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/../../../third_party/sleef" ${CMAKE_BINARY_DIR}/sleef) set_property(TARGET sleef PROPERTY FOLDER "dependencies") - list(APPEND ATen_CPU_INCLUDE SYSTEM ${CMAKE_BINARY_DIR}/include) + list(APPEND ATen_THIRD_PARTY_INCLUDE ${CMAKE_BINARY_DIR}/include) link_directories(${CMAKE_BINARY_DIR}/sleef/lib) list(APPEND ATen_CPU_DEPENDENCY_LIBS sleef) + set(CMAKE_CXX_FLAGS ${OLD_CMAKE_CXX_FLAGS}) + # Set these back. TODO: Use SLEEF_ to pass these instead set(BUILD_SHARED_LIBS ${__aten_sleef_build_shared_libs} CACHE BOOL "Build shared libs" FORCE) set(BUILD_TESTS ${__aten_sleef_build_tests} CACHE BOOL "Build tests" FORCE) @@ -278,6 +292,9 @@ if(AT_LINK_STYLE STREQUAL "INTERFACE") list(APPEND ATen_CPU_DEPENDENCY_LIBS ATEN_CPU_FILES_GEN_LIB) else() add_library(ATen_cpu ${AT_LINK_STYLE} ${ATen_CPU_SRCS}) + if (ATen_THIRD_PARTY_INCLUDE) + target_include_directories(ATen_cpu SYSTEM PRIVATE ${ATen_THIRD_PARTY_INCLUDE}) + endif() target_include_directories(ATen_cpu INTERFACE $) target_include_directories(ATen_cpu PRIVATE ${ATen_CPU_INCLUDE}) target_link_libraries(ATen_cpu PUBLIC ${ATen_CPU_DEPENDENCY_LIBS}) @@ -311,6 +328,8 @@ if(NOT NO_CUDA OR WITH_ROCM) target_include_directories( ATen_cuda INTERFACE $) + target_include_directories( + ATen_cuda PRIVATE ${ATen_THIRD_PARTY_INCLUDE}) target_include_directories( ATen_cuda PRIVATE ${ATen_CUDA_INCLUDE}) target_link_libraries( @@ -419,6 +438,7 @@ if (NOT CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO) target_include_directories( ${test_name} PRIVATE $) target_include_directories(${test_name} PRIVATE ${ATen_CPU_INCLUDE}) + target_include_directories(${test_name} SYSTEM PRIVATE ${ATen_THIRD_PARTY_INCLUDE}) target_link_libraries(${test_name} ATen_cpu) add_test(NAME ${test_name} COMMAND $) install(TARGETS ${test_name} DESTINATION test) @@ -431,6 +451,7 @@ if (NOT CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO) target_include_directories( ${test_name} PRIVATE $) target_include_directories(${test_name} PRIVATE ${ATen_CPU_INCLUDE}) + target_include_directories(${test_name} SYSTEM PRIVATE ${ATen_THIRD_PARTY_INCLUDE}) target_link_libraries(${test_name} ATen_cpu ATen_cuda) add_test(NAME ${test_name} COMMAND $) install(TARGETS ${test_name} DESTINATION test) @@ -448,6 +469,7 @@ set(ATen_CUDA_SRCS ${ATen_CUDA_SRCS} PARENT_SCOPE) set(ATen_CPU_TEST_SRCS ${ATen_CPU_TEST_SRCS} PARENT_SCOPE) set(ATen_CUDA_TEST_SRCS ${ATen_CUDA_TEST_SRCS} PARENT_SCOPE) set(ATen_CPU_INCLUDE ${ATen_CPU_INCLUDE} PARENT_SCOPE) +set(ATen_THIRD_PARTY_INCLUDE ${ATen_THIRD_PARTY_INCLUDE} PARENT_SCOPE) set(ATen_CUDA_INCLUDE ${ATen_CUDA_INCLUDE} PARENT_SCOPE) set(ATen_CPU_DEPENDENCY_LIBS ${ATen_CPU_DEPENDENCY_LIBS} PARENT_SCOPE) set(ATen_CUDA_DEPENDENCY_LIBS ${ATen_CUDA_DEPENDENCY_LIBS} PARENT_SCOPE) diff --git a/aten/src/ATen/cpu/tbb/CMakeLists.txt b/aten/src/ATen/cpu/tbb/CMakeLists.txt index f67a9ecc6c4..84355926d2d 100644 --- a/aten/src/ATen/cpu/tbb/CMakeLists.txt +++ b/aten/src/ATen/cpu/tbb/CMakeLists.txt @@ -34,7 +34,11 @@ if(NOT TBB_INSTALL_INCLUDE_DIR) set(TBB_INSTALL_INCLUDE_DIR "${TBB_ROOT_DIR}/include") endif() -include_directories("${TBB_ROOT_DIR}/include" "${TBB_ROOT_DIR}/src" "${TBB_ROOT_DIR}/src/rml/include" ${CMAKE_CURRENT_BINARY_DIR}) +set(TBB_INCLUDES + "${TBB_ROOT_DIR}/include" + "${TBB_ROOT_DIR}/src" + "${TBB_ROOT_DIR}/src/rml/include" + ${CMAKE_CURRENT_BINARY_DIR}) option(TBB_BUILD_SHARED "Build TBB shared library" ON) option(TBB_BUILD_STATIC "Build TBB static library" ON) @@ -239,6 +243,7 @@ add_custom_target(tbb_def_files DEPENDS tbb.def tbbmalloc.def) # TBB library if (TBB_BUILD_STATIC) add_library(tbb_static STATIC ${tbb_src}) + target_include_directories(tbb_static PRIVATE ${TBB_INCLUDES}) set_property(TARGET tbb_static APPEND PROPERTY COMPILE_DEFINITIONS "__TBB_BUILD=1") set_property(TARGET tbb_static APPEND_STRING PROPERTY COMPILE_FLAGS ${ENABLE_RTTI}) install(TARGETS tbb_static ARCHIVE DESTINATION ${TBB_INSTALL_ARCHIVE_DIR}) @@ -253,6 +258,7 @@ endif() if (TBB_BUILD_SHARED) add_library(tbb SHARED ${tbb_src}) + target_include_directories(tbb PRIVATE ${TBB_INCLUDES}) set_property(TARGET tbb APPEND PROPERTY COMPILE_DEFINITIONS "__TBB_BUILD=1") set_property(TARGET tbb APPEND_STRING PROPERTY COMPILE_FLAGS ${ENABLE_RTTI}) add_dependencies(tbb tbb_def_files) @@ -293,6 +299,7 @@ if(TBB_BUILD_TBBMALLOC) # TBB malloc library if (TBB_BUILD_STATIC) add_library(tbbmalloc_static STATIC ${tbbmalloc_static_src}) + target_include_directories(tbbmalloc_static PRIVATE ${TBB_INCLUDES}) set_property(TARGET tbbmalloc_static APPEND PROPERTY COMPILE_DEFINITIONS "__TBBMALLOC_BUILD=1") set_property(TARGET tbbmalloc_static APPEND_STRING PROPERTY COMPILE_FLAGS ${DISABLE_RTTI}) if (MSVC) @@ -303,6 +310,7 @@ if(TBB_BUILD_TBBMALLOC) if (TBB_BUILD_SHARED) add_library(tbbmalloc SHARED ${tbbmalloc_src}) + target_include_directories(tbbmalloc PRIVATE ${TBB_INCLUDES}) set_property(TARGET tbbmalloc APPEND PROPERTY COMPILE_DEFINITIONS "__TBBMALLOC_BUILD=1") set_property(TARGET tbbmalloc APPEND_STRING PROPERTY COMPILE_FLAGS ${DISABLE_RTTI}) add_dependencies(tbbmalloc tbb_def_files) diff --git a/aten/src/ATen/native/TensorFactories.cpp b/aten/src/ATen/native/TensorFactories.cpp index 759418ed8be..7179a6b77f6 100644 --- a/aten/src/ATen/native/TensorFactories.cpp +++ b/aten/src/ATen/native/TensorFactories.cpp @@ -10,7 +10,7 @@ #include #include - namespace at { +namespace at { namespace native { Tensor arange(const Type& dtype, Scalar start, Scalar end, Scalar step) { diff --git a/caffe2/CMakeLists.txt b/caffe2/CMakeLists.txt index dc822f79caa..dbe160da909 100644 --- a/caffe2/CMakeLists.txt +++ b/caffe2/CMakeLists.txt @@ -43,6 +43,7 @@ if(BUILD_ATEN) list(APPEND Caffe2_GPU_INCLUDE ${ATen_CUDA_INCLUDE}) list(APPEND Caffe2_DEPENDENCY_LIBS ${ATen_CPU_DEPENDENCY_LIBS}) list(APPEND Caffe2_CUDA_DEPENDENCY_LIBS ${ATen_CUDA_DEPENDENCY_LIBS}) + list(APPEND Caffe2_DEPENDENCY_INCLUDE ${ATen_THIRD_PARTY_INCLUDE}) endif() # ---[ Caffe2 build @@ -180,6 +181,7 @@ target_link_libraries(caffe2 PRIVATE ${Caffe2_DEPENDENCY_LIBS}) target_link_libraries(caffe2 PRIVATE ${Caffe2_DEPENDENCY_WHOLE_LINK_LIBS}) target_include_directories(caffe2 INTERFACE $) target_include_directories(caffe2 PRIVATE ${Caffe2_CPU_INCLUDE}) +target_include_directories(caffe2 SYSTEM PRIVATE "${Caffe2_DEPENDENCY_INCLUDE}") # Set standard properties on the target aten_set_target_props(caffe2) target_compile_options(caffe2 INTERFACE "-std=c++11") @@ -269,6 +271,7 @@ if(BUILD_ATEN) get_filename_component(test_name ${test_src} NAME_WE) add_executable(${test_name} "${test_src}") target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE}) + target_include_directories(${test_name} SYSTEM PRIVATE ${Caffe2_DEPENDENCY_INCLUDE}) target_link_libraries(${test_name} ${Caffe2_MAIN_LIBS}) add_test(NAME ${test_name} COMMAND $) install(TARGETS ${test_name} DESTINATION ${__aten_test_dir}) @@ -279,6 +282,7 @@ if(BUILD_ATEN) get_filename_component(test_name ${test_src} NAME_WE) torch_cuda_based_add_executable(${test_name} "${test_src}") target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE}) + target_include_directories(${test_name} SYSTEM PRIVATE ${Caffe2_DEPENDENCY_INCLUDE}) target_link_libraries(${test_name} ${Caffe2_MAIN_LIBS}) add_test(NAME ${test_name} COMMAND $) install(TARGETS ${test_name} DESTINATION ${__aten_test_dir})