Для QBS: Какие параметры я бы установил в моем DynamicLibrary{} для установки заголовков и библиотек при сборке?

Я перевожу свои библиотеки Qt из qmake в qbs и пытаюсь найти подходящий шаблон, который поможет мне понять, какие параметры необходимы для упрощения сборки и установки указанных библиотек.

В настоящее время файл qbs для одной из моих библиотек выглядит следующим образом:

import qbs

DynamicLibrary {
    name: "qparsingtoolkit";
    Depends {name: "cpp"}
    Depends {name: "Qt.core"}

    files: [
        "Headers/qparsingparameters.h",
        "Headers/qparsingtoolkit.h",
        "Headers/qparsingtoolkit_global.h",
        "Sources/qparsingparameters.cpp",
        "Sources/qparsingtoolkit.cpp",
    ]
}

Установка относительно проста.

Я просто хочу, чтобы заголовки были помещены в /usr/include/qconsoledesigner

и .so библиотеки установлены в /usr/share/qconsoledesigner

1 ответ

Решение
DynamicLibrary {
    name: "qparsingtoolkit";

    Depends {name: "cpp"}
    Depends {name: "Qt.core"}

    qbs.installPrefix: "usr"

    files: [
        "Sources/qparsingparameters.cpp",
        "Sources/qparsingtoolkit.cpp",
    ]

    Group {
        name: "api_headers"
        files: [
            "Headers/qparsingparameters.h",
            "Headers/qparsingtoolkit.h",
            "Headers/qparsingtoolkit_global.h",
        ]
        qbs.install: true
        qbs.installDir: "include/qconsoledesigner"
    }

    Group {
        fileTagsFilter: ["dynamiclibrary", "dynamiclibrary_symlink"]
        qbs.install: true
        qbs.installDir: "share/qconsoledesigner" 
    }
}

Обратите внимание, что установка целевых двоичных файлов станет более простой в будущем; см., например, http://doc-snapshots.qt.io/qbs/qml-qbsconvenienceitems-dynamiclibrary.html.

Обычная сборка qbs устанавливается в установочный корень внутри директории сборки. Чтобы установить "глобально", выполните "сборку qbs" с "sudo qbs install --no-build --install-root /".

Другие вопросы по тегам