CMake файл glob это зло? - PullRequest
       8

CMake файл glob это зло?

2 голосов
/ 26 апреля 2020

Согласно Почему cmake файл GLOB злой? , использование glob в качестве целевого источника - плохая практика. Я попытался создать описанную ситуацию.

CMakeLists.txt

file(GLOB SOURCES "src/*.cpp")
add_executable(main "${SOURCES}")

src / main. cpp

#include <iostream>

int main() {
    return 0;
}

Я работаю cmake один раз. После этого я создаю неверный файл cpp src / test. cpp и снова запускаю cmake, а затем make. В соответствии с ситуацией, описанной в посте, я должен собрать все, потому что cmake не отслеживает этот файл. Но в действительности cmake обнаруживает изменения, и компиляция не удалась. Я правильно понял? Я использую версию cmake 3.17.1

1 Ответ

2 голосов
/ 27 апреля 2020

В сообщении, которое вы цитировали, они не запускают cmake после создания нового файла.

Они запускают только make, и правило Makefile make, сгенерированное CMake, должно запустите CMake, если кеш устарел.

Но в этом случае CMake не обнаруживает устаревший кеш и не перезапускает CMake, чтобы включить ваш test.cpp.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...