import os import subprocess import urllib.request import shutil CONAN_VERSION = '2.0.10' CONAN_ROOT = os.path.dirname(os.path.abspath(__file__)) # Remove and recreate build directory BUILD_DIR=os.path.join(CONAN_ROOT, 'build') os.system(f"rmdir /s /q {BUILD_DIR} > nul 2>&1") os.makedirs(BUILD_DIR) os.chdir(BUILD_DIR) # Build Conan with PyInstaller conan_dir = os.path.join(BUILD_DIR, 'conan_src') subprocess.check_call(['git', 'clone', 'https://github.com/conan-io/conan', conan_dir]) subprocess.check_call(['git', 'checkout', CONAN_VERSION], cwd=conan_dir) subprocess.check_call(['pip', 'install', '-e', conan_dir]) subprocess.check_call(['python', 'pyinstaller.py'], cwd=conan_dir) conan_exe = os.path.join(conan_dir, 'pyinstaller', 'dist', 'conan', 'conan.exe') subprocess.check_call([conan_exe, '--version']) # Add Sectigo CA certificates to Conan CA certificates cacert_sectigo=os.path.join(CONAN_ROOT, 'conan_synchrotron-soleil_fr_interm.cer') cacert=os.path.join(conan_dir, 'pyinstaller', 'dist', 'conan', 'certifi', 'cacert.pem') with open(cacert_sectigo, 'r') as f1: with open(cacert, 'a') as f2: f2.write(f1.read()) # Make archive shutil.make_archive(os.path.join(BUILD_DIR, f'conan-{CONAN_VERSION}-windows-i386'), 'zip', os.path.join(conan_dir, 'pyinstaller', 'dist', 'conan'))