有没有办法自动将add_executable的目标名称设置为其在CMake中的源文件名?

问题描述 投票:0回答:1

我对 CMake 还很陌生。我想获取一些 CPP 文件的可执行文件,并将其文件名作为可执行文件名。例如,output1.cpp 给出名为output1 的可执行文件。 目前我在 CMakeLists.txt 文件中使用以下几行。

add_executable(output1 output1.cpp)
add_executable(output2 output2.cpp)
add_executable(output3 output3.cpp)
.
.
.    
add_executable(outputN outputN.cpp)

我知道有一个 for 循环解决方案。喜欢,

foreach(i RANGE 1 N)
    add_executable(output${i} output${i}.cpp)
endforeach()

但这不是我要找的。我正在寻找一种不需要传递硬编码目标名称的解决方案。有办法实现吗?

c++ cmake msys2
1个回答
0
投票

正如 @André 在评论中指出的那样,我能够通过声明自定义 auto_add_executable 函数来解决这个问题。

function(auto_add_executable name)
    add_executable(${name} ${name}.cpp)
endfunction()

auto_add_executable(output1)
auto_add_executable(output2)
.
.
.
auto_add_executable(outputN)
© www.soinside.com 2019 - 2024. All rights reserved.