#conan create . novoline/stable from conans import ConanFile, CMake, tools, MSBuild import yaml import os import glob import shutil import subprocess import csv from io import StringIO from pathlib import Path class {{package_name}}Conan(ConanFile): license = "© Copyright 2020 | Inspired Entertainment, Inc." url = "https://bitbucket.ingg.com/projects/NOV/repos/multipackage_repos/browse" #description = "" topics = ("gds", "multipackage", "novoline") settings = "os", "compiler", "build_type", "arch" pkg_folder_name = "NovoLine.MultiSystem.Base.Pkg" scm = { "type": "git", "url": "auto", "revision": "auto", } def requirements(self): self.requires("gds-tool/1.0.6@novoline/stable") def copy__(self, file, src, dst, fromSrc=False): os.makedirs(dst, exist_ok=True) srcFullPath = '' if fromSrc: srcFullPath = os.path.join(self.pkg_folder_name, src, file) shutil.copy(srcFullPath, dst) else: srcFullPath = os.path.join(src, file) self.copy(file, src=src, dst=dst) dstFullPath = os.path.join(dst, file) if not Path(dstFullPath).is_file(): raise FileNotFoundError(f'{srcFullPath} {dst}') def imports(self): MODULE_DIR = 'DIR/' DST_DIR = f'{MODULE_DIR}/bin_enc' os.makedirs(os.path.dirname(MODULE_DIR), exist_ok=True) shutil.copy(f"{pkg_folder_name}/{MODULE_DIR}.nsi",MODULE_DIR) self.copy("*", src="gds") def run_command(self, command): data = StringIO(command) reader = csv.reader(data, delimiter=' ') args = list(reader) print(args) ret = subprocess.run(args[0]).returncode if ret != 0: raise Exception(f"Error: {command}") def build(self): #use single quote outside and double quotes inside self.run_command(f'python createGdsPackage.py --pname "{self.name}" --pver "{self.version}" --pfolder "{pkg_folder_name}" --btype "{self.settings.build_type}"') def package(self): self.copy("*.gds", src=f"outputs") def set_version(self): self.version = "{{version}}" def set_name(self): self.name = "{{name}}"