aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/blackbox/testdata/dynamic-project/dynamic-project.qbs
blob: 5acdb8892c1f943c7c86bdfc154e2a01364dab1f (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
import qbs.File
import qbs.FileInfo
import qbs.TextFile

Project
{
    Probe
    {
        id: projectBuilder
        property stringList refs: []
        property string sourceDir: sourceDirectory

        configure:
        {
            var tempDir = FileInfo.joinPaths(sourceDir, "temp");
            File.makePath(tempDir);
            var srcDir = FileInfo.joinPaths(sourceDir, "src");
            var projectDirs = File.directoryEntries(srcDir, File.Dirs | File.NoDotAndDotDot);
            var list = [];
            for (var it = 0; it < projectDirs.length; ++it) {
                var name = projectDirs[it];
                var productSrcDir = FileInfo.joinPaths(srcDir, name);
                var productFilePath = FileInfo.joinPaths(tempDir, name + ".qbs");
                var file = new TextFile(productFilePath, TextFile.WriteOnly);
                try {
                    file.writeLine("CppApplication");
                    file.writeLine("{");
                    file.writeLine("\tfiles: [ \"" + productSrcDir + "/*.cpp\" ]");
                    file.writeLine("}");
                } finally {
                    file.close();
                }
                list.push(productFilePath);
            }
            found = true;
            refs = list;
        }
    }

    references: projectBuilder.refs
}