diff --git a/Wrapping/macro_files/itk_auto_load_submodules.cmake b/Wrapping/macro_files/itk_auto_load_submodules.cmake index 527669a6368..4ca246ebc1e 100644 --- a/Wrapping/macro_files/itk_auto_load_submodules.cmake +++ b/Wrapping/macro_files/itk_auto_load_submodules.cmake @@ -119,17 +119,20 @@ function(generate_castxml_commandline_flags) foreach(_depend IN LISTS WRAPPER_LIBRARY_LINK_LIBRARIES) if(TARGET ${_depend}) + # $ (CMake 3.0+) carries the per-element prefix in + # the glue string; $<$:…> guards against empty-property + # output of a stray "-I" / "-D" / "-isystem". set( CONFIG_CASTXML_INC_CONTENTS - "${CONFIG_CASTXML_INC_CONTENTS}$,REPLACE,^(.+)$,\"-I\\1\">,\n>\n" + "${CONFIG_CASTXML_INC_CONTENTS}$<$>:\"-I$,\"\n\"-I>\">\n" ) set( CONFIG_CASTXML_INC_CONTENTS - "${CONFIG_CASTXML_INC_CONTENTS}$,REPLACE,^(.+)$,\"-isystem\" \"\\1\">,\n>\n" + "${CONFIG_CASTXML_INC_CONTENTS}$<$>:\"-isystem\" \"$,\"\n\"-isystem\" \">\">\n" ) set( CONFIG_CASTXML_INC_CONTENTS - "${CONFIG_CASTXML_INC_CONTENTS}$,REPLACE,^(.+)$,\"-D\\1\">,\n>\n" + "${CONFIG_CASTXML_INC_CONTENTS}$<$>:\"-D$,\"\n\"-D>\">\n" ) endif() endforeach()