使用以下cmake scrpt:
get_cmake_property(_variableNames VARIABLES)
foreach (_variableName ${_variableNames})
message(STATUS "${_variableName}=${${_variableName}}")
endforeach()
Run Code Online (Sandbox Code Playgroud)
我们可以打印CMake项目中的所有变量.然后我的问题是:是否有一个可以打印目标的所有属性的函数?
我试图将流动的vanilla makefile行"转换"为CMake语法.
SRCS = $(wildcard *.foo)
OBJS = $(SRCS:.foo=.bar)
my_rule: $(OBJS)
%.bar: %.foo
make_bar_from_foo $@ $<
Run Code Online (Sandbox Code Playgroud)
FILE(GLOB SRCS "*.foo")
SET(outFiles)
FOREACH(SRC ${SRCS})
SET(OUTPUT_FILE_NAME "${SRC}.bar")
ADD_CUSTOM_COMMAND(
OUTPUT "${OUTPUT_FILE_NAME}"
COMMAND make_bar_from_foo ${SRC} ${OUTPUT_FILE_NAME}
DEPENDS "${SRC}")
SET(outFiles ${outFiles} "${OUTPUT_FILE_NAME}")
ENDFOREACH(SRC)
ADD_CUSTOM_TARGET(my_rule ALL DEPENDS ${outFiles})
Run Code Online (Sandbox Code Playgroud)
我知道它会为每个文件生成一个命令而不是通用的.最简单/最干净的方法吗?