cmake: toolchain_cc_imacros: don't use space separated arguments

Because CMake explicitly deduplicates arguments, it is not possible
to use toolchain_cc_imacros() multiple times as the later "-imacros"
are stripped away, leaving the associated file arguments dangling.
The documented workaround in the CMake manual involves some "SHELL:..."
construct but that doesn't get through zephyr_compile_options()
undammaged.

Let's simply remove this issue altogether by replacing "-imacros x.h"
with the joined form "--imacros=x.h" instead. Both gcc and clang
support this syntax.

FYI, this joined form is also available for other arguments such as:

	-include x.h   -->   --include=x.h
	-A foo         -->   --assert=foo
	-D foo         -->   --define-macro=foo
	-U foo         -->   --undefine-macro=foo

Etc.

Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
This commit is contained in:
Nicolas Pitre 2019-06-13 14:23:52 -04:00 committed by Anas Nashif
commit f57ba2d30c

View file

@ -4,6 +4,6 @@
macro(toolchain_cc_imacros header_file)
zephyr_compile_options(-imacros ${header_file})
zephyr_compile_options(--imacros=${header_file})
endmacro()