#! /usr/bin/python import argparse import json import os import subprocess import sys def runcmd(command): print('RUN ' + command) process = subprocess.Popen(command, stdout=subprocess.PIPE, shell=True) for line in iter(process.stdout.readline, b''): # b'' indicates EOF print(line.decode('utf-8'), end='') def load_environment(filename): with open(filename) as f: return json.load(f) parser = argparse.ArgumentParser() parser.add_argument('--environment') args = parser.parse_args() environment = load_environment(args.environment) env_build_type = environment["build_type"] env_cppstd = environment["cppstd"] env_conan_remote_fallback = environment["conan_remote_fallback"] env_conan_remote_upload = environment["conan_remote_upload"] with open('CMakeLists.txt', 'w') as fp: pass runcmd('conan remote remove conancenter') runcmd('conan remote add conan-upload ' + env_conan_remote_upload) runcmd('conan remote add conan-remote ' + env_conan_remote_fallback) runcmd('conan install . -of build -s compiler.cppstd=' + env_cppstd + ' -s build_type=' + env_build_type + ' --build=*') sys.exit(0)