Я работаю над проектом C ++ с открытым исходным кодом для кода, который компилируется в Linux и Windows. Я использую CMake для сборки кода в Linux. Для простоты настройки разработки и по политическим причинам я должен придерживаться файлов / редактора проекта Visual Studio в Windows (например, я не могу переключиться на Code :: Blocks ). Я вижу инструкции по созданию файлов Visual Studio с помощью CMake, как здесь .
Вы раньше использовали CMake для создания файлов Visual Studio? Каким был твой опыт? Предположим, я хочу добавить в свой проект новый файл. Что для этого нужно?
Ответы:
CMake на самом деле очень хорош для этого. Ключевым моментом было то, что все на стороне Windows должны помнить о запуске CMake перед загрузкой в решение, а все на нашей стороне Mac должны не забыть запускать его перед make.
Самым сложным было для разработчика Windows убедиться, что ваши структурные изменения были в файле cmakelist.txt, а не в файлах решения или проекта, поскольку эти изменения, вероятно, будут потеряны, и даже если они не будут потеряны, они не будут переданы на сторону Mac, которая они также были необходимы, и разработчикам Mac нужно было помнить, что не следует изменять make-файл по тем же причинам.
Это просто требует немного размышлений и терпения, но сначала будут ошибки. Но если вы используете непрерывную интеграцию с обеих сторон, они рано или поздно выйдут из строя, и люди со временем привыкнут.
источник
C:\...> MSBuild ALL_BUILD.vcxproj
cmake --build .
.cmake --build . --config Debug -- /nologo /verbosity:minimal /m
. Я.
target run_tests
вставлю после, чтобы запустить мой модульный тест googletest, а «Отладка» можно заменить на «Выпуск». (Добавление параметра конфигурации для отладки не является обязательным, поскольку оно используется по умолчанию, но я включил его, чтобы показать, как его можно заменить с помощью «Release»)Не уверен, что это напрямую связано с вопросом, но я искал ответ о том, как сгенерировать * .sln из проектов cmake. Я обнаружил, что можно использовать что-то вроде этого:
cmake -G "Visual Studio 10"
В примере создаются необходимые файлы VS 2010 из входного файла CMakeLists.txt.
источник
cmake
.Мы переместили цепочку сборки нашего отдела на CMake, и у нас возникло несколько внутренних препятствий, поскольку другие отделы использовали наши файлы проектов и привыкли просто импортировать их в свои решения. У нас также были некоторые жалобы на то, что CMake не полностью интегрирован в диспетчер проектов / решений Visual Studio, поэтому файлы приходилось добавлять вручную в CMakeLists.txt; это был серьезный прорыв в рабочем процессе, к которому люди привыкли.
Но в целом это был довольно плавный переход. Мы очень счастливы, так как нам больше не нужно иметь дело с файлами проекта.
Конкретный рабочий процесс добавления нового файла в проект очень прост:
CMake 2.6 автоматически перезапускается, если какие-либо файлы CMakeLists.txt изменились (и (частично) автоматически перезагружает решение / проекты).
Помните, что если вы выполняете сборки вне исходного кода, вам нужно быть осторожным, чтобы не создать исходный файл в каталоге сборки (поскольку Visual Studio знает только о каталоге сборки).
источник
Как говорит Алекс, работает очень хорошо. Единственная сложная часть - не забывать вносить любые изменения в файлы cmake, а не из Visual Studio. Таким образом, на всех платформах рабочий процесс аналогичен тому, как если бы вы использовали простые старые make-файлы.
Но с ним довольно легко работать, и у меня не было проблем с тем, что cmake генерирует недопустимые файлы или что-то в этом роде, поэтому я не слишком беспокоюсь.
источник
CMake без проблем создает проекты и решения Visual Studio. Вы даже можете создавать проекты / решения для разных версий Visual Studio, не внося никаких изменений в файлы CMake.
Добавление и удаление исходных файлов - это всего лишь вопрос изменения
CMakeLists.txt
списка исходных файлов и восстановления проектов / решений. Есть даже функция подстановки для поиска всех источников в каталоге (хотя ее следует использовать с осторожностью).Следующая ссылка очень хорошо объясняет поведение CMake и Visual Studio.
CMake и Visual Studio
источник
CMake может генерировать действительно хороший Visual Studio
.projs
/.slns
, но всегда есть проблема с необходимостью изменения.cmake
файлов, а не с.proj
/.sln
. В настоящее время мы работаем с этим следующим образом:/src
а файлы, видимые в Visual Studio, являются просто «ссылками» на них, определенными в.filter
./src
каталоге, а не в каталоге проекта по умолчанию..cmake
файлы.Сначала мы немного боялись того, чем все закончится, но рабочий процесс работает очень хорошо, и с хорошим различием, видимым перед каждой фиксацией, каждый может легко увидеть, правильно ли его изменения были отображены в
.cmake
файлах.Еще одна важная вещь, о которой следует знать, - это отсутствие поддержки ( afaik ) для «Конфигураций решения» в CMake. В его нынешнем виде вам необходимо создать два каталога с проектами / решениями - по одному для каждого типа сборки (отладка, выпуск и т. Д.). Нет прямой поддержки более сложных функций - другими словами: переключение между конфигурациями не даст вам того, чего вы могли ожидать.
источник
Здесь много отличных ответов, но они могут быть заменены этой поддержкой CMake в Visual Studio (5 октября 2016 г.)
источник
Я начал свой собственный проект под названием syncProj. Документация / ссылки для скачивания отсюда:
https://docs.google.com/document/d/1C1YrbFUVpTBXajbtrC62aXru2om6dy5rClyknBj5zHU/edit# https://sourceforge.net/projects/syncproj/
Если вы планируете использовать Visual Studio для разработки, и в настоящее время поддерживается только C ++.
Основное преимущество по сравнению с другими системами make заключается в том, что вы действительно можете отлаживать свой сценарий, поскольку он основан на C #.
Если вы не знакомы с syncProj, вы можете просто преобразовать свое решение / проект в сценарий .cs и продолжить дальнейшую разработку с этого момента.
В cmake нужно будет писать все с нуля.
источник