@dlangru

Страница 415 из 719
Denis
25.02.2018
14:22:57
dcd или как его там

Denis
25.02.2018
14:24:05
Да, это костыль, ибо "none" Does not generate an output file. This is useful for packages that are supposed to drag in other packages using "dependency" directives.

Google
Denis
25.02.2018
14:24:16
т.е. это такой официальный тип сборки. значит бага в комплиттере

или в том что ему грузит пути к сырцам

может он сам и неумеет по субпакетам шарить

Denis
25.02.2018
14:31:23
а кто о нём говорит?

Oleg
25.02.2018
14:33:28
недопрочитал, сорян

и что значит баг в комплитере? этот способ работает для всех типов сборки кроме none, так как none запрещён намеренно

причина запрета none мне не ясна пока

Denis
25.02.2018
14:36:21
ну так компилятор должен знать какую цель собирает, точнее это DUB ещё

если цель никакая то собирать нельзя

если цель неизвестная то просто убираешь строку и оно автодетектить пытается

Evgeny
25.02.2018
14:36:59
причина запрета none мне не ясна пока
dub вообще никак не связан с автокомплитом

Denis
25.02.2018
14:37:12
скоре всего, связан

Google
Oleg
25.02.2018
14:37:27
Denis
25.02.2018
14:37:27
как-то ведь автокомплит находит пакеты чтобы сырцы прочитать

Oleg
25.02.2018
14:37:48
а дальше уже dcd и иже с ними

Evgeny
25.02.2018
14:38:16
автокомплит может анализировать dub.sdl или dub.json

Oleg
25.02.2018
14:38:36
автокомплит может анализировать dub.sdl или dub.json
дублирование функциональности

Evgeny
25.02.2018
14:39:08
тут вопрос, а должен ли dub выдавать пути к субпакетам если цель none?

Oleg
25.02.2018
14:39:08
у dub есть инструменты, которые позволяют это делать и выдавать на выход всё что нужно

Denis
25.02.2018
14:39:17
скорее всего он не сам анализирует а вызывает dub как библиотеку

Evgeny
25.02.2018
14:39:39
Oleg
25.02.2018
14:40:01
скорее просто запускает dub с параметрами
нет, dub как библиотека используется

собственно вопрос в том почему все остальные targetType работают исправно, а none запрещён явно

Evgeny
25.02.2018
14:40:49
ок, и эта либа не ковыряет субпакеты, если цель none. По мне так это повод для issue

Denis
25.02.2018
14:40:59
+1

Oleg
25.02.2018
14:42:22
ну чтож... придётся костылить фейковую библиотеку

да чтож такое то...)

в одном из субпакетов copyFiles есть...

так теперь при каждом сохранении он обновляет автокомплит вызовом dub, тот делает сборку без сборки, но файлы копирует

Denis
25.02.2018
15:05:10
а это потому что автокомплит это почти что компиляция, как я понимаю

Oleg
25.02.2018
15:05:20
не не не

Google
Denis
25.02.2018
15:05:26
може там copyFiles а потом import(file) и какой-то парсинг например в миксин?

так вот пока всё это не сделаешь автокомплита не получится

Oleg
25.02.2018
15:06:00
помимо автокомплита dub ещё вызывается чтобы ошибки подсвечивать сразу

Denis
25.02.2018
15:06:01
/me живёт с примитивным автодополнением слов в Geany и ему норм

Oleg
25.02.2018
15:06:06
тут да, по сути компиляция

до этого столкнулся с подобной проблемой, но там preBuild был

скрипт вызывался при каждом вызове проверки

Denis
25.02.2018
15:07:30
автокомплит надо кэшировать и обновлять (непонятно когда)

Oleg
25.02.2018
15:08:25
этом не сам dub занимается...

вызывается какая-то функция "типа собрать, но не собирать"

Denis
25.02.2018
15:08:54
ну да

Oleg
25.02.2018
15:09:06
так вот он исполняет всё, кроме того что кладёт результат в targetPath

все копирования файлов и pre и post скрипты

мне кажется это не правильно

Denis
25.02.2018
15:10:01
правильно: может там потом import(file) и какой-то парсинг например в миксин?

хотели рефлексии? ешьте!)

Oleg
25.02.2018
15:12:21
там нужны пути статического импорта

а куда по итогу кладётся файл вообще не важно

Denis
25.02.2018
15:12:56
нет, без парсинга всех миксинов из рандомных файлов невозможно автокомплит предоставить

Google
Denis
25.02.2018
15:13:05
в этих файлах может лежать генерируемый код

а для этого надо все приготовления сделать

Oleg
25.02.2018
15:13:32
копирование кладёт файлы в targetPath

Denis
25.02.2018
15:13:35
всё, что до компиляции произвести будто компиляция будет

Oleg
25.02.2018
15:13:58
так вот targetPath никак на компиляцию не влияет

stringImportPaths указывает где искать файлы, читаемые во время компиляции

по всей видимости копирование делается просто "за компанию"

для копирования придётся отдельный скрипт писать...

в целом прихожу к выводу, что dub как менеджер пакетов хорош, но как система сборки не очень, т.к. подходит только для тривиальных случаев

вернее к этому выводу я уже приходил, но подумал "а может быть я что-то делаю не так" и в очередной раз не нашёл способа сделать всё "так", чтобы удобно и работало хорошо

Denis
25.02.2018
15:30:57
> как менеджер пакетов хорош, но как система сборки не очень А в чём разница?

Oleg
25.02.2018
15:32:23
менеджер пакетов контролирует пакеты) зависимости разруливает, скачивает из репозитория

система сборки может отрабатывать разные случаи сборки

может быть я реально что-то не так понимаю как делается?

Denis
25.02.2018
15:33:44
а смысл в пакете если его собрать никак нельзя?

Oleg
25.02.2018
15:34:05
а смысл в пакете если его собрать никак нельзя?
я про то что одинаково описывать пакет и процесс его сборки как-то не выходит

вот есть у меня проект, в нём много программ (4 программы для rpi, 1 на desktop)

они все используют общие типы данных, функции разные и тд — то есть библиотеки локальные

3 штуки

вот как мне этот проект описать и рулить им?

Google
Denis
25.02.2018
15:36:50
Программы реально разные? тогда это субпакеты должны быть

Oleg
25.02.2018
15:37:07
да, выполняют совершенно разные задачи

одна забирает данные от датчиков и отправляет в шину, другая рисует это на экране, другая обновление системы реализует, другая watchdog, будут ещё web интерфейс и modbus-slave

ну и вот описал я subPackage'ы разные

targetPath один на всех (папка build), туда должно всё складываться

gui использует доп файлы в виде ui и картинок, их тоже нужно в build класть

но вот чтобы все эти вещи связаны были в один проект он не может быть none

кстати dub не умеет platform для targetType

и targetPath

тоесть нельзя отдельно build-arm и build-x86 сделать

со сборкой +/- приятной под arm разобрался

нужно сделать отдельный скрипт, где ldc указать все нужные флаги и передать те что этому скрипту на вход идут

назвать например armldc2 и указывать его в качестве компилятора при сборке

хотел ещё номер сборки считать, но тоже не пойму как

Denis
25.02.2018
15:45:28
Oleg
25.02.2018
15:45:39
да почему же?

Denis
25.02.2018
15:45:58
Потому что не указывается под какую платформу пакет - кроссплатформенные они как бы

Oleg
25.02.2018
15:45:58
многие другие поля умеют

Denis
25.02.2018
15:46:24
некроссплатформенный код в версию заверни и оно при компиляции неверной платформы просто упадёт

Oleg
25.02.2018
15:47:02
теоретически проект мой может работать и на arm и на x86

Denis
25.02.2018
15:47:23
Вот и верно. А targetType это просто библиотека там у тебя или исполняемый файл или сырцы

Oleg
25.02.2018
15:47:27
вот только чтобы одну из 4 программ попробовать запустить на arm я должен все пересобрать или руками их переложить в другое место

Страница 415 из 719