diff options
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index dd9ed51b68d..90baadcac8b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -765,6 +765,7 @@ endif() set_and_warn_dependency(WITH_PYTHON WITH_CYCLES OFF) set_and_warn_dependency(WITH_PYTHON WITH_DRACO OFF) +set_and_warn_dependency(WITH_PYTHON WITH_MOD_FLUID OFF) if(WITH_DRACO AND NOT WITH_PYTHON_INSTALL) message(STATUS "WITH_DRACO requires WITH_PYTHON_INSTALL to be ON, disabling WITH_DRACO for now") @@ -781,7 +782,9 @@ set_and_warn_dependency(WITH_BOOST WITH_OPENCOLORIO OFF) set_and_warn_dependency(WITH_BOOST WITH_QUADRIFLOW OFF) set_and_warn_dependency(WITH_BOOST WITH_USD OFF) set_and_warn_dependency(WITH_BOOST WITH_ALEMBIC OFF) -set_and_warn_dependency(WITH_PUGIXML WITH_CYCLES_OSL OFF) +if(WITH_CYCLES) + set_and_warn_dependency(WITH_PUGIXML WITH_CYCLES_OSL OFF) +endif() set_and_warn_dependency(WITH_PUGIXML WITH_OPENIMAGEIO OFF) if(WITH_BOOST AND NOT (WITH_CYCLES OR WITH_OPENIMAGEIO OR WITH_INTERNATIONAL OR @@ -935,7 +938,10 @@ set(PLATFORM_CFLAGS) set(C_WARNINGS) set(CXX_WARNINGS) -# for gcc -Wno-blah-blah +# NOTE: These flags are intended for situations where where it's impractical to +# suppress warnings by modifying the code or for code which is maintained externally. +# For GCC this typically means adding `-Wno-*` arguments to negate warnings +# that are useful in the general case. set(C_REMOVE_STRICT_FLAGS) set(CXX_REMOVE_STRICT_FLAGS) @@ -1456,14 +1462,6 @@ if(WITH_LIBMV OR WITH_GTESTS OR (WITH_CYCLES AND WITH_CYCLES_LOGGING)) endif() #----------------------------------------------------------------------------- -# Configure Ceres - -if(WITH_LIBMV) - # We always have C++11 which includes unordered_map. - set(CERES_DEFINES "-DCERES_STD_UNORDERED_MAP;-DCERES_USE_CXX_THREADS") -endif() - -#----------------------------------------------------------------------------- # Extra limits to number of jobs running in parallel for some kind os tasks. # Only supported by Ninja build system currently. if("${CMAKE_GENERATOR}" MATCHES "Ninja" AND WITH_NINJA_POOL_JOBS) @@ -1539,7 +1537,6 @@ endif() if(CMAKE_COMPILER_IS_GNUCC) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ALL -Wall) - ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_CAST_ALIGN -Wcast-align) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_IMPLICIT_FUNCTION_DECLARATION -Werror=implicit-function-declaration) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_RETURN_TYPE -Werror=return-type) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_VLA -Werror=vla) @@ -1624,6 +1621,18 @@ if(CMAKE_COMPILER_IS_GNUCC) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_IMPLICIT_FALLTHROUGH -Wimplicit-fallthrough=5) endif() + + #---------------------- + # Suppress Strict Flags + # + # Exclude the following warnings from this list: + # - `-Wno-address`: + # This can give useful hints that point to bugs/misleading logic. + # - `-Wno-strict-prototypes`: + # No need to support older C-style prototypes. + # + # If code in `./extern/` needs to suppress these flags that can be done on a case-by-case basis. + # flags to undo strict flags ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_DEPRECATED_DECLARATIONS -Wno-deprecated-declarations) ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_PARAMETER -Wno-unused-parameter) @@ -1679,6 +1688,9 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "Clang") # ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNUSED_MACROS -Wunused-macros) # ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_UNUSED_MACROS -Wunused-macros) + #---------------------- + # Suppress Strict Flags + # flags to undo strict flags ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_PARAMETER -Wno-unused-parameter) ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_VARIABLE -Wno-unused-variable) @@ -1744,6 +1756,7 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "MSVC") "/wd4828" # The file contains a character that is illegal "/wd4996" # identifier was declared deprecated "/wd4661" # no suitable definition provided for explicit template instantiation request + "/wd4848" # 'no_unique_address' is a vendor extension in C++17 # errors: "/we4013" # 'function' undefined; assuming extern returning int "/we4133" # incompatible pointer types |