Skip to content

Commit

Permalink
cmake: toolchain_cc_imacros: don't use space separated arguments
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Nicolas Pitre authored and nashif committed Jun 26, 2019
1 parent d4b60d6 commit f57ba2d
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion cmake/compiler/gcc/target_imacros.cmake
Expand Up @@ -4,6 +4,6 @@


macro(toolchain_cc_imacros header_file) macro(toolchain_cc_imacros header_file)


zephyr_compile_options(-imacros ${header_file}) zephyr_compile_options(--imacros=${header_file})


endmacro() endmacro()

0 comments on commit f57ba2d

Please sign in to comment.