Ответ 1
Если путь к вашим заголовкам фиксирован относительно ваших источников, вы должны быть в состоянии избежать передачи этой информации через командную строку.
Скажите, что структура вашего проекта:
/CMakeLists.txt
/my_sources/main.cpp
/my_sources/foo.cpp
/my_includes/foo.hpp
и в вашем CMakeLists.txt у вас есть что-то вроде:
add_executable(MyExe my_sources/main.cpp my_sources/foo.cpp)
затем добавить папку /my_includes
в список включенных путей поиска, вам нужно будет добавить следующее:
include_directories(my_includes)
Для получения дополнительной информации о include_directories
, запустите
cmake --help-command include_directories
Ответ на вопрос о обновлении:
Да, используя параметр командной строки -D
, просто
cmake . -DEO_SOURCE_DIR:PATH=<Path to required dir>
В результате этого происходит кэширование переменной ${EO_SOURCE_DIR}
, поэтому вам нужен только один аргумент -D
один раз (если только не изменен требуемый путь или вы не удалите файл CMakeCache и т.д.)