• Страница 1 из 1
  • 1
Модератор форума: Dimitro  
Перенос исходников
ЛевРыгун2693
Скаут
Допустим. Взял я исходники тринити кор офицальные. С помощью cmake из этих исходников магией сделал исходники для visual studio. В студии я поредактировал данные. И теперь я хочу обратно собрать магией в cmake проект. Расскажите как это сделать.
Для чего я это спрашиваю.
Года пол назад, я решил вытащить исходы из смаке, и проект решил редактировать на другой машине. У меня было куча ошибок, хотя я ставил и бусты и прочее, все равно сыпалось и ничего не компилилось. А если мне мои исходы надо перенести. Как поступить. Расскажите.
Сообщение # 1 написано 29.12.2016 в 14:47
p620
Маршал
Для начала следует определиться с терминалогией. Исходники (aka файлы, содержащие инструкции соответствующего языка(ов) программирования) одни везде, они не делятся на CMake'овые и не-CMake'овые.
Чтобы запомнить, как что-то делается, необходимо понять, зачем оно делается.

Наверняка Вам известно, что C++ является переносимым языком программирования, в котором кросс-платформенность поддерживается на этапе сборки программы или библиотеки (это означает, что успешную сборку под разные целевые операционные системы и процессорные архитектуры можно осуществить используя один и тот же исходный код). Однако, вести разработку сложных масштабных проектов, вроде TrinityCore'а, довольно тяжело, не используя т.н. IDE (Integrated Development Environment).
Это программы (а чаще комплексы программ), которые облегчают процесс создания и сборки проектов, предоставляя удобную среду разработки с большим спектром возможностей (GUI-настройка процесса сборки, обозреватель решения, управление зависимостями, контекстный разбор кода с последующим предоставлением способов легкой навигации по нему и т.д.) (Microsoft Visual Studion, Eclipse, NetBeans, etc.). Именно этот элемент порождает проблемы. Некоторые IDE по умолчанию не являются кросс-платформенными, имея свою версию для каждой целевой архитектуры, на которой предполагается осуществлять разработку (или даже лишь для некоторых из них). Кроме того, генерируемые ими решения чаще всего оказываются привязаны к файловой иерархии, создаваемой конкретным пользователем на своей системе, делая проект абсолютно непереносимым. Чтобы обойти эту проблему были созданы специальные средства для автоматизации процесса генерации таких решений под разные IDE из одних и тех же конфигурационных файлов (одной из подобных систем CMake как раз и является).

CMake предлагает свое простое подобие скриптового языка, из последовательности инструкций которого и файлов исходного кода можно сгенерировать решение под разные IDE (файлы CMakeLists.txt + различные .cmake опционально). Эти инструкции интерпретируются программой, запрашивающей при необходимости у пользователя дополнительные настройки в CUI или GUI формате (это есть и у TrinityCore, когда настраивается, например, использование метода HotSwap для подключения сценариев ядра) и генерирующей в результате из всего этого решение для целевой IDE. Однако этот процесс не имеет никакого отношения к сборке самого проекта. Она осуществляется внутри IDE последовательными вызовами препроцессора, ассемблера, компилятора и компоновщика, аргументами для которых станут настройки сгенерированного решения, а уже результатом работы - целевые библиотеки или приложения.

Теперь к Вашей проблеме. Если Вы только редактировали существующие файлы и ничего более - Вам достаточно перенести исходники на другую архитектуру по Вашему выбору. Все изменения файлов, которые Вы проводили на одной машине в IDE, разумеется, производились физически и остались в файлах исходного кода. Если же Вы добавляли/удаляли файлы - Вам необходимо заглянуть в сценарии CMake'а, касающиеся тех проектов/директорий, содержимое которых менялось и посмотреть, какими образом там осуществляется подключение исходников. Осуществляется ли их автоматический поиск или каждый отдельный файл нужно подключать вручную. Если первое, то скорее всего Вам не нужно делать ничего, опять же. Если второе - допишите/удалите соответствующие файлы, соблюдая формат сценария.

Если Вы не нашли здесь ответа на свои вопросы - опишите проблему более подробно (конкретно), и возможно решение все-таки найдется.
Сообщение # 2 отредактировано p620 - Четверг, 29.12.2016, 16:25
ЛевРыгун2693
Скаут
Спасибо большое за разъяснение.
У как мне наложить патч на уже готовый проект для visual studio 2015?
Сообщение # 3 написано 29.12.2016 в 16:57
p620
Маршал
О накатывании патчей здесь.
Сообщение # 4 написано 29.12.2016 в 17:20
  • Страница 1 из 1
  • 1
Поиск: