Кажется, вы только недавно переключились на CMake, так как именно эти вопросы также попали мне в голову, когда я впервые начал использовать CMake. Давайте решать их в порядке отправил их:
я использую CMake GUI для создания Visual Studio Project, и я прошу строить бинарные файлы (кэш CMake и другие вещи) в папке Строить, который в той же папке, где находится CMakeLists.txt.
Нельзя. Всегда делайте out-of-source build с CMake. Я знаю, это странно, когда вы делаете это в первый раз, но поверьте мне: как только вы привыкнете к этому, вы никогда не захотите вернуться.
Единственный факт, что использование источника управления становится намного более удобным, когда файлы кода и сборки должным образом разделены, делают эту функцию убийцей CMake.
Есть ли способ указать, где должен быть создан файл решения Visual Studio?
Вам действительно все равно.
Я понимаю, почему вы чувствуете, что вам нужен полный контроль над тем, как создаются файлы решений и проектов, но вы действительно этого не делаете. Просто укажите цель для решения в качестве источника вашей сборки вне источника и забудьте обо всех других файлах, которые были сгенерированы. Вам не нужно беспокоиться, и вы не хотите волноваться - это именно тот материал, который CMake должен заботиться о для вас.
Задайте себе вопрос: что бы вы получили, если бы смогли выбрать местоположение каждого файла проекта? Ничего, потому что, скорее всего, вы никогда их не трогаете. CMake является единственным хозяином теперь ...
CMake создает проект я определил в CMakeLists.txt, но и два другие проекты: ALL_BUILD и ZERO_CHECK. В чем их польза? Я был , способный избежать создания ZERO_CHECK с помощью команды set_property (GLOBAL PROPERTY USE_FOLDERS On).Есть ли способ для избегать создания ALL_BUILD?
Опять же, вам действительно все равно. CMake определяет пару фиктивных проектов, которые очень полезны для определенного внутреннего вуду, о котором вы не хотите беспокоиться. Сначала они выглядят странно, но вы привыкнете к ним быстрее, чем вы думаете. Просто не пытайтесь выбрасывать их, так как он не будет работать должным образом. Если их взгляд действительно вас так сильно раздражает, рассмотрите moving them to a folder inside the solution, чтобы вам не приходилось постоянно смотреть на них.
Итог: CMake чувствует себя иначе, чем решение VS VS с ручной обработкой несколькими способами. Это немного привыкает, но в конечном итоге это гораздо менее болезненный опыт, чем можно было бы опасаться.
Спасибо за полный ответ. Я получил большинство ваших баллов, и я должен согласиться с ними. Идея создания вне источника является мощной. Единственная причина, по которой я хотел бы иметь файл решения в другой папке, в отношении файлов проекта (которые по 3 для каждого типа * .vcxproj и * .vcxproj.filter) заключается в том, что в конце вам нужно открыть решение для работы с ним. И было бы лучше, если бы этот файл был отделен от файлов проекта и материала CMake ... но, возможно, эта проблема может быть устранена. – Maverik
+1, просто хочу добавить, что сохранение файла решения во временной папке еще раз напомнит вам, что поколение 'cmake' ->' * .sln' является односторонним процессом, и все модификации '* .sln' будут потеряны после регенерация –