Авто-пересборка проекта с разными ресурсами и модификациями

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Авто-пересборка проекта с разными ресурсами и модификациями

Сообщение vitaly_l » 31.03.2012 15:26:44

Авто-пересборка проектов с разными ресурсами и модификациями. Возможно ли такое в Лазарус???
Например, есть готовый проект программы и её(программу) нужно собрать для разных языков. Информация о языке содержится в №ХХХ.lrs,
в проекте нужно поменять только №ХХ"1".lrs на №ХХ"N".lrs и пересобрать исполняемый файл... Языков на планете, как известно - очень много.
:?: :arrow: Как в Лазарусе автоматизировать процесс, пересборки проектов с разными ресурсами? (если такое возможно).

Заранее благодарен - за ответ.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Авто-пересборка проекта с разными ресурсами и модификаци

Сообщение alexey38 » 31.03.2012 16:38:59

Условная компиляция + запуск компилятора из командной строки из командного файла (.bat, .sh).
alexey38
долгожитель
 
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Re: Авто-пересборка проекта с разными ресурсами и модификаци

Сообщение vitaly_l » 31.03.2012 18:16:41

alexey38 писал(а):Условная компиляция + запуск компилятора из командной строки из командного файла (.bat, .sh).


Спасибо: ответ точен, но к сожалению - слишком краток...

У меня не получилось :(
Условная компиляция? (не понимаю как это?)

Делал так:
Скопировал "параметры командной строки" из "параметров компилятора" в Лазарусе..
Запустил "компилятор с параметрами" в far...
компилятор выдал несколько предупреждений...
потом сказал: "fatal: can't open file 'i386-win32'"... Но там(в i386-win32') всё на месте...
:( :cry: :(

А есть какой-нить совсем простой вариант?!... :arrow: для художников... :roll:
Типа из командной строки запустить сам лазарус и дать ему команду RUN, а при исполнении получить msg о выполнении???
Так бывает?!
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Авто-пересборка проекта с разными ресурсами и модификаци

Сообщение alexs » 31.03.2012 18:21:05

vitaly_l
А почему не использовать штатный механизм локализации? И не надо ничего перекомпилировать.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Авто-пересборка проекта с разными ресурсами и модификаци

Сообщение alexey38 » 31.03.2012 18:27:30

Насчет командной строки Вы движетесь в верном направлении. Параметры компилятора, связанные с указанием папок с модулями должны содержать полный пусть. А в параметрах компилятора они относительно папки лазаря.
Нужно раз настроить, и будет у Вас make.bat - с ярлыком на рабочем столе

Условная компиляция - это:
Код: Выделить всё
uses
{$IFDEF XX1}
modul_xx1;
{$ELSE}
modul_xx2;
{$ENDIF}


Где в параметрах компилятора передаете XX1 или другие признаки для условной компиляции.
alexey38
долгожитель
 
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Re: Авто-пересборка проекта с разными ресурсами и модификаци

Сообщение vitaly_l » 31.03.2012 18:39:12

alexs писал(а):А почему не использовать штатный механизм локализации? И не надо ничего перекомпилировать.

Непонимаю вопроса. Что такое штатный механизм? Где про него почитать???
alexey38 писал(а): А в параметрах компилятора они относительно папки лазаря.

Да я уже думал над этим... но ещё не исправил...
alexey38 писал(а):Где в параметрах компилятора передаете XX1 или другие признаки для условной компиляции.

Это выглядит так:
initialization
{$I ХХ0.lrs}
//{$I ХХ1.lrs}
//{$I ХХ2.lrs}
//{$I ХХ3.lrs}
//{$I ХХ4.lrs}
В данной ситуации подгружается только первый, а остальные закоментированы...
Последний раз редактировалось vitaly_l 31.03.2012 20:04:54, всего редактировалось 1 раз.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Авто-пересборка проекта с разными ресурсами и модификаци

Сообщение alexs » 31.03.2012 19:05:11

vitaly_l писал(а):Непонимаю вопроса. Что такое штатный механизм? Где про него почитать???


http://www.freepascal.ru/forum/viewtopi ... 02&p=49559
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Авто-пересборка проекта с разными ресурсами и модификаци

Сообщение vitaly_l » 31.03.2012 19:14:43

alexey38 писал(а):Нужно раз настроить, и будет у Вас make.bat - с ярлыком на рабочем столе

Мне проще через TProcess...

Ничего не получилось, все пути "он" нашёл...
Но теперь пишет Can't open file ""...
Я ему прописал MyFile.exe в конце... он пишет что: Can't open file "MyFile.exe "...
вроде всё определил, а компилировать не хочет... :cry: :cry: :cry:

alexs писал(а):http://www.freepascal.ru/forum/viewtopi ... 02&p=49559

Прочитал(спасибо)... Это к сожалению, не то что мне нужно...
Это я виноват я не совсем верно описал задачу... Там (в ХХ*.lrs) не только языки грузятся...
Мне нужно чтобы при разной компиляции были различные ХХ*.lrs 1,2,3,4,5 итд...

Всё что мне нужно: дать ему команду RUN, а при исполнении получить msg о выполнении... Остальное просто...
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Авто-пересборка проекта с разными ресурсами и модификаци

Сообщение alexey38 » 01.04.2012 09:00:23

vitaly_l писал(а):Это выглядит так:
initialization
{$I ХХ0.lrs}
//{$I ХХ1.lrs}
//{$I ХХ2.lrs}
//{$I ХХ3.lrs}
//{$I ХХ4.lrs}
В данной ситуации подгружается только первый, а остальные закоментированы...


При условной компиляции вместо "\" используйте "{$IFDEF XXX}".

Вопрос: а почему Вы так упорно не любите командные и скриптовые файлы? В данный случай, когда нужно использовать скорее file.bat, чем паскалевскую программу с TProcess. Каждый механизм и технологию нужно использовать по месту. Например, молотком нужно забивать гвозди, малярной кистью красить стены, а картины писать нужно специальными кистями.

Добавлено спустя 8 минут 58 секунд:
Re: Авто-пересборка проекта с разными ресурсами и модификациями
А про параметры компиляции смотрите запустив ppc386.exe
alexey38
долгожитель
 
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Re: Авто-пересборка проекта с разными ресурсами и модификаци

Сообщение vitaly_l » 01.04.2012 09:52:15

alexey38 писал(а):Вопрос: а почему Вы так упорно не любите командные и скриптовые файлы?

Я их... стыдно сказать.... но... не умею готовить :oops:
С кистями проще... Нет "Акварели" пиши "Маслом", нет кисти пиши пальцем...

Более того: при использовании TProcess, я могу обработать текстовый файл и заменить в теле проекта {$I ХХ"0".lrs} на {$I ХХ"N".lrs}...
И тогда перезапуская проект - компилятор будет подгружать, то что нужно... Я просто по другому не умею :oops: :cry: :|
Только у меня компилятор не получается запустить... изучил для fpc "-?" вроде всё правильно...
пишет компилирую... но не компилирует, а потом говорит что, не могу открыть файл... пойду изучать ppc386.exe...

Неужели нельзя Лазарусу послать простую команду 'F9'? У него в параметрах - только заставку можно отключить...
Можно как-то послать работающему приложению(лазарусу) "горячую" клавишу 'F9'? - это моментально решит все проблемы(для меня)...

.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Авто-пересборка проекта с разными ресурсами и модификаци

Сообщение Padre_Mortius » 01.04.2012 10:28:17

vitaly_l писал(а):С кистями проще... Нет "Акварели" пиши "Маслом", нет кисти пиши пальцем...

С локализацией то же самое. Не умеете готовить локализацию через po(mo) файлы, то можно воспользоваться стандартным велосипедом с хранением локализованных переменных в ini файле и при загрузке брать нужный файл и читать из него данные.
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: Авто-пересборка проекта с разными ресурсами и модификаци

Сообщение vitaly_l » 01.04.2012 10:53:44

Padre_Mortius писал(а):Не умеете готовить локализацию через po(mo) файлы, то можно воспользоваться стандартным велосипедом с хранением локализованных переменных в ini файле и при загрузке брать нужный файл и читать из него данные.

У меня нет проблем с локализацией текстовых файлов... У меня проблемы с погрузкой разных ресурсов для разных версий приложения...
alexey38 писал(а):про параметры компиляции смотрите запустив ppc386.exe

ppc386.exe выдаёт тот же help, что и fpc.exe - согласно этому help у меня всё правильно...
пишет что все пути нашёл и установил... что-то не так, но я не вижу что... короче: из командной строки не запускается...

Всё, что мне нужно - это запустить компиляцию...

Неужели нельзя Лазарусу послать простую команду 'F9'?
Можно как-то послать работающему приложению(лазарусу) "горячую" клавишу 'F9'?

.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Авто-пересборка проекта с разными ресурсами и модификаци

Сообщение alexey38 » 01.04.2012 11:15:34

Виталий, если бы художник, не имел терпения, то он бы не написал ни одной стоящей работы. Труд и терпение, приводят к результату.
У Вас не получилось запустить из командной строки то, что делает лазарь, и Вы ищите сразу магическую кнопку. Нельзя делать хорошие вещи не понимая их сути.
Ведь торговец картинами не есть художник. Магическая кнопка - это значить, что кто-то что-то сделал за Вас.

Лазарь для компиляции запускает ppc386.exe (или fpc.exe, который и запускает ppc386.exe). Если У Вас не получается, значить, что-то делаете не так.

Для полного понимания можете написать программу заглушку, которая все параметры командной строки выдает на экран или в файл:
Код: Выделить всё
Memo.Clear;
for i:=1 to ParamCount do
  Memo.Lines.Add(ParamStr(i));


Скопмилировать программу заглушку и временно ею подменить ppc386.exe или fpc.exe
Далее запустить лазарь и попробовать скомпилировать нужный вам проект. Узнаете все нужные параметры компиляции и поймете Вашу ошибку.

vitaly_l писал(а):Более того: при использовании TProcess, я могу обработать текстовый файл и заменить в теле проекта {$I ХХ"0".lrs} на {$I ХХ"N".lrs}...
И тогда перезапуская проект - компилятор будет подгружать, то что нужно... Я просто по другому не умею :oops: :cry: :|


Конечно это вариант, но громоздкий.
Если Вы умеете так, то зачем Вам запускать fpc.exe, запускайте lazarus.exe и далее компилируйте F9.
Более правильный способ через {$IFDEF}, Вам советуют полезные вещи, но Вы упрямо делаете все по своему.
Тогда либо вообще не спрашивайте (уважайте время других), либо делайте то, что Вам говорят.
alexey38
долгожитель
 
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Re: Авто-пересборка проекта с разными ресурсами и модификаци

Сообщение Padre_Mortius » 01.04.2012 11:26:36

alexey38, для сборки проектов лазаруса используется утилита lazbuild.exe

vitaly_l, я говорил о локализации интерфейса, а не файлов. И alexs уже дал ссылку где рассмотрены 2 варианта локализации программы
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Re: Авто-пересборка проекта с разными ресурсами и модификаци

Сообщение alexey38 » 01.04.2012 11:39:52

Padre_Mortius писал(а):alexey38, для сборки проектов лазаруса используется утилита lazbuild.exe


Если я правильно понимаю, но в конечном счете запускаются exe необходимых компиляторов. Т.е. lazbuild.exe не содержит в себе сам компилятор.
alexey38
долгожитель
 
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 224

Рейтинг@Mail.ru
cron