简单的方法是COMPILE_OPTIONS
为每个需要的源文件设置属性。
这是测试 CMakeLists.txt
project(TestSourceProp)
set(SOURCE_FILES
main.c
file.c
)
add_executable(${PROJECT_NAME} ${SOURCE_FILES})
foreach(SRC_ IN LISTS SOURCE_FILES)
get_filename_component(SRC_BASENAME_ ${SRC_} NAME_WE)
set_source_files_properties(${SRC_} PROPERTIES COMPILE_OPTIONS "--omf_browse=${SRC_BASENAME_}.crf;--depend=${SRC_BASENAME_}.d")
get_source_file_property(SRC_PROP_ ${SRC_} COMPILE_OPTIONS)
message(STATUS "${SRC_}: ${SRC_PROP_}")
endforeach()
输出:
...
-- main.c: --omf_browse=main.crf;--depend=main.d
-- file.c: --omf_browse=file.crf;--depend=file.d
-- Configuring done
生成文件:
CMakeFiles/TestSourceProp.dir/main.c.obj: ../main.c
@$(CMAKE_COMMAND) -E cmake_echo_color ...
gcc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) --omf_browse=main.crf --depend=main.d -o CMakeFiles/TestSourceProp.dir/main.c.obj -c ...
我认为另一种方法是创建一个自定义CMake-toolchain文件。