如何在 CMake 中重用代码

Mey*_*sam 4 linux code-reuse cmake reusability

我有以下代码段,它获取当前系统 IP 并将其存储在SERVER_IP变量中:

EXECUTE_PROCESS(
    COMMAND ip route get 8.8.8.8
    COMMAND awk "NR==1 {print $NF}"
    OUTPUT_VARIABLE SERVER_IP
    OUTPUT_STRIP_TRAILING_WHITESPACE
)
Run Code Online (Sandbox Code Playgroud)

我需要在CMakeLists.txt文件层次结构中的多个位置使用此 IP。重用此代码的最佳方法是什么?我的第一个想法是使其成为一个类似 的函数function(GetIP),但我不确定将该函数放在哪里以使其对所有 CMakeLists.txt 文件可见。

m.s*_*.s. 5

如果您使 CMake 函数在顶级文件中可用,那么它也将在您使用 . 添加的子目录的文件CMakeLists.txt中可用。CMakeLists.txtADD_SUBDIRECTORY

要么直接在顶级CMakeLists.txt文件中定义函数,要么使用类似的东西INCLUDE(GetIP.cmake)