Esempio n. 1
0
bool RvctToolChainConfigWidget::isDirty() const
{
    RvctToolChain *tc = static_cast<RvctToolChain *>(toolChain());
    Q_ASSERT(tc);

    return tc->compilerPath() != m_ui->compilerPath->path()
            || tc->armVersion() != static_cast<RvctToolChain::ArmVersion>(m_ui->versionComboBox->currentIndex())
            || tc->environmentChanges() != environmentChanges();
}
Esempio n. 2
0
ProjectExplorer::ToolChain *RvctToolChainFactory::restore(const QVariantMap &data)
{
    RvctToolChain *tc = new RvctToolChain(false);
    if (tc->fromMap(data))
        return tc;

    delete tc;
    return 0;

}
Esempio n. 3
0
void RvctToolChainConfigWidget::setFromToolChain()
{
    RvctToolChain *tc = static_cast<RvctToolChain *>(toolChain());
    Q_ASSERT(tc);

    m_model->setBaseEnvironment(baseEnvironment(tc));

    m_ui->compilerPath->setPath(tc->compilerPath());
    m_ui->versionComboBox->setCurrentIndex(static_cast<int>(tc->armVersion()));
}
Esempio n. 4
0
ProjectExplorer::ToolChain *RvctToolChainFactory::create()
{
    RvctToolChain *tc = new RvctToolChain(false);
    Utils::Environment env = Utils::Environment::systemEnvironment();
    if (env.hasKey(QLatin1String(RVCT_LICENSE_KEY))) {
        tc->setEnvironmentChanges(QList<Utils::EnvironmentItem>()
                                  << Utils::EnvironmentItem(QLatin1String(RVCT_LICENSE_KEY),
                                                            env.value(QLatin1String(RVCT_LICENSE_KEY))));
    }
    tc->setDisplayName(tr("RVCT"));
    return tc;
}
Esempio n. 5
0
void RvctToolChainConfigWidget::setFromToolChain()
{
    RvctToolChain *tc = static_cast<RvctToolChain *>(toolChain());
    Q_ASSERT(tc);

    m_model->setBaseEnvironment(baseEnvironment(tc));

    m_ui->compilerPath->setFileName(tc->compilerCommand());
    m_ui->versionComboBox->setCurrentIndex(static_cast<int>(tc->armVersion()));
    setDebuggerCommand(tc->debuggerCommand());
    setMkspecList(tc->mkspecList());
}
Esempio n. 6
0
void RvctToolChainConfigWidget::apply()
{
    RvctToolChain *tc = static_cast<RvctToolChain *>(toolChain());
    Q_ASSERT(tc);

    QList<Utils::EnvironmentItem> changes = environmentChanges();
    tc->setCompilerPath(m_ui->compilerPath->path());
    tc->setArmVersion(static_cast<RvctToolChain::ArmVersion>(m_ui->versionComboBox->currentIndex()));
    tc->setEnvironmentChanges(changes);

    m_model->setUserChanges(changes);
}
Esempio n. 7
0
RvctToolChain::RvctToolChain(const RvctToolChain &tc) :
    ToolChain(tc),
    m_compilerCommand(tc.m_compilerCommand),
    m_environmentChanges(tc.m_environmentChanges),
    m_armVersion(tc.m_armVersion),
    m_debuggerCommand(tc.debuggerCommand())
{ }
Esempio n. 8
0
QList<ProjectExplorer::ToolChain *> RvctToolChainFactory::autoDetect()
{
    Utils::Environment env = Utils::Environment::systemEnvironment();

    QMap<QString, QList<Utils::EnvironmentItem> > rvcts;
    QList<Utils::EnvironmentItem> globalItems;

    // Find all RVCT..x variables
    for (Utils::Environment::const_iterator i = env.constBegin(); i != env.constEnd(); ++i) {
        if (i.key() == QLatin1String(RVCT_LICENSE_KEY))
            globalItems.append(Utils::EnvironmentItem(i.key(), i.value()));
        if (!i.key().startsWith(QLatin1String("RVCT")))
            continue;

        const QString key = i.key().left(6);
        QList<Utils::EnvironmentItem> values = rvcts.value(key);

        values.append(Utils::EnvironmentItem(i.key(), i.value()));

        rvcts.insert(key, values);
    }

    // Set up tool chains for each RVCT.. set
    QList<ProjectExplorer::ToolChain *> result;
    for (QMap<QString, QList<Utils::EnvironmentItem> >::const_iterator i = rvcts.constBegin();
         i != rvcts.constEnd(); ++i) {
        QList<Utils::EnvironmentItem> changes = i.value();
        changes.append(globalItems);

        Utils::FileName binary = Utils::FileName::fromUserInput(valueOf(changes, QLatin1String("BIN")));
        if (binary.isEmpty())
            continue;
        binary.appendPath(QLatin1String(RVCT_BINARY));
        QFileInfo fi(binary.toFileInfo());
        if (!fi.exists() || !fi.isExecutable())
            continue;

        RvctToolChain::RvctVersion v = RvctToolChain::version(binary);
        if (v.majorVersion == 0 && v.minorVersion == 0 && v.build == 0)
            continue; // Failed to start.

        //: %1 arm version, %2 major version, %3 minor version, %4 build number
        const QString name = tr("RVCT (%1 %2.%3 Build %4)");

        RvctToolChain *tc = new RvctToolChain(true);
        tc->setCompilerCommand(binary);
        tc->setEnvironmentChanges(changes);
        tc->setDisplayName(name.arg(armVersionString(tc->armVersion()))
                           .arg(v.majorVersion).arg(v.minorVersion).arg(v.build));
        tc->setVersion(v);
        tc->setDebuggerCommand(ProjectExplorer::ToolChainManager::instance()->defaultDebugger(tc->targetAbi()));
        result.append(tc);

        tc = new RvctToolChain(true);
        tc->setCompilerCommand(binary);
        tc->setEnvironmentChanges(changes);
        tc->setArmVersion(RvctToolChain::ARMv6);
        tc->setDisplayName(name.arg(armVersionString(tc->armVersion()))
                           .arg(v.majorVersion).arg(v.minorVersion).arg(v.build));
        tc->setVersion(v);
        tc->setDebuggerCommand(ProjectExplorer::ToolChainManager::instance()->defaultDebugger(tc->targetAbi()));
        result.append(tc);
    }

    return result;
}