OSDN Git Service

Merge branch '2.4' into 2.5
[qt-creator-jp/qt-creator-jp.git] / qtcreator.qbp
1 import qbs.base 1.0
2 import qbs.fileinfo 1.0 as FileInfo
3
4 Project {
5     property string ide_version_major: '2'
6     property string ide_version_minor: '4'
7     property string ide_version_release: '82'
8     property string qtcreator_version: ide_version_major + '.' + ide_version_minor + '.' + ide_version_release
9     property var additionalCppDefines: [ 'IDE_LIBRARY_BASENAME="lib"' ]
10     moduleSearchPaths: "qbs"
11
12     references: [
13         "lib/qtcreator/qtcomponents/qtcomponents.qbs",
14         "share/share.qbs",
15         "src/libs/3rdparty/botan/botan.qbs",
16         "src/libs/aggregation/aggregation.qbs",
17         "src/libs/cplusplus/cplusplus.qbs",
18         "src/libs/extensionsystem/extensionsystem.qbs",
19         "src/libs/glsl/glsl.qbs",
20         "src/libs/languageutils/languageutils.qbs",
21         "src/libs/qmleditorwidgets/qmleditorwidgets.qbs",
22         "src/libs/qmljs/qmljs.qbs",
23         "src/libs/qmljsdebugclient/qmljsdebugclient.qbs",
24         "src/libs/qtcomponents/styleitem/styleitem.qbs",
25         "src/libs/symbianutils/symbianutils.qbs",
26         "src/libs/utils/utils.qbs",
27         "src/libs/zeroconf/zeroconf.qbs",
28         "src/plugins/analyzerbase/analyzerbase.qbs",
29         "src/plugins/bazaar/bazaar.qbs",
30         "src/plugins/bineditor/bineditor.qbs",
31         "src/plugins/bookmarks/bookmarks.qbs",
32         "src/plugins/classview/classview.qbs",
33         "src/plugins/cmakeprojectmanager/cmakeprojectmanager.qbs",
34         "src/plugins/coreplugin/coreplugin.qbs",
35         "src/plugins/cpaster/cpaster.qbs",
36         "src/plugins/cppeditor/cppeditor.qbs",
37         "src/plugins/cpptools/cpptools.qbs",
38         "src/plugins/cvs/cvs.qbs",
39         "src/plugins/debugger/debugger.qbs",
40         "src/plugins/designer/designer.qbs",
41         "src/plugins/fakevim/fakevim.qbs",
42         "src/plugins/find/find.qbs",
43         "src/plugins/genericprojectmanager/genericprojectmanager.qbs",
44         "src/plugins/git/git.qbs",
45         "src/plugins/glsleditor/glsleditor.qbs",
46         "src/plugins/helloworld/helloworld.qbs",
47         "src/plugins/help/help.qbs",
48         "src/plugins/imageviewer/imageviewer.qbs",
49         "src/plugins/locator/locator.qbs",
50         "src/plugins/macros/macros.qbs",
51         "src/plugins/madde/madde.qbs",
52         "src/plugins/mercurial/mercurial.qbs",
53         "src/plugins/perforce/perforce.qbs",
54         "src/plugins/projectexplorer/projectexplorer.qbs",
55         "src/plugins/qmldesigner/qmldesigner.qbs",
56         "src/plugins/qmljseditor/qmljseditor.qbs",
57         "src/plugins/qmljsinspector/qmljsinspector.qbs",
58         "src/plugins/qmljstools/qmljstools.qbs",
59         "src/plugins/qmlprofiler/qmlprofiler.qbs",
60         "src/plugins/qmlprojectmanager/qmlprojectmanager.qbs",
61         "src/plugins/qt4projectmanager/qt4projectmanager.qbs",
62         "src/plugins/qtsupport/qtsupport.qbs",
63         "src/plugins/remotelinux/remotelinux.qbs",
64         "src/plugins/resourceeditor/resourceeditor.qbs",
65         "src/plugins/subversion/subversion.qbs",
66         "src/plugins/tasklist/tasklist.qbs",
67         "src/plugins/texteditor/texteditor.qbs",
68         "src/plugins/todo/todo.qbs",
69         "src/plugins/valgrind/valgrind.qbs",
70         "src/plugins/vcsbase/vcsbase.qbs",
71         "src/plugins/welcome/welcome.qbs",
72     ]
73
74     Product {
75         name: "app_version_header"
76         type: "hpp"
77         files: "src/app/app_version.h.in"
78         property string ide_version_major: project.ide_version_major
79         property string ide_version_minor: project.ide_version_minor
80         property string ide_version_release: project.ide_version_release
81         property string qtcreator_version: project.qtcreator_version
82
83         Transformer {
84             inputs: ["src/app/app_version.h.in"]
85             Artifact {
86                 fileName: "app/app_version.h"
87                 fileTags: "hpp"
88             }
89             prepare: {
90                 var cmd = new JavaScriptCommand();
91                 cmd.description = "generating app_version.h";
92                 cmd.highlight = "codegen";
93                 cmd.qtcreator_version = product.qtcreator_version;
94                 cmd.ide_version_major = product.ide_version_major;
95                 cmd.ide_version_minor = product.ide_version_minor;
96                 cmd.ide_version_release = product.ide_version_release;
97                 cmd.onWindows = (product.modules.qbs.targetOS == "windows");
98                 cmd.sourceCode = function() {
99                     var file = new TextFile(input.fileName);
100                     var content = file.readAll();
101                     // replace quoted quotes
102                     content = content.replace(/\\\"/g, "\"");
103                     // replace Windows line endings
104                     if (onWindows)
105                         content = content.replace(/\r\n/g, "\n");
106                     // replace the magic qmake incantations
107                     content = content.replace(/(\n#define IDE_VERSION) .+\n/, "$1 " + qtcreator_version + "\n");
108                     content = content.replace(/(\n#define IDE_VERSION_MAJOR) .+\n/, "$1 " + ide_version_major + "\n")
109                     content = content.replace(/(\n#define IDE_VERSION_MINOR) .+\n/, "$1 " + ide_version_minor + "\n")
110                     content = content.replace(/(\n#define IDE_VERSION_RELEASE) .+\n/, "$1 " + ide_version_release + "\n")
111                     file = new TextFile(output.fileName, TextFile.WriteOnly);
112                     file.truncate();
113                     file.write(content);
114                     file.close();
115                 }
116                 return cmd;
117             }
118         }
119     }
120
121     Product {
122         name: "qtcreator"
123         type: ["application", "installed_content"]
124         destination: "bin"
125
126         cpp.rpaths: ["$ORIGIN/../lib"]
127         cpp.defines: project.additionalCppDefines
128         cpp.includePaths: [
129             "src",
130             "src/libs",
131             "src/shared/qtsingleapplication",
132             "src/shared/qtlockedfile",
133             buildDirectory
134         ]
135
136         Depends { name: "app_version_header" }
137         Depends { name: "cpp" }
138         Depends { name: "Qt"; submodules: ["gui", "network"] }
139         Depends { name: "Utils" }
140         Depends { name: "ExtensionSystem" }
141
142         files: [
143             "src/app/main.cpp",
144             "src/shared/qtsingleapplication/qtsingleapplication.h",
145             "src/shared/qtsingleapplication/qtsingleapplication.cpp",
146             "src/shared/qtsingleapplication/qtlocalpeer.h",
147             "src/shared/qtsingleapplication/qtlocalpeer.cpp",
148             "src/shared/qtlockedfile/qtlockedfile.cpp"
149         ]
150
151         Group {
152             files: "bin/qtcreator.sh"
153             fileTags: "install"
154             qbs.installDir: "bin"
155         }
156
157         Group {
158            condition: qbs.targetOS == "linux" || qbs.targetOS == "macx"
159            files: [
160                "src/shared/qtlockedfile/qtlockedfile_unix.cpp"
161            ]
162         }
163
164         Group {
165            condition: qbs.targetOS == "windows"
166            files: [
167                "src/shared/qtlockedfile/qtlockedfile_win.cpp"
168            ]
169         }
170     }
171 }
172