LINUX.ORG.RU

История изменений

Исправление kuzulis, (текущая версия) :

Почитал доку, вроде бы понял, что всё это делается через Rule

Все через рули. Но для генерации текстовых файлов есть два способа:

  1. Самый простой - использование шаблонов и модуль texttemplate .

  2. Сложнее но универсалнее - самому создавать текстовые файлы.

Пример первого способа:

Файл проекта: gen-template.qbs :


import qbs
import qbs.FileInfo

CppApplication {

    // Подключаем модуль-генератор шаблонов.
    Depends { name: "texttemplate" }

    // Добавляем тег "text" к твоему продукту приложения,который
    // по умолчанию используется модулем 'texttemplate' для всех
    // входных файлов с расширением '*.in'.
    type: base.concat("text")

    consoleApplication: true

    // Твоя версия приложения или хз чего.
    property string version: "1.2.3"

    // Заполняешь соответствие пропертей генерируемого шаблона и того чо те надо.
    texttemplate.dict: ({
        appname: product.name,
        apppath: FileInfo.joinPaths(my_install_group.qbs.installRoot, my_install_group.qbs.installDir),
        appver: product.version,
    })

    // Список входных файлов твоего продукта приложения.
    // - файлы с расширением '*.cpp' будут компиляться модулем 'cpp'.
    // - файлы с расширением '*.in' будут обрабатываться модулем 'texttemplate'.
    files: ["main.cpp", "info.txt.in"]

    // Эта группа для установки твоих выходных артефактов (коими являются екзешка
    // приложения и твоя сгенеренная инфа) в нужную директорию.
    // Тут будет 'install-root/bon'
    Group {
        id: my_install_group
        fileTagsFilter: ["application", "text"]
        qbs.install: true
        qbs.installDir: "bin"
    }
}

Файл исходного шаблона: info.txt.in :

# This is generated file

app-name: ${appname}
app-path: ${apppath}
app-version: ${appver}

Файл сгенеренного файла: info.txt :

# This is generated file

app-name: gen-template
app-path: C:\Users\ass\Documents\build-gen-template-debug\Debug_Desktop__e24fef6e51900fb5/install-root/bin
app-version: 1.2.3

Чо тут сложного то? :)

PS: Для оперативных вопросов есть канал на дискорде https://discord.gg/ZXT6YKq

Исправление kuzulis, :

Почитал доку, вроде бы понял, что всё это делается через Rule

Все через рули. Но для генерации текстовых файлов есть два способа:

  1. Самый простой - использование шаблонов и модуль texttemplate .

  2. Сложнее но универсалнее - самому создавать текстовые файлы.

Пример первого способа:

Файл проекта: gen-template.qbs :


import qbs
import qbs.FileInfo

CppApplication {

    // Подключаем модуль-генератор шаблонов.
    Depends { name: "texttemplate" }

    // Добавляем тег "text" к твоему продукту приложения,который
    // по умолчанию используется модулем 'texttemplate' для всех
    // входных файлов с расширением '*.in'.
    type: base.concat("text")

    consoleApplication: true

    // Твоя версия приложения или хз чего.
    property string version: "1.2.3"

    // Заполняешь соответствие пропертей генерируемого шаблона и того чо те надо.
    texttemplate.dict: ({
        appname: product.name,
        apppath: FileInfo.joinPaths(my_install_group.qbs.installRoot, my_install_group.qbs.installDir),
        appver: product.version,
    })

    // Список входных файлов твоего продукта приложения.
    // - файлы с расширением '*.cpp' будут компиляться модулем 'cpp'.
    // - файлы с расширением '*.in' будут обрабатываться модулем 'texttemplate'.
    files: ["main.cpp", "info.txt.in"]

    // Эта группа для установки твоих выходных артефактов (коими являются екзешка
    // приложения и твоя сгенеренная инфа) в нужную директорию.
    // Тут будет 'install-root/bon'
    Group {
        id: my_install_group
        fileTagsFilter: ["application", "text"]
        qbs.install: true
        qbs.installDir: "bin"
    }
}

Файл исходного шаблона: info.txt.in :

# This is generated file

app-name: ${appname}
app-path: ${apppath}
app-version: ${appver}

Файл сгенеренного файла: info.txt :

# This is generated file

app-name: gen-template
app-path: C:\Users\ass\Documents\build-gen-template-debug\Debug_Desktop__e24fef6e51900fb5/install-root/bin
app-version: 1.2.3

Чо тут сложного то? :)

Исправление kuzulis, :

Почитал доку, вроде бы понял, что всё это делается через Rule

Все через рули. Но для генерации текстовых файлов есть два способа:

  1. Самый простой - использование шаблонов и модуль texttemplate .

  2. Сложнее но универсалнее - самому создавать текстовые файлы.

Пример первого способа:

Файл проекта: [i]gen-template.qbs[/i] :


import qbs
import qbs.FileInfo

CppApplication {

    // Подключаем модуль-генератор шаблонов.
    Depends { name: "texttemplate" }

    // Добавляем тег "text" к твоему продукту приложения,который
    // по умолчанию используется модулем 'texttemplate' для всех
    // входных файлов с расширением '*.in'.
    type: base.concat("text")

    consoleApplication: true

    // Твоя версия приложения или хз чего.
    property string version: "1.2.3"

    // Заполняешь соответствие пропертей генерируемого шаблона и того чо те надо.
    texttemplate.dict: ({
        appname: product.name,
        apppath: FileInfo.joinPaths(my_install_group.qbs.installRoot, my_install_group.qbs.installDir),
        appver: product.version,
    })

    // Список входных файлов твоего продукта приложения.
    // - файлы с расширением '*.cpp' будут компиляться модулем 'cpp'.
    // - файлы с расширением '*.in' будут обрабатываться модулем 'texttemplate'.
    files: ["main.cpp", "info.txt.in"]

    // Эта группа для установки твоих выходных артефактов (коими являются екзешка
    // приложения и твоя сгенеренная инфа) в нужную директорию.
    // Тут будет 'install-root/bon'
    Group {
        id: my_install_group
        fileTagsFilter: ["application", "text"]
        qbs.install: true
        qbs.installDir: "bin"
    }
}

Файл исходного шаблона: [i]info.txt.in[/i] :

# This is generated file

app-name: ${appname}
app-path: ${apppath}
app-version: ${appver}

Файл сгенеренного файла: [i]info.txt[/i] :

# This is generated file

app-name: gen-template
app-path: C:\Users\ass\Documents\build-gen-template-debug\Debug_Desktop__e24fef6e51900fb5/install-root/bin
app-version: 1.2.3

Чо тут сложного то? :)

Исправление kuzulis, :

Почитал доку, вроде бы понял, что всё это делается через Rule

Все через рули. Но для генерации текстовых файлов есть два способа:

  1. Самый простой - использование шаблонов и модуль [url=https://doc.qt.io/qbs/qml-qbsmodules-texttemplate.html]texttemplate[/url].

  2. Сложнее но универсалнее - самому создавать текстовые файлы.

Пример первого способа:

Файл проекта: [i]gen-template.qbs[/i] :


import qbs
import qbs.FileInfo

CppApplication {

    // Подключаем модуль-генератор шаблонов.
    Depends { name: "texttemplate" }

    // Добавляем тег "text" к твоему продукту приложения,который
    // по умолчанию используется модулем 'texttemplate' для всех
    // входных файлов с расширением '*.in'.
    type: base.concat("text")

    consoleApplication: true

    // Твоя версия приложения или хз чего.
    property string version: "1.2.3"

    // Заполняешь соответствие пропертей генерируемого шаблона и того чо те надо.
    texttemplate.dict: ({
        appname: product.name,
        apppath: FileInfo.joinPaths(my_install_group.qbs.installRoot, my_install_group.qbs.installDir),
        appver: product.version,
    })

    // Список входных файлов твоего продукта приложения.
    // - файлы с расширением '*.cpp' будут компиляться модулем 'cpp'.
    // - файлы с расширением '*.in' будут обрабатываться модулем 'texttemplate'.
    files: ["main.cpp", "info.txt.in"]

    // Эта группа для установки твоих выходных артефактов (коими являются екзешка
    // приложения и твоя сгенеренная инфа) в нужную директорию.
    // Тут будет 'install-root/bon'
    Group {
        id: my_install_group
        fileTagsFilter: ["application", "text"]
        qbs.install: true
        qbs.installDir: "bin"
    }
}

Файл исходного шаблона: [i]info.txt.in[/i] :

# This is generated file

app-name: ${appname}
app-path: ${apppath}
app-version: ${appver}

Файл сгенеренного файла: [i]info.txt[/i] :

# This is generated file

app-name: gen-template
app-path: C:\Users\ass\Documents\build-gen-template-debug\Debug_Desktop__e24fef6e51900fb5/install-root/bin
app-version: 1.2.3

Чо тут сложного то? :)

Исходная версия kuzulis, :

Почитал доку, вроде бы понял, что всё это делается через Rule

Все через рули. Но для генерации текстовых файлов есть два способа:

  1. Самый простой - использование шаблонов и модуль [url=https://doc.qt.io/qbs/qml-qbsmodules-texttemplate.html]texttemplate[/url].

  2. Сложнее но универсалнее - самому создавать текстовые файлы.

Пример первого способа:

Файл проекта: [i]gen-template.qbs[/i] :

[code]

import qbs import qbs.FileInfo

CppApplication {

// Подключаем модуль-генератор шаблонов.
Depends { name: "texttemplate" }

// Добавляем тег "text" к твоему продукту приложения,который
// по умолчанию используется модулем 'texttemplate' для всех
// входных файлов с расширением '*.in'.
type: base.concat("text")

consoleApplication: true

// Твоя версия приложения или хз чего.
property string version: "1.2.3"

// Заполняешь соответствие пропертей генерируемого шаблона и того чо те надо.
texttemplate.dict: ({
    appname: product.name,
    apppath: FileInfo.joinPaths(my_install_group.qbs.installRoot, my_install_group.qbs.installDir),
    appver: product.version,
})

// Список входных файлов твоего продукта приложения.
// - файлы с расширением '*.cpp' будут компиляться модулем 'cpp'.
// - файлы с расширением '*.in' будут обрабатываться модулем 'texttemplate'.
files: ["main.cpp", "info.txt.in"]

// Эта группа для установки твоих выходных артефактов (коими являются екзешка
// приложения и твоя сгенеренная инфа) в нужную директорию.
// Тут будет 'install-root/bon'
Group {
    id: my_install_group
    fileTagsFilter: ["application", "text"]
    qbs.install: true
    qbs.installDir: "bin"
}

}

[/code]

Файл исходного шаблона: [i]info.txt.in[/i] :

[code]

This is generated file

app-name: ${appname} app-path: ${apppath} app-version: ${appver} [/code]

Файл сгенеренного файла: [i]info.txt[/i] :

[code]

This is generated file

app-name: gen-template app-path: C:\Users\ass\Documents\build-gen-template-debug\Debug_Desktop__e24fef6e51900fb5/install-root/bin app-version: 1.2.3 [/code]

Чо тут сложного то? :)