Использование CMake для создания файлов проекта Visual Studio C++
Я работаю над проектом C++ с открытым исходным кодом, для кода, который компилируется в Linux и Windows. Я использую CMake для построения кода на Linux. Для простоты настройки разработки и политических причин я должен придерживаться файлов проекта Visual Studio / редактора в Windows (я не могу переключиться на Code:: Blocks, например). Я вижу инструкции по созданию файлов Visual Studio с помощью CMake, как здесь.
вы использовали CMake для создания файлов Visual Studio раньше? Как это было ваш опыт? Предположим, я хочу добавить новый файл в свой проект. Каков рабочий процесс для этого?
8 ответов:
CMake на самом деле довольно хорошо для этого. Ключевая часть заключалась в том, что все на стороне Windows должны помнить о запуске CMake перед загрузкой в решение, и все на нашей стороне Mac должны были бы помнить, чтобы запустить его перед make.
самая сложная часть была как разработчик Windows, убедившись, что ваши структурные изменения были в cmakelist.txt-файл, а не в файлах решения или проекта, поскольку эти изменения, вероятно, будут потеряны, и даже если они не будут потеряны, не будут переданы сторона Mac, которая также нуждалась в них, и ребята Mac должны были бы помнить, что не нужно изменять файл make по тем же причинам.
Это просто требует немного мысли и терпения, но сначала будут ошибки. Но если вы используете непрерывная интеграция С обеих сторон тогда они будут встряхиваться рано, и люди в конечном итоге войдут в привычку.
Не уверен, что это напрямую связано с вопросом, но я искал ответ на то, как генерировать *.sln из проектов CMake я обнаружил, что можно использовать что-то вроде этого:
cmake -G "Visual Studio 10"пример генерирует необходимые файлы VS 2010 из входных CMakeLists.текстовый файл
мы переместили цепочку сборки нашего отдела в CMake, и у нас было несколько внутренних дорожных свалок, так как другие отделы использовали наши файлы проектов и привыкли просто импортировать их в свои решения. У нас также были некоторые жалобы на то, что CMake не полностью интегрирован в Visual Studio project/solution manager, поэтому файлы пришлось добавлять вручную в CMakeLists.txt; это был серьезный перерыв в рабочем процессе, к которому люди привыкли.
но в целом, это было довольно гладко переход. Мы очень счастливы, так как нам больше не нужно иметь дело с файлами проекта.
конкретный рабочий процесс для добавления нового файла в проект очень просто:
- создать файл, убедитесь, что он находится в правильном месте.
- Добавить файл в CMakeLists.формат txt.
- построить.
CMake 2.6 автоматически перезапускает себя, если есть CMakeLists.txt файлы изменились (и (полу-)автоматически перезагружает решение / проекты).
помните, что если вы выполняете сборки вне источника, вам нужно быть осторожным, чтобы не создавать исходный файл в каталоге сборки (так как Visual Studio знает только о каталоге сборки).
Как говорит Алекс, это работает очень хорошо. Единственная сложная часть заключается в том, чтобы не забывать вносить какие-либо изменения в файлы cmake, а не из Visual Studio. Таким образом, на всех платформах рабочий процесс аналогичен тому, если бы вы использовали простые старые файлы makefiles.
но с ним довольно легко работать, и у меня не было проблем с созданием недопустимых файлов cmake или что-то в этом роде, поэтому я бы не слишком беспокоился.
CMake может генерировать действительно хороший Visual Studio
.projs/.slns, но всегда есть проблема с необходимостью изменить.cmakeфайлы, а не.proj/.sln. Как и сейчас, мы имеем дело с ним следующим образом:
- все исходные файлы, перейдите к
/srcи файлы, видимые в Visual Studio, - это просто "ссылки" на них, определенные в.filter.- программист добавляет/удаляет файлы, не забывая работать на определенных
CMake легко создает проекты и решения Visual Studio. Вы даже можете создавать проекты / решения для различных версий Visual Studio без внесения каких-либо изменений в файлы CMake.
добавление и удаление исходных файлов-это всего лишь вопрос изменения
CMakeLists.txtкоторый имеет список исходных файлов и регенерации проектов / решений. Есть даже подстановка функции, чтобы найти все источники в каталоге (хотя он должен быть использован с осторожность.)следующая ссылка очень хорошо объясняет поведение CMake и Visual Studio.
Я начал свой собственный проект, под названием syncProj. Документация / ссылки для скачивания здесь:
https://docs.google.com/document/d/1C1YrbFUVpTBXajbtrC62aXru2om6dy5rClyknBj5zHU/edit# https://sourceforge.net/projects/syncproj/
Если вы планируете использовать Visual studio для разработки, и в настоящее время поддерживается только C++.
главным преимуществом по сравнению с другими системами make является то, что вы можете фактически отлаживать свой скрипт, как он основан на C#.
Если вы не знакомы с syncProj, вы можете просто преобразовать свое решение / проект .CS script, и продолжить дальнейшее развитие с этого момента.
в cmake вам нужно будет написать все с нуля.
здесь много отличных ответов, но они могут быть заменены этим поддержка CMake в Visual Studio (5 октября 2016 г.)
Comments