aboutsummaryrefslogtreecommitdiffstats
path: root/files/qbsp/toolchain_installscript.qs
blob: 4afab71f716cdcd6b3be0f39830985da496d2146 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Boot to Qt meta layer.
**
** $QT_BEGIN_LICENSE:GPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 or (at your option) any later version
** approved by the KDE Free Qt Foundation. The licenses are as published by
** the Free Software Foundation and appearing in the file LICENSE.GPL3
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/

function Component()
{
}

Component.prototype.createOperations = function()
{
    component.createOperations();

    var device = "@MACHINE@"
    var platform = "@NAME@"
    var sysroot = "@SYSROOT@"
    var target_sys = "@TARGET_SYS@"
    var target = "@TARGET@"
    var abi = "@ABI@"
    var installPath = "@INSTALLPATH@/toolchain"
    var sdkPath = "@SDKPATH@"
    var sdkFile = "@SDKFILE@"

    var path = installer.value("TargetDir") + installPath;
    if (systemInfo.kernelType !== "winnt") {
        var script = path + "/" + sdkFile;
        component.addOperation("Execute", "{0}", "chmod", "+x", script);
        component.addOperation("Execute", "{0}", script, "-y", "-d", path, "UNDOEXECUTE", "rm", "-rf", path);
        component.addOperation("Execute", "{0}", "/bin/rm", script);
    } else {
        path = path.replace(/\\/g,"/");
        component.addOperation("Replace",
                                path + "/sysroots/i686-pokysdk-mingw32/usr/bin/qt.conf",
                                sdkPath, path);
    }
    var basecomponent = component.name.substring(0, component.name.lastIndexOf("."));
    var toolchainId = "ProjectExplorer.ToolChain.Gcc:" + component.name;
    var debuggerId = basecomponent + ".gdb";
    var qtId = basecomponent + ".qt";
    var icon = installer.value("B2QtDeviceIcon");
    var executableExt = "";
    var hostSysroot = "x86_64-pokysdk-linux";
    if (systemInfo.kernelType === "winnt") {
        executableExt = ".exe";
        hostSysroot = "i686-pokysdk-mingw32";
    }

    component.addOperation("Execute",
        ["@SDKToolBinary@", "addTC",
        "--id", toolchainId + ".gcc",
        "--name", "GCC (" + platform + " " + target + ")",
        "--path", path + "/sysroots/" + hostSysroot + "/usr/bin/" + target_sys + "/" + target_sys + "-gcc" + executableExt,
        "--abi", abi,
        "--language", "1",
        "UNDOEXECUTE",
        "@SDKToolBinary@", "rmTC", "--id", toolchainId + ".gcc"]);

    component.addOperation("Execute",
        ["@SDKToolBinary@", "addTC",
        "--id", toolchainId + ".g++",
        "--name", "G++ (" + platform + " " + target + ")",
        "--path", path + "/sysroots/" + hostSysroot + "/usr/bin/" + target_sys + "/" + target_sys + "-g++" + executableExt,
        "--abi", abi,
        "--language", "2",
        "UNDOEXECUTE",
        "@SDKToolBinary@", "rmTC", "--id", toolchainId + ".g++"]);

    component.addOperation("Execute",
        ["@SDKToolBinary@", "addDebugger",
        "--id", debuggerId,
        "--name", "GDB (" + platform + " " + target + ")",
        "--engine", "1",
        "--binary", path + "/sysroots/" + hostSysroot + "/usr/bin/" + target_sys + "/" + target_sys + "-gdb" + executableExt,
        "--abis", abi,
        "UNDOEXECUTE",
        "@SDKToolBinary@", "rmDebugger", "--id", debuggerId]);

    component.addOperation("Execute",
        ["@SDKToolBinary@", "addQt",
         "--id", qtId,
         "--name", platform + " " + target,
         "--type", "Qdb.EmbeddedLinuxQt",
         "--qmake", path + "/sysroots/" + hostSysroot + "/usr/bin/qmake" + executableExt,
         "UNDOEXECUTE",
         "@SDKToolBinary@", "rmQt", "--id", qtId]);

    component.addOperation("Execute",
        ["@SDKToolBinary@", "addKit",
         "--id", basecomponent,
         "--name", platform + " " + target,
         "--mkspec", "devices/linux-oe-generic-g++",
         "--qt", qtId,
         "--debuggerid", debuggerId,
         "--sysroot", path + "/sysroots/" + sysroot,
         "--devicetype", "QdbLinuxOsType",
         "--Ctoolchain", toolchainId + ".gcc",
         "--Cxxtoolchain", toolchainId + ".g++",
         "--icon", icon,
         "UNDOEXECUTE",
         "@SDKToolBinary@", "rmKit", "--id", basecomponent]);
}