diff --git a/README.md b/README.md index 2f01b63..c65e88c 100644 --- a/README.md +++ b/README.md @@ -5,3 +5,8 @@ - [Настройка SSH](ssh.md) - [Копирование файлов на удалённый сервер через SSH](scp.md) - [Базы данных](db.md) + +## Программирование + +### Язык программирования D +- [Проект dub.json](dub.md) \ No newline at end of file diff --git a/dub.md b/dub.md new file mode 100644 index 0000000..ad5b75e --- /dev/null +++ b/dub.md @@ -0,0 +1,56 @@ +# Проект dub.json + +Описание основных настроек на [официальном сайте](https://dub.pm/package-format-json). + +Структура файла `dub.json`: + +```js +{ + "name" : "app", + "authors" : [ + "Alexander Zhirov" + ], + "homepage" : "https://zhirov.website/", + "license" : "GPL-2.0", + "copyright" : "Copyright © 2021, alexander", + "description" : "My program", + "libs" : [ + "stdc++" + ], + "preBuildCommands" : [ + "g++ -c source/*.cpp", + "mv *.o objcpp/" + ], + "sourceFiles" : [ + "objcpp/foo.o" + ] +} +``` + +Описание полей: + +|Параметр|Тип|Описание| +|--------|---|--------| +|`name`|`string`|Имя пакета, используемое для уникальной идентификации пакета.| +|`authors`|`string[]`|Список авторов проекта| +|`homepage`|`string`|URL-адрес веб-сайта проекта| +|`license`|`string`|Лицензия, под которой может использоваться проект| +|`copyright`|`string`|Строка декларации авторских прав| +|`description`|`string`|Краткое описание пакета| +|`libs`|`string[]`|Список имен внешних библиотек - в зависимости от компилятора они будут преобразованы в соответствующий флаг компоновщика (например, `ssl` может быть переведен в `-L-lssl`)| +|`preBuildCommands`|`string[]`|Список команд оболочки, выполняемых до создания пакета| +|`sourceFiles`|`string[]`|Дополнительные файлы, передаваемые компилятору - может быть полезно добавить определенные зависимые от конфигурации исходные файлы, которые не содержатся в общей папке исходного кода| + +`source` - общая папка исходного кода: + +```sh +. +├── app +├── dub.json +├── dub.selections.json +├── objcpp +│   └── foo.o +└── source + ├── app.d + └── foo.cpp +``` \ No newline at end of file