Использование CMake для создания файлов проекта Visual Studio C++



Я работаю над проектом C++ с открытым исходным кодом, для кода, который компилируется в Linux и Windows. Я использую CMake для построения кода на Linux. Для простоты настройки разработки и политических причин я должен придерживаться файлов проекта Visual Studio / редактора в Windows (я не могу переключиться на Code:: Blocks, например). Я вижу инструкции по созданию файлов Visual Studio с помощью CMake, как здесь.



вы использовали CMake для создания файлов Visual Studio раньше? Как это было ваш опыт? Предположим, я хочу добавить новый файл в свой проект. Каков рабочий процесс для этого?

953   8  

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; это был серьезный перерыв в рабочем процессе, к которому люди привыкли.

но в целом, это было довольно гладко переход. Мы очень счастливы, так как нам больше не нужно иметь дело с файлами проекта.

конкретный рабочий процесс для добавления нового файла в проект очень просто:

  1. создать файл, убедитесь, что он находится в правильном месте.
  2. Добавить файл в CMakeLists.формат txt.
  3. построить.

CMake 2.6 автоматически перезапускает себя, если есть CMakeLists.txt файлы изменились (и (полу-)автоматически перезагружает решение / проекты).

помните, что если вы выполняете сборки вне источника, вам нужно быть осторожным, чтобы не создавать исходный файл в каталоге сборки (так как Visual Studio знает только о каталоге сборки).

Как говорит Алекс, это работает очень хорошо. Единственная сложная часть заключается в том, чтобы не забывать вносить какие-либо изменения в файлы cmake, а не из Visual Studio. Таким образом, на всех платформах рабочий процесс аналогичен тому, если бы вы использовали простые старые файлы makefiles.

но с ним довольно легко работать, и у меня не было проблем с созданием недопустимых файлов cmake или что-то в этом роде, поэтому я бы не слишком беспокоился.

CMake может генерировать действительно хороший Visual Studio .projs/.slns, но всегда есть проблема с необходимостью изменить .cmake файлы, а не .proj/.sln. Как и сейчас, мы имеем дело с ним следующим образом:

  1. все исходные файлы, перейдите к /src и файлы, видимые в Visual Studio, - это просто "ссылки" на них, определенные в .filter.
  2. программист добавляет/удаляет файлы, не забывая работать на определенных

CMake легко создает проекты и решения Visual Studio. Вы даже можете создавать проекты / решения для различных версий Visual Studio без внесения каких-либо изменений в файлы CMake.

добавление и удаление исходных файлов-это всего лишь вопрос изменения CMakeLists.txt который имеет список исходных файлов и регенерации проектов / решений. Есть даже подстановка функции, чтобы найти все источники в каталоге (хотя он должен быть использован с осторожность.)

следующая ссылка очень хорошо объясняет поведение CMake и Visual Studio.

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

    Ничего не найдено.