| Age | Commit message (Collapse) | Author |
|
The properties themselves aren't really copied, just added to the
Symbol/Choice property lists.
|
|
|
|
More descriptive. Menu node properties are copied, not just their
dependencies.
|
|
Base 10 is the default.
|
|
Just adds commit dc0b022 ("Correctly report choice locations in some
warnings").
|
|
Menu nodes were added to choices after parsing their properties, making
some warnings generated during parsing (as opposed to in
_check_choice_sanity()) incorrectly give the choice as '<choice>
(undefined)'.
Add the node before parsing choice properties to fix those warnings.
|
|
.format() will implicitly format the exception as a string.
|
|
Fixes:
- c880151 ("Fix incorrectly ordered properties for some nested
multi.def. symbols") fixes a bug that could cause symbols/choices
defined in multiple locations and nested in particular ways within
if's and menus to get their properties in the wrong order.
The Linux kernel wasn't affected (which is how it managed to slip
through), but projects that make heavy use of symbols defined in
multiple locations might have been. Comprehensive selftests have
been added to cover property ordering on nested multi.def.
symbols/choices.
New features:
- 4af3e0c ("menuconfig: Support starting a search from the info
dialog") and 330017a ("menuconfig: Support viewing symbol info from
within the jump-to dialog") makes working with the menuconfig a bit
smoother to work with.
- 68043b2 ("Add MenuNode function that returns referenced items")
makes it easier to find out what symbols/choices a symbol, choice,
menu, or comment references, which is handy e.g. for searching.
|
|
|
|
This case wasn't covered.
|
|
The property lists weren't created for Kconfig.top_node, making
referenced() crash.
Add a MenuNode constructor and create the property lists there instead
of in _parse_properties().
|
|
_propagate_deps() visits menu nodes roughly breadth-first, meaning
properties on symbols and choices defined in multiple locations could
end up in the wrong order when copied from the menu node for some
unlucky if/menu nestings.
Fix it by moving the menu-node-to-symbol/choice property copying in
_finalize_tree() so that it's guaranteed to happen in definition order.
This bug was introduced by commit 63a4418 ("Record which MenuNode has
each property").
|
|
MenuNode.referenced() returns all symbols (and choices, for choice
symbols) referenced in the properties (prompt, defaults, selects,
ranges, etc.) and property conditions of the menu node.
Handy e.g. when generating cross-references.
|
|
|
|
Same cleanup as for _make_depend_on().
Rename 'deps' to 'res' as well. The result can be used for other stuff
besides figuring out dependencies.
|
|
Rearrange and break out common stuff.
Already rename the 'sym' parameter to 'sc', as it could be a choice as
well.
|
|
Relations have the same format as AND/OR expressions and can be handled
with the same code.
This gives an extra recursion for relational expressions (because they
can only have symbols as operands), but they're much rarer than other
expression types.
|
|
Oversight
|
|
The docstrings make the body non-empty already.
|
|
This commit fixes an issue when user searches for a nonexistent object
(e.g. adsdsaasda) and presses enter.
Having all the key checks in one continuous if statement makes sure that
the very last 'else' statement does not get executed when enter is
pressed.
Note - backported from:
https://github.com/zephyrproject-rtos/zephyr/pull/8332
|
|
We can rely on set_value() being a no-op when setting non-bool/tristate
symbols to 0/1/2 (due to those values being invalid for other types).
Remove some long duplicated comments too.
|
|
Handy e.g. when searching.
|
|
Ctrl-F (Ctrl-H clashes with backspace) brings up the information dialog
for the selected item in the jump-to dialog.
Since it's now possible to jump directly from the information dialog to
the jump-to dialog and vice versa, recursive invocation becomes
possible. Work around it with a flag to _info_dialog() that makes '/'
return if the information dialog was launched from within the jump-to
dialog. (Recursive invocations work code-wise, but act in a confusing
way.)
|
|
It's annoying to have to leave the information dialog just to do a
search related to something you saw in the information dialog.
Stay in the information dialog if the search is canceled.
|
|
This environment variable was inherited from the C tools.
kconfiglib.standard_config_filename() looks at it.
|
|
|
|
Also move the description of the Kconfig extensions out of 'Other features' and into
a separate section under 'Library features'.
|
|
|
|
|
|
|
|
Just to fix the rendering of the README on PyPI with commit b727f4d
("Fix link to allyesconfig.py in README").
|
|
No longer just an example either.
This also makes the README render properly on PyPI.
|
|
|
|
Changed behavior (giving the major version bump):
- cbf32e2 ("Expand environment variables in strings directly") makes
'option env' "bounce" symbols redundant, though they are still
supported for backwards compatibility (with the caveat that they
must have the same name as the environment variables they
reference to preserve behavior).
A warning is printed if 'option env="FOO"' appears on a symbol
that's not named FOO.
This change will likely appear in the C tools soon as well.
Other new features:
- The menuconfig implementation is now bundled in the PyPI package,
along with implementations of the Kconfig oldconfig and
all{def,no,yes,mod}config tools.
A genconfig script is provided for generating a C header from the
configuration, as well as (optionally) the sync_deps() directory
structure for implementing incremental builds.
- 63a4418 ("Record which MenuNode has each property") makes it
possible to generate documentation for symbols defined in multiple
locations with each property shown on the right definition. See
genrest.py in Zephyr.
This change also cleans up the parsing code a bit. Dependency
propagation is now done after parsing, in _finalize_tree().
- 94020be ("Make Kconfig._choices public") and fc73c46 ("Provide lists
with all menus and comments") gives easier access to Kconfig items
of a specific type, without having to walk the menu tree. This turns
out to be handy e.g. when generating documentation and implementing
search.
Improvements and new warnings:
- da40c01 ("Force encoding to UTF-8 by default on Python 3")
- 7427079 ("Get rid of the predefined UNAME_RELEASE symbol")
- f64591c ("Warn if prompt contains leading or trailing whitespace")
- c14e411 ("Warn if quotes are omitted around string defaults")
Misc. minor refactoring and cleanup has been done as well.
|
|
Everything's ISC.
|
|
|
|
|
|
|
|
Explain the soon-to-be-bundled tools.
Also rearrange and clean up some sections.
|
|
There should be a script available that generates the output header for
the build. It usually makes sense to generate both the header and any
incremental build information at the same time (automatically during
build), so roll them both into the same script.
|
|
These currently include menuconfig, oldconfig, syncconfig, alldefconfig,
and all{no,mod,yes}config, which probably cover what 90% of people will
need to use. More scripts could be added later.
Use the entry_points mechanism
(http://setuptools.readthedocs.io/en/latest/setuptools.html#automatic-script-creation),
which gives something that works out-of-the-box on Windows. It also
removes the .py suffix for the installed scripts.
|
|
This script calls through to Kconfiglib.sync_deps() and can be used to
implement incremental builds.
Having additional dependency mechanisms for changes to Kconfig files and
environment variables is redundant, because those changes indirectly
influence symbol values and will be caught as well.
|
|
cached_search_strings was renamed to cached_search_nodes.
|
|
The defconfig tests tend to find any issue quickly, so keep those first.
Go alldefconfig -> allnoconfig -> allmodconfig -> allyesconfig after
that, and do the sanity checks at the end.
|
|
Setting all tristate choice symbols to 'm' is enough to always do the
right thing in practice. It has no effect for bool choice symbols (since
'm' will be ignored), but forces symbols in m-mode choices to 'm'.
'm' will also be ignored for tristate choice symbols in choices in 'y'
mode, because tristate is automagically converted to bool there.
|
|
Verified to produce identical output to 'make allmodconfig', for all
arches.
Will be packaged.
|
|
To-be-packaged scripts now live in the root.
|
|
Will be packaged.
Piggyback test suite cleanups to make test names match the name of the
script being tested.
|
|
No longer used after the tool helpers were added.
|
|
Removes repeated KCONFIG_CONFIG boilerplate.
Also make allyesconfig use KCONFIG_CONFIG when writing (oversight), and
document the sys.exit() behavior for standard_kconfig().
|