diff --git a/cmake/nuttx_add_romfs.cmake b/cmake/nuttx_add_romfs.cmake index 864924f7ae3..c3794fdfa4f 100644 --- a/cmake/nuttx_add_romfs.cmake +++ b/cmake/nuttx_add_romfs.cmake @@ -59,14 +59,28 @@ function(nuttx_add_romfs) message(FATAL_ERROR "Either PATH or FILES must be specified") endif() + get_directory_property(TOOLCHAIN_DIR_FLAGS DIRECTORY ${CMAKE_SOURCE_DIR} + COMPILE_OPTIONS) + + set(ROMFS_CMAKE_C_FLAGS "") + foreach(FLAG ${TOOLCHAIN_DIR_FLAGS}) + if(NOT FLAG MATCHES "^\\$<.*>$") + list(APPEND ROMFS_CMAKE_C_FLAGS ${FLAG}) + else() + string(REGEX MATCH "\\$<\\$:(.*)>" matched ${FLAG}) + if(matched) + list(APPEND ROMFS_CMAKE_C_FLAGS ${CMAKE_MATCH_1}) + endif() + endif() + endforeach() + foreach(rcsrc ${RCSRCS}) get_filename_component(rcpath ${rcsrc} DIRECTORY) - separate_arguments(CMAKE_C_FLAG_ARGS NATIVE_COMMAND ${CMAKE_C_FLAGS}) add_custom_command( OUTPUT ${rcsrc} COMMAND ${CMAKE_COMMAND} -E make_directory ${rcpath} COMMAND - ${CMAKE_C_COMPILER} ${CMAKE_C_FLAG_ARGS} -E -P -x c + ${CMAKE_C_COMPILER} ${ROMFS_CMAKE_C_FLAGS} -E -P -x c -I${CMAKE_BINARY_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/${rcsrc} > ${rcsrc} DEPENDS nuttx_context ${CMAKE_CURRENT_SOURCE_DIR}/${rcsrc})