Вопрос про функционал mql5 IDE и возможность объединения программы разбитой на mqh в один файл

 

Это наверное больше касается фрилансеров и необходимости отправки исходного когда заказчику.

Понятно, что для удобства написания более менее объемного кода, предпочтительно его(код) разбить на логически соответствующие подфайлы, чтобы этот код не превратился в огромное спагетти, сложное для редактирования, модернизации, да и вообще чтения.

Разбиваем на инклуды, у меня это выглядит примерно так(см. вложение jpg)

Далее, отправить exe не проблема, но отправлять заказчику exe без исходного = хамство и наглость.

Чтобы отправить исходный, нужно пройтись по всем инклудам, ctrl+shift+end  ctrl+C  ctrl+V.

Не очень удобно и быстро, рутинно.

Вопрос, может я не знаю, есть ли некий функционал в компиляторе, позволяющий автоматически сформировать из всех инклудов один единый с открытым кодом файл?

Файлы:
 

Понятно что не сложно сделать самопальный компилятор множества mqh в один исходный код, но мне интересно как живут, сколько уже, сотня может фрилансеров есть?, Каждый сам себе написал компилятор, или пишут любого объема код в одном файле, или в ручную объединяют в один файл, или я индеец не знаю о наличии секретной кнопки mql5 IDE, которая делает это автоматически?

Файлы:
 
Lazar Buga #:

Понятно что не сложно сделать самопальный компилятор множества mqh в один исходный код, но мне интересно как живут, сколько уже, сотня может фрилансеров есть?, Каждый сам себе написал компилятор, или пишут любого объема код в одном файле, или в ручную объединяют в один файл, или я индеец не знаю о наличии секретной кнопки mql5 IDE, которая делает это автоматически?

Да, есть такое - https://www.mql5.com/en/code/27955

MQL5 Program Packer
MQL5 Program Packer
  • www.mql5.com
This is MQL5 project packer: assemble all source and resource files from dependencies into a single ZIP.
 
Используйте штатные проекты - они позволяют удобно работать с деревом связанных исходных файлов, ресурсов и настроек.
 
Renat Fatkhullin #:
Используйте штатные проекты - они позволяют удобно работать с деревом связанных исходных файлов, ресурсов и настроек.
А как проект решает проблему топикстартера?
 
Не могу понять зачем весь проект обьединять в один файл??? Почему нельзя отправить проект с отдельными исходными файлами? Чем отправка exe отличается от отправки одного огромного говнофайла с исходным кодом?
 
DrSky #:
Чем отправка exe отличается от отправки одного огромного говнофайла с исходным кодом?

Наверное тем, что в исполняемый файл нельзя внести корректировки. 
 
Sergey Gridnev #:
А как проект решает проблему топикстартера?

Как правильный вариант, передать и обновлять shared проект прямо в редакторе, добавив получателя с правами на чтение в совместном проекте.

Ну и по максимуму собирать исходники в локальном каталоге.

 
DrSky #:
Не могу понять зачем весь проект обьединять в один файл??? Почему нельзя отправить проект с отдельными исходными файлами? Чем отправка exe отличается от отправки одного огромного говнофайла с исходным кодом?

Странный вопрос. Обычно удобно отправить архив исходников - один файл. Вы ручками все зависимости собираете? И исполняемый файл (exe, он же ex5) - это же не исходник.

И да, текущие проекты проблемы не решают.

 
Stanislav Korotky #:

Странный вопрос. Обычно удобно отправить архив исходников - один файл. Вы ручками все зависимости собираете? И исполняемый файл (exe, он же ex5) - это же не исходник.

И да, текущие проекты проблемы не решают.

Согласен. Странно что нет штатного решения получения кода с инклудами в одном файле.

ЗЫ и конечно нужны настройки что вносить, что не вносить в код. Все библы которые есть в поставке терминала внести иногда конечно это слишком.

 
Stanislav Korotky #:

Странный вопрос. Обычно удобно отправить архив исходников - один файл. Вы ручками все зависимости собираете? И исполняемый файл (exe, он же ex5) - это же не исходник.

И да, текущие проекты проблемы не решают.

Обычно, в архив пакуют папку с проектом и папку Include с собственными файлами. В чем собственно проблема? Почему нельзя сделать скрипт:

cp -r <mql5_dir>/Experts/SuperPuperTrader <tmp_dir>/Experts/SuperPuperTrader

cp -r <mql5_dir>/Includes/my_includes <tmp_dir>/Includes/my_includes

А после этого, запаковать эту папку? Так делают абсолютно все, я ни разу не видел ни тут, в разделе статей, ни где бы то либо еще подобного веселого говнорешения со сбором всего проекта в одном файле, который потом невозможно разобрать. То есть, вы специально делаете лютый геморой заказчику, что бы следующий кодер который будет разбирать обратно по файлам вашего бота, назвал вас никчемным?

Причина обращения: