<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Kconfiglib.git/tests/Kpreprocess, branch v13.3.1</title>
<subtitle>Fork of https://github.com/zephyrproject-rtos/Kconfiglib.git</subtitle>
<id>https://git.mcdonnell.dev/Kconfiglib.git/atom?h=v13.3.1</id>
<link rel='self' href='https://git.mcdonnell.dev/Kconfiglib.git/atom?h=v13.3.1'/>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/'/>
<updated>2019-09-26T10:11:23Z</updated>
<entry>
<title>Make preprocessor nested parens test slightly trickier</title>
<updated>2019-09-26T10:11:23Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2019-09-26T10:11:23Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=4185b0b3193345f793ca7a5268fb67ab65e57655'/>
<id>urn:sha1:4185b0b3193345f793ca7a5268fb67ab65e57655</id>
<content type='text'>
Macros should still be expanded within nested parentheses. Test it.
</content>
</entry>
<entry>
<title>Fix handling of parentheses in macro argument values</title>
<updated>2019-09-26T09:52:22Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2019-09-25T18:25:06Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=720ce88a839cc9966d4b5dfbcdbe868c33cb5965'/>
<id>urn:sha1:720ce88a839cc9966d4b5dfbcdbe868c33cb5965</id>
<content type='text'>
As an oversight, there was no check for nested parentheses in macro
arguments, making the preprocessor think the call ended after 'void)' in

    def_bool $(success,echo 'void foo(void) { asm inline (""); }' | $(CC) -x c - -c -o /dev/null)

This broke the latest linux-next kernels, starting with commit
eb111869301e1 ("compiler-types.h: add asm_inline definition").

I remember seeing this when going through the C code, but somehow forgot
to put it in. Fix it, and clean up _expand_macro() a bit at the same
time.

Fixes: #76
</content>
</entry>
<entry>
<title>Allow macro expansion within symbol names</title>
<updated>2018-09-04T18:49:21Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-09-04T16:05:28Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=a092257a49ed7850913cf53e474f4c8dd175c94b'/>
<id>urn:sha1:a092257a49ed7850913cf53e474f4c8dd175c94b</id>
<content type='text'>
The C implementation supports this (though it's undocumented, and unused
to far).

This can be used e.g. to dynamically instatiate symbols from template
files:

Kconfig.template:

    config $(subsys)_LOG
	bool "Enable logging for $(subsys)"
	depends on $(subsys)_HAS_LOG

    ... other stuff dependent on $(subsys)

Elsewhere:

    subsys = FOO
    source "Kconfig.template"

    subsys = BAR
    source "Kconfig.template"

Pretty sure this can easily be abused, but it should be supported at
least.
</content>
</entry>
<entry>
<title>Add a Kconfig.env_vars attribute that lists env. variables</title>
<updated>2018-08-25T18:32:34Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-08-25T18:07:05Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=932d0f7b8a69bdcac5d945de600ce6be807aeff7'/>
<id>urn:sha1:932d0f7b8a69bdcac5d945de600ce6be807aeff7</id>
<content type='text'>
Kconfig.env_vars is a set() with the names of all environment variables
referenced in the configuration.

Can be used e.g. for custom incremental build implementations, though
sync_deps() already indirectly catches any relevant changes to
environment variables.
</content>
</entry>
<entry>
<title>Add Kconfig preprocessor</title>
<updated>2018-07-10T05:56:37Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-07-03T16:30:06Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=2433deba7889931c4bae679f116887fe49a2ce04'/>
<id>urn:sha1:2433deba7889931c4bae679f116887fe49a2ce04</id>
<content type='text'>
Implement the Kconfig preprocessor described in
https://github.com/torvalds/linux/blob/master/Documentation/kbuild/kconfig-macro-language.txt
(which is now in linux-next and will appear in Linux 4.18).

A new Kconfig.variables property holds all the preprocessor variables so
that they can be inspected programmatically. Preprocessor variables are
represented by a new Variable class.

With the preprocessor, environment variables are referenced with $(FOO)
instead of $FOO. For backwards compatibility, $FOO is accepted as well
for now (and leaves "$FOO" as-is if FOO doesn't exist). The $FOO syntax
might be dropped at some point in the future (together with a major
version increase). It should be supported for a few months at least.

Some internals were cleaned up too, mostly related to parsing. Some
outdated documentation was fixed as well.
</content>
</entry>
</feed>
