configurations/programming/dub.md

56 lines
2.2 KiB
Markdown
Raw Normal View History

# Проект 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
```