idf.py: Disable CMake --warn-uninitialized option by default

Can still be enabled by passing --cmake-warn-uninitialized on the command line

Prevents CMake warnings printed by default if IDF_PATH is underneath the CMake
project directory.

The reason for this is that CMake --warn-uninitialized only enables checks
inside the project directory (ie top-level CMakeLists.txt directory and
subdirectories), it doesn't enable for files included from other directories.

(The only way to enable warnings in other directories is to pass
--check-system-dirs and this looks like it's only useful for CMake's own
developers as it prints a lot of warnings from inside CMake otherwise - see
https://gitlab.kitware.com/cmake/cmake/-/issues/19645 )

Plan to follow up with a later commit to clean up most of the warnings (which
aren't problems for CMake execution), but we'll also disable this option by
default to avoid this unexpected triggering of IDF warnings.
pull/5919/head
Angus Gratton 2020-08-25 17:04:18 +10:00 zatwierdzone przez Angus Gratton
rodzic bc5c508211
commit ad295037a8
3 zmienionych plików z 6 dodań i 3 usunięć

Wyświetl plik

@ -115,6 +115,7 @@ Here is a list of some useful options:
Note that some older versions of CCache may exhibit bugs on some platforms, so if files are not rebuilt as expected then try disabling ccache and build again. CCache can be enabled by default by setting the ``IDF_ENABLE_CCACHE`` environment variable to a non-zero value.
- ``-v`` flag causes both ``idf.py`` and the build system to produce verbose build output. This can be useful for debugging build problems.
- ``--cmake-warn-uninitialized`` (or ``-w``) will cause CMake to print uninitialized variable warnings inside the project directory (not for directories not found inside the project directory). This only controls CMake variable warnings inside CMake itself, not other types of build warnings. This option can also be set permanently by setting the ``IDF_CMAKE_WARN_UNINITIALIZED`` environment variable to a non-zero value.
Using CMake Directly
--------------------

Wyświetl plik

@ -221,8 +221,10 @@ def action_extensions(base_actions, project_path):
"default": None,
},
{
"names": ["-n", "--no-warnings"],
"help": "Disable Cmake warnings.",
"names": ["-w/-n", "--cmake-warn-uninitialized/--no-warnings"],
"help": ("Enable CMake uninitialized variable warnings for CMake files inside the project directory. "
"(--no-warnings is now the default, and doesn't need to be specified.)"),
"envvar": "IDF_CMAKE_WARN_UNINITIALIZED",
"is_flag": True,
"default": False,
},

Wyświetl plik

@ -200,7 +200,7 @@ def ensure_build_directory(args, prog_name, always_run_cmake=False):
"-DPYTHON_DEPS_CHECKED=1",
"-DESP_PLATFORM=1",
]
if not args.no_warnings:
if args.cmake_warn_uninitialized:
cmake_args += ["--warn-uninitialized"]
if args.define_cache_entry: