Added support to load pcbnew from nightly.

This commit is contained in:
Salvador E. Tropea 2020-09-21 19:14:31 -03:00
parent 27e4c23236
commit ed7eae0338
2 changed files with 20 additions and 4 deletions

View File

@ -39,6 +39,11 @@ class GS(object):
today = n.strftime('%Y-%m-%d')
time = n.strftime('%H-%M-%S')
kicad_version = ''
# KiCad version: major*1e6+minor*1e3+patch
kicad_version_n = 0
kicad_version_major = 0
kicad_version_minor = 0
kicad_version_patch = 0
board_comps_joined = False # Flag to indicate we already merged data from the board
# Data from the SCH because it doesn't have a Python API
sch_title = None

View File

@ -12,15 +12,17 @@ Main KiBot code
import os
import re
from sys import exit
from sys import path as sys_path
from shutil import which
from subprocess import run, PIPE, call
from glob import glob
from distutils.version import StrictVersion
from importlib.util import (spec_from_file_location, module_from_spec)
from .gs import (GS)
from .gs import GS
from .misc import (PLOT_ERROR, NO_PCBNEW_MODULE, MISSING_TOOL, CMD_EESCHEMA_DO, URL_EESCHEMA_DO, CORRUPTED_PCB,
EXIT_BAD_ARGS, CORRUPTED_SCH, EXIT_BAD_CONFIG, WRONG_INSTALL)
EXIT_BAD_ARGS, CORRUPTED_SCH, EXIT_BAD_CONFIG, WRONG_INSTALL, UI_SMD, UI_VIRTUAL, KICAD_VERSION_5_99,
MOD_SMD, MOD_THROUGH_HOLE, MOD_VIRTUAL)
from .error import PlotError, KiPlotConfigurationError, config_error, trace_dump
from .pre_base import BasePreFlight
from .kicad.v5_sch import Schematic, SchFileError
@ -30,8 +32,10 @@ from . import log
logger = log.get_logger(__name__)
# Cache to avoid running external many times to check their versions
script_versions = {}
# Check if we have to run the nightly KiCad build
if os.environ.get('KIAUS_USE_NIGHTLY'):
# Path to the Python module
sys_path.insert(0, '/usr/lib/kicad-nightly/lib/python3/dist-packages')
try:
import pcbnew
except ImportError: # pragma: no cover
@ -40,6 +44,13 @@ except ImportError: # pragma: no cover
" Is KiCad installed?"
" Do you need to add it to PYTHONPATH?")
exit(NO_PCBNEW_MODULE)
m = re.match(r'(\d+)\.(\d+)\.(\d+)', pcbnew.GetBuildVersion())
GS.kicad_version_major = int(m.group(1))
GS.kicad_version_minor = int(m.group(2))
GS.kicad_version_patch = int(m.group(3))
GS.kicad_version_n = GS.kicad_version_major*1000000+GS.kicad_version_minor*1000+GS.kicad_version_patch
logger.debug('Detected KiCad v{}.{}.{} ({})'.format(GS.kicad_version_major, GS.kicad_version_minor,
GS.kicad_version_patch, GS.kicad_version_n))
def _import(name, path):