make minimum CMake version configurable; fixes #109

This commit is contained in:
Radovan Bast 2015-09-06 14:08:45 +02:00
parent 51bdac40e2
commit 704de471eb

View File

@ -180,22 +180,16 @@ def gen_setup(config, relative_path):
# ------------------------------------------------------------------------------
def gen_cmakelists(config, relative_path, modules):
def gen_cmakelists(project_name, minimum_required_version, relative_path, modules):
"""
Generate CMakeLists.txt.
"""
if not config.has_option('project', 'name'):
sys.stderr.write("ERROR: you have to specify the project name\n")
sys.stderr.write(" in autocmake.cfg under [project]\n")
sys.exit(-1)
project_name = config.get('project', 'name')
s = []
s.append(autogenerated_notice())
s.append('\n# set minimum cmake version')
s.append('cmake_minimum_required(VERSION 2.8 FATAL_ERROR)')
s.append('cmake_minimum_required(VERSION %s FATAL_ERROR)' % minimum_required_version)
s.append('\n# project name')
s.append('project(%s)' % project_name)
@ -355,6 +349,18 @@ def main(argv):
config = RawConfigParser(dict_type=OrderedDict)
config.read('autocmake.cfg')
if not config.has_option('project', 'name'):
sys.stderr.write("ERROR: you have to specify the project name\n")
sys.stderr.write(" in autocmake.cfg under [project]\n")
sys.exit(-1)
project_name = config.get('project', 'name')
if not config.has_option('project', 'minimum_required_version'):
sys.stderr.write("ERROR: you have to specify the minimum_required_version for CMake\n")
sys.stderr.write(" in autocmake.cfg under [project]\n")
sys.exit(-1)
minimum_required_version = config.get('project', 'minimum_required_version')
# get relative path from setup.py script to this directory
relative_path = os.path.relpath(os.path.abspath('.'), project_root)
@ -363,7 +369,7 @@ def main(argv):
# create CMakeLists.txt
print('- generating CMakeLists.txt')
s = gen_cmakelists(config, relative_path, modules)
s = gen_cmakelists(project_name, minimum_required_version, relative_path, modules)
with open(os.path.join(project_root, 'CMakeLists.txt'), 'w') as f:
f.write('%s\n' % '\n'.join(s))