${CMAKE_CURRENT_LIST_DIR} 和 . (相对目录)?

What is the difference between ${CMAKE_CURRENT_LIST_DIR} and . (relative directory)?

我明白${CMAKE_CURRENT_LIST_DIR}${CMAKE_CURRENT_SOURCE_DIR}的区别,但我不明白前者和简单的.有什么区别?

比如有没有什么场景

target_include_directories(foo PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})

的行为不同于

target_include_directories(imgwarp PRIVATE .)

?

简单的反例: add_custom_command 允许您指定自定义 WORKING_DIRECTORY。将相对文件名传递给这样的命令将是相对于工作目录的。用 CMAKE_CURRENT_SOURCE_DIR 明确地使它们成为绝对解决这个问题。