projects
/
mass-build.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
First working prototype of auto-debuild integration
[mass-build.git]
/
kdebuildpy.py
diff --git
a/kdebuildpy.py
b/kdebuildpy.py
index 3fd5812579751eb08e3ad6e111c791109b30a601..4363bd44c60e308c90dd5de4bb01d9439c2d28ba 100755
(executable)
--- a/
kdebuildpy.py
+++ b/
kdebuildpy.py
@@
-22,14
+22,14
@@
parser.add_argument("modules", metavar='MODULE', nargs='*',
args = parser.parse_args()
# load config
args = parser.parse_args()
# load config
-config = imp.load_source('config', args.config)
+config = imp.load_source('config', args.config)
.__dict__
os.remove(args.config+'c') # remove compiled python file
projects = OrderedDict() # all projects
workProjects = [] # projects we work on
# an entire Project
class Project:
os.remove(args.config+'c') # remove compiled python file
projects = OrderedDict() # all projects
workProjects = [] # projects we work on
# an entire Project
class Project:
- def __init__(self, folder, module):
+ def __init__(self,
config,
folder, module):
self.folder = folder
self.name = module['name']
# VCS
self.folder = folder
self.name = module['name']
# VCS
@@
-41,17
+41,20
@@
class Project:
else:
raise Exception("Unknown VCS type "+vcsName)
# build system
else:
raise Exception("Unknown VCS type "+vcsName)
# build system
- buildSystemName = module.get('build-system', 'cmake')
- if buildSystemName == 'cmake':
- self.buildSystem = build_system.CMake(self.sourceFolder(), self.buildFolder(), config)
+ if config.get('buildDeb', False):
+ self.buildSystem = build_system.AutoDebuild(self.sourceFolder(), module, self.vcs, config)
else:
else:
- raise Exception("Unknown build system type "+buildSystemName)
+ buildSystemName = module.get('build-system', 'cmake')
+ if buildSystemName == 'cmake':
+ self.buildSystem = build_system.CMake(self.sourceFolder(), self.buildFolder(), config)
+ else:
+ raise Exception("Unknown build system type "+buildSystemName)
def sourceFolder(self):
return os.path.join(self.folder, self.name)
def buildFolder(self):
def sourceFolder(self):
return os.path.join(self.folder, self.name)
def buildFolder(self):
- return os.path.join(config
.buildDir
, self.sourceFolder())
+ return os.path.join(config
['buildDir']
, self.sourceFolder())
# return the position of the given item in the list
def findInList(list, item):
# return the position of the given item in the list
def findInList(list, item):
@@
-61,17
+64,17
@@
def findInList(list, item):
raise Exception("%s not found in list" % str(item))
# populate list of projects
raise Exception("%s not found in list" % str(item))
# populate list of projects
-def loadProjects(modules, folder=''):
+def loadProjects(
config,
modules, folder=''):
for module in modules:
if 'folder' in module: # a subpath
for module in modules:
if 'folder' in module: # a subpath
- loadProjects(module['modules'], os.path.join(folder, module['folder']))
+ loadProjects(
config,
module['modules'], os.path.join(folder, module['folder']))
else: # a proper project
if module['name'] in projects:
raise Exception("Duplicate module name "+module['name'])
else: # a proper project
if module['name'] in projects:
raise Exception("Duplicate module name "+module['name'])
- projects[module['name']] = Project(folder, module)
+ projects[module['name']] = Project(
config,
folder, module)
# now check what we have to do
# now check what we have to do
-loadProjects(config
.modules
)
+loadProjects(config
, config['modules']
)
if args.modules:
if args.resume_from is not None:
raise Exception("Can not use --resume-from and manually specify modules")
if args.modules:
if args.resume_from is not None:
raise Exception("Can not use --resume-from and manually specify modules")
@@
-93,11
+96,15
@@
for project in workProjects:
try:
for phase in args.phases:
if phase == 'update':
try:
for phase in args.phases:
if phase == 'update':
+ print "Updating",project.sourceFolder()
project.vcs.update()
elif phase == 'configure':
project.vcs.update()
elif phase == 'configure':
+ print "Configuring",project.sourceFolder()
project.buildSystem.configure(force=args.reconfigure)
elif phase == 'compile':
project.buildSystem.configure(force=args.reconfigure)
elif phase == 'compile':
+ print "Compiling",project.sourceFolder()
project.buildSystem.build()
project.buildSystem.build()
+ print "Installing",project.sourceFolder()
project.buildSystem.install()
else:
raise Exception("Invalid phase "+phase)
project.buildSystem.install()
else:
raise Exception("Invalid phase "+phase)