Rafactor ARM modules to be compiled explicitly (without C file stub).
[bertos.git] / wizard / bertos.py
1 #!/usr/bin/env python
2 # encoding: utf-8
3 #
4 # Copyright 2008 Develer S.r.l. (http://www.develer.com/)
5 # All rights reserved.
6 #
7 # $Id$
8 #
9 # Author: Lorenzo Berni <duplo@develer.com>
10 #
11
12 import os
13 import sys
14 from distutils.dep_util import newer
15
16 from PyQt4.QtCore import *
17 from PyQt4.QtGui import *
18
19 import BProject
20
21 import BStartPage
22 import BWizard
23
24 from BFolderPage import BFolderPage
25 from BOpenPage import BOpenPage
26 from BVersionPage import BVersionPage
27 from BCpuPage import BCpuPage
28 from BToolchainPage import BToolchainPage
29 from BModulePage import BModulePage
30 from BOutputPage import BOutputPage
31 from BCreationPage import BCreationPage
32 from BFinalPage import BFinalPage
33
34 import bertos_utils
35
36 def newProject():
37     page_list = [BFolderPage, BVersionPage, BCpuPage, BToolchainPage, BModulePage, BOutputPage, BCreationPage, BFinalPage]
38     wizard = BWizard.BWizard(page_list)
39     wizard.show()
40     wizard.exec_()
41     
42 def editProject():
43     page_list = [BOpenPage, BVersionPage, BCpuPage, BToolchainPage, BModulePage, BOutputPage, BCreationPage, BFinalPage]
44     wizard = BWizard.BWizard(page_list)
45     wizard.show()
46     wizard.exec_()
47
48 def showStartPage():
49     QApplication.instance().dialog = BStartPage.BStartPage()
50     QApplication.instance().connect(QApplication.instance().dialog, SIGNAL("newProject"), newProject)
51     QApplication.instance().connect(QApplication.instance().dialog, SIGNAL("editProject"), editProject)
52     QApplication.instance().dialog.show()
53
54 def main():
55     os.chdir(os.path.dirname(os.path.abspath(sys.argv[0])))
56     app = QApplication(sys.argv)
57     app.settings = QSettings("Develer", "Bertos Configurator")
58     app.project = BProject.BProject()
59     # Development utility lines, to be removed for production
60     if not (hasattr(sys, "frozen") and sys.frozen) and newer("bertos.qrc", "bertos.rcc"):
61         os.system("rcc -binary bertos.qrc -o bertos.rcc")
62     QResource.registerResource("bertos.rcc")
63     if "--create" in sys.argv and "--edit" not in sys.argv:
64         newProject()
65     elif "--edit" in sys.argv and "--create" not in sys.argv:
66         editProject()
67     elif "--create" in sys.argv and "--edit" in sys.argv:
68         # TODO need an explaining message
69         print " ".join(sys.argv)
70         print "Invalid usage!"
71         pass
72     else:
73         showStartPage()
74         sys.exit(app.exec_())
75
76 if __name__ == '__main__':
77     main()
78