Я пытаюсь выяснить, для каких команд безопаснее использовать относительный путь, например src/foo.c
, а когда лучше использовать ${CMAKE_CURRENT_LIST_DIR}/src/foo.c
Команды, с которыми мне нужна помощь:
add_library(myLib
src/foo.c)
# or
add_library(myLib
${CMAKE_CURRENT_LIST_DIR}/src/foo.c)
add_executable(myExe
src/bar.c)
# or
add_executable(myExe
${CMAKE_CURRENT_LIST_DIR}/src/bar.c)
target_include_directories(myLib
include)
# or
target_include_directories(myLib
${CMAKE_CURRENT_LIST_DIR}/include)
target_sources(myExe
src/foobar.c
src/baz.c)
# or
target_sources(myExe
${CMAKE_CURRENT_LIST_DIR}/src/foobar.c
${CMAKE_CURRENT_LIST_DIR}/src/baz.c)
Я знаю, что это должно быть проблемой, только когда кто-то использует include()
вместо add_subdirectory()
в CMakeLists.txt верхнего уровня. Хотел бы я когда-нибудь даже использовать include()
вместо add_subdirectory()
для файла CMakeLists, содержащего не намного больше, чем приведенные выше команды, и, может быть, может просто не заботиться и постоянно использовать простые относительные пути?
Приветствия,
andb