我正在使用Windows 7和CMake 3.5进行交叉编译。为了编译,我使用IAR 78000 C编译器V3.34A / W32(非常旧)。包含文件,其中include_directories()
添加到INCLUDE_DIRECTORIES
。
编译器需要:
C_INCLUDES = -IC:/foo/bar/
但是CMake仅在flags.make文件中创建:
C_INCLUDES = -IC:/foo/bar (without Backslash at the end)
我试过了:
get_directory_property(cmake_include_directories INCLUDE_DIRECTORIES)
set(include_dirs)
foreach(it ${cmake_include_directories})
set(include_dirs ${include_dirs} "${it}/")
endforeach()
set_directory_properties(PROPERTIES INCLUDE_DIRECTORIES "${include_dirs}")
#set_property(TARGET ${PROJECT_NAME}.hex PROPERTY INCLUDE_DIRECTORIES ${include_dirs})
message(STATUS "New Dir: ${include_dirs}")
但include_dir
中的值不会覆盖INCLUDE_DIRECTORIES
是否可以仅为INCLUDE_DIRECTORIES
更改C_INCLUDES
,以获得所需的格式?
更新:我的问题的解决方案
get_directory_property(cmake_include_directories INCLUDE_DIRECTORIES)
foreach(iterationValue ${cmake_include_directories})
set(iterationValue ${iterationValue}////) # You need //// for one /!
target_include_directories(
${PROJECT_NAME} PRIVATE
${iterationValue}
)
endforeach()
谢谢