Я решил включить библиотеку (точнее, yaml-cpp ) в свой проект.Поскольку оба проекта (yaml-cpp и мой) используют CMAKE для сборки, я решил попробовать поместить каталог yaml-cpp в мой корневой каталог и просто использовать add_subdirectory(yaml-cpp)
и target_link_libraries(${EXECUTABLE_NAME} foolib yaml-cpp)
, так как CMakeLists.txt из yaml-cpp ужесодержит
include_directories(${YAML_CPP_SOURCE_DIR}/include)
# ...
add_library(yaml-cpp
${sources}
${public_headers}
${private_headers}
${contrib_sources}
${contrib_public_headers}
${contrib_private_headers}
)
... и у меня все будет в порядке как для включений, так и для цели библиотеки.Но, как оказалось, после компиляции я получаю следующую ошибку:
P: \ zpp \ TheGameShow \ TGS.cpp (16): фатальная ошибка C1083: не удается открыть файл включения: 'yaml-cpp/yaml.h ': Нет такого файла или каталога
... если только я не продублирую строку include_directories(${YAML_CPP_SOURCE_DIR}/include)
в своем собственном CMakeLists.txt
Мой вопрос:желаемое поведение?Разве включаемые каталоги не должны распространяться из подкаталогов в корневые каталоги?Я что-то не так делаю?
edit: Я использую Visual Studio 2010 и CMake 2.8.6