Оберон-клуб «ВЄДАsoft» https://zx.oberon.org/forum/ |
|
Будни разработки XDev https://zx.oberon.org/forum/viewtopic.php?f=8&t=90 |
Страница 1 из 1 |
Автор: | Zorko [ 07 мар 2013, 18:21 ] |
Заголовок сообщения: | Будни разработки XDev |
Сейчас занимаюсь вот чем. На повестке дня пару вопросов, а поскольку посоветоваться почти не с кем, пишу сюда своеобразные “дневниковые” записки. 1. Определение главного модуля. В Оберон-системах этот вопрос вообще неактуален. Но мы, поскольку XDev планируется для кроссплатформенной (и отчуждаемой от среды) разработки, приходим к вопросу: с какого же модуля начать исполнение программы? Сейчас в XDev можно воспользоваться средством, которое предоставляет Ofront-подсистема: Ofront -> Tool -> generate main program Если эта галочка установлена, то для кода инициализации текущего модуля (BEGIN) генерируется исходник на Си со входом — функцией main. До сих пор этой возможности мне хватало, но надо решить этот вопрос кардинально, ведь это неправильно, когда в процессе доработки сразу несколько модулей приходится то снимать, то устанавливать галочку. Желание как-то автоматизировать этот процесс наталкивает на следующие пути решения:
Код: "OBERON"
Всем хорош и прекрасен для меня именно пункт d, хотя он же и наиболее трудоёмок в реализации. Из минусов предвосхищаю упрёки в “возвращении к Турбо Паскалю” и его директивам, задаваемым таким способом. Однако если вам есть что сказать по данному вопросу, милости прошу. |
Автор: | Zorko [ 07 мар 2013, 21:45 ] |
Заголовок сообщения: | Будни разработки XDev |
2. В каком именно виде хранить структуру файлов проекта. a) Произвольный путь извне подсистемы разработки (для маленьких проектов): Module.Mod Module.h Module.c Module.sym Каталог Bin не присутствует (текущая подсистема задаётся из меню XDev) или присутствует, и тогда скрипты в ней использутся для компиляции и сборки, также может быть одноименный с модулем скрипт для сборки проекта: Module.bat Каталог, в котором хранятся все эти файлы, является текущим в момент запуска компилятора Си, поэтому служебные и объектные файлы создаются в нём же. Для чистки рабочего каталога от этих временных файлов традиционно используется скрипт +Clear.bat b) Произвольный путь извне подсистемы разработки (для больших проектов): Module1.Mod (или Mod/Module1.Mod) Module2.Mod (или Mod/Module2.Mod) Obj/Module1.h Obj/Module1.c Obj/Module2.h Obj/Module2.c Sym/Module1.sym Sym/Module2.sym Подобно тому же, что и выше, только сишные исходники помещаются в каталог Obj, а символьные файлы — в Sym. Библиотеки для случаев a и b ищутся в каталоге Lib выбранной подсистемы разработки. Или же папка Lib также может присутствовать, и библиотеки размещаются в ней. Отличие a от b: XDev проверяет, существуют ли подкаталоги Obj и Sym, и если да, то символьные и объектные файлы помещаются туда; если же нет, то они хранятся в каталоге проекта. Проблема: как задавать подсистему разработки, если она может быть не единственной? (Допустим, это кроссплатформенный пример, который можно собрать и подсистемой ZXDev, и подсистемой WinDev). Как задавать схему трансляции, если она может быть в подсистеме не единственной? (Например, подсистема WinDev может обеспечивать три схемы трансляции: Ofront/MinGW, Ofront/TCC и Ofront/Cygwin). Задавать конечно можно всякий раз из меню, но запоминать ли выбранную подсистему и схему трансляции, и где именно? c) Проект хранится в каталоге подсистемы разработки. Здесь уже не нужно задавать подсистему. Скрипты берутся из каталога Bin, объектники помещаются в Obj, а символьные файлы в Sym. Библиотеки в Lib. Исходники модулей по-прежнему в корне подсистемы (или в каталоге Mod). Текущим при запуске компилятора Си считается каталог Obj, служебные файлы помещаются в него же. d) Библиотеки подсистемы разработки. Скрипты для сборки библиотеки берутся из каталога Lib/Bin, объектники помещаются в Lib/Obj, а символьные файлы в Lib/Sym. Исходники библиотек, написанных на Си, помещаются в корне Lib (Obj задействован под автоматически сгенерированные Ofront’ом исходники, которые могут быть одноименными), исходники библиотек написанных на Обероне помещаются в каталоге Lib/Mod. Также обсуждаемо. |
Автор: | Zorko [ 09 мар 2013, 20:29 ] | ||||
Заголовок сообщения: | Будни разработки XDev | ||||
Кроссплатформенный модуль Console и демонстрационная программка, собранная подсистемами ZXDev и WinDev. Отдельно оцените размер целевых файлов и независимость их от Оберон-среды исполнения. В процессе разработки XDev на это делается и будет делаться особый упор.
|
Автор: | Zorko [ 06 июн 2017, 22:01 ] |
Заголовок сообщения: | Будни разработки XDev |
Добавил в XDev поддержку исходников в кодировке UTF-8. Теперь XDev поддерживает три текстовых формата исходников (плюс свой собственный бинарный формат .odc):
2. UTF-8 как в Блокноте Windows (BOM в начале файла, конец строки 0DX+0AX). Такой формат понимают даже редакторы для Linux, например, pico и gedit. 3. UTF-8 как в Linux (без BOM или с BOM, конец строки 0AX). Среда при открытии исходника определяет формат и кодировку на основе его структуры, и потом сохраняет его в том же формате и кодировке. И, поскольку вариант 1 не поддерживают программы в Linux, а вариант 3 не поддерживают программы в Windows, исключительно из соображений поддержки популярными ОС, форматом по умолчанию выбран вариант 2. Недоработка, которую хотелось бы в будущем исправить:
|
Автор: | ivan_denisov [ 08 июн 2017, 13:00 ] |
Заголовок сообщения: | Re: Будни разработки XDev |
Олег, а почему бы не добавить UTF8 конвертер? И тогда можно будет выбирать. Как пример вот: http://www.zinnamturm.eu/downloadsAC.htm#CpcUtf8Conv |
Автор: | Zorko [ 08 июн 2017, 22:24 ] |
Заголовок сообщения: | Будни разработки XDev |
Иван, поскольку XDev — это не универсальная сборка BlackBox, прицел взят на то, чтобы убрать из диалогов Open/Save все лишние форматы, для представления программных исходников их там слишком много. Плюс подсистема CpcUtf8Conv не заточена под раскраску синтаксиса текстовых исходников. Так что эту задачу не решить простым использованием готовой подсистемы. Но кодом из CpcUtf8Conv я конечно поживился. |
Страница 1 из 1 | Часовой пояс: UTC + 2 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |