Профили QBS не сохраняются и не обновляются в любое время - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть QtCreator на P C с Windows и Ubuntu. Ubuntu я использую, чтобы построить проект для Linux и для RaspberryPi. A Windows P C используется для сборки проекта в x86, x86_64 и android: armv7a, arm64, x86 (для эмулятора). Также windows используется для разработки встроенного программного обеспечения для stm32. Соответственно мне нужны профили 6 qbs для windows и 3 профиля для linux. Сам проект использует QBS в качестве системы сборки.

Проблема в том, что очень трудно определить, какой набор используется в настоящее время. Ниже я привожу начало моего файла qbs, где я инициализирую основные переменные.

import qbs

Project {

    property var _TargetEnum: ({
                                   win_x86      : 1,
                                   win_x86_64   : 2,
                                   raspberryPi  : 3,
                                   stm32        : 4,
                                   android      : 5, 
                                   linux        : 6, 
                               })

    property var Target
    Properties {
        condition: (qbs.targetPlatform === "windows")
        Target: (qbs.architecture === "x86") ? _TargetEnum.win_x86 : _TargetEnum.win_x86_64
    }
    Properties {
        condition: (qbs.targetPlatform === "RaspberryPi")
        Target: _TargetEnum.raspberryPi
    }
    Properties {
        condition: (qbs.targetPlatform === "stm32")
        Target: _TargetEnum.stm32
    }
    Properties {
        condition: (qbs.targetPlatform === "android")
        Target: _TargetEnum.android
    }
    Properties {
        condition: (qbs.targetPlatform === "linux")
        Target: _TargetEnum.linux
    }

    property var _BuildModeEnum: ({
                                  debug     : 1,
                                  release   : 2
                              })

    property var BuildMode: qbs.buildVariant.contains("debug") ?
                                 _BuildModeEnum.debug :
                                 _BuildModeEnum.release
...
}

Профили QBS, созданные автоматически, не имеют полностью заполненных полей, и я должен вручную заполнить эти поля, используя qbs-config Утилита Более того, поведение этой утилиты и qtcreator отличается в windows и linux.

В windows, происходит следующее: после открытия qtcreator старые настройки в Tools-Kit-Qbs остаются от В последнем рабочем сеансе после открытия рабочего проекта настройки сбрасываются в состояние по умолчанию. Затем я открываю утилиту qbs-config-ui и вручную вносю изменения в qbs.targetPlatform и qbs.architecture в нужные мне пакеты, сохраняю настройки. В QtCreator я открываю окно настроек и вижу, что мои изменения были сделаны. Тогда я могу работать до следующего рабочего сеанса.

В Linux это поведение обычно отсутствует, никаких закономерностей того, как профиль обновляется в QtCreator и как он вылетает, я пока не смог увидеть.

Мой вопрос : как мне раз и навсегда настроить профили QBS, чтобы мне не пришлось их перенастраивать.

1 Ответ

1 голос
/ 20 февраля 2020

Не пытайтесь вносить изменения в профили qbs, полученные из наборов Qt Creator "извне" - это не будет надежно работать, как вы обнаружили. Эти профили могут быть восстановлены в любое время. Вместо этого go выберите Инструменты -> Параметры -> Наборы и внесите изменения с помощью записи «Дополнительные свойства Qbs» в диалоговом окне набора. Эти изменения сохранятся.

...