CMake:为add_custom_target添加可执行文件

时间:2018-12-14 11:56:52

标签: c++ cmake visual-studio-code

我有一个CMakeLists.txt和一些工具链文件。在我的CMakeLists.txt中,我有一条语句来生成.elf可执行文件。然后,通过一些命令(使用add_custom_target,来自here的代码)运行此可执行文件,该命令生成一个.gba文件,这是我要启动的REAL可执行文件。现在的问题是,我对VS Code使用了cmake扩展,并且目标没有启动显示(可能是因为它不被视为可执行文件)。 我尝试了add_executable(target.gba IMPORT),但是没有用。 在CMakeLists.txt中:

add_executable(target.elf ${SOURCE_FILES} ${INCLUDE_FILES} ${EXTRA_DATA_FILES}) # Create the elf file
add_gba_executable(target.elf) # Generate the .gba from the .elf

在工具链文件中:

function(add_gba_executable target)
    get_filename_component(target_name ${target} NAME_WE)
    add_custom_target(${target_name}.gba ALL SOURCES
        COMMAND ${OBJCOPY} -v -O binary ${target} ${target_name}.gba
        COMMAND ${GBAFIX} ${target_name}.gba
        DEPENDS ${target}
        VERBATIM
    )
    set_target_properties(${target} PROPERTIES LINK_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-Map=${target_name}.map -specs=gba.specs")
    set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES ${target_name}.gba)
endfunction()

我如何告诉CMake add_custom_target的结果也是可执行文件?我尝试了add_executable(target.gba IMPORT),但这没用。

0 个答案:

没有答案