Add --define-var / -D to the cli opts for some commands
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15437
This commit is contained in:
parent
b542539546
commit
f357e79f77
|
@ -21,22 +21,38 @@
|
||||||
#ifndef JOB_H
|
#ifndef JOB_H
|
||||||
#define JOB_H
|
#define JOB_H
|
||||||
|
|
||||||
|
#include <map>
|
||||||
|
#include <wx/string.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An simple container class that lets us dispatch output jobs to kifaces
|
* An simple container class that lets us dispatch output jobs to kifaces
|
||||||
*/
|
*/
|
||||||
class JOB
|
class JOB
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
JOB( const std::string& aType, bool aIsCli ) : m_type( aType ), m_isCli( aIsCli ) {}
|
JOB( const std::string& aType, bool aIsCli ) :
|
||||||
|
m_type( aType ),
|
||||||
|
m_isCli( aIsCli ),
|
||||||
|
m_varOverrides()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
virtual ~JOB() {}
|
virtual ~JOB() {}
|
||||||
|
|
||||||
const std::string& GetType() const { return m_type; };
|
const std::string& GetType() const { return m_type; };
|
||||||
bool IsCli() const { return m_isCli; };
|
bool IsCli() const { return m_isCli; };
|
||||||
|
|
||||||
private:
|
const std::map<wxString, wxString>& GetVarOverrides() const { return m_varOverrides; }
|
||||||
|
|
||||||
|
void SetVarOverrides( const std::map<wxString, wxString>& aVarOverrides )
|
||||||
|
{
|
||||||
|
m_varOverrides = aVarOverrides;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
std::string m_type;
|
std::string m_type;
|
||||||
bool m_isCli;
|
bool m_isCli;
|
||||||
|
std::map<wxString, wxString> m_varOverrides;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -85,6 +85,21 @@ std::map<wxString, wxString>& PROJECT::GetTextVars() const
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void PROJECT::ApplyTextVars( const std::map<wxString, wxString>& aVarsMap )
|
||||||
|
{
|
||||||
|
if( aVarsMap.size() == 0 )
|
||||||
|
return;
|
||||||
|
|
||||||
|
std::map<wxString, wxString>& existingVarsMap = GetTextVars();
|
||||||
|
|
||||||
|
for( const auto& var : aVarsMap )
|
||||||
|
{
|
||||||
|
// create or update the existing vars
|
||||||
|
existingVarsMap[var.first] = var.second;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void PROJECT::setProjectFullName( const wxString& aFullPathAndName )
|
void PROJECT::setProjectFullName( const wxString& aFullPathAndName )
|
||||||
{
|
{
|
||||||
// Compare paths, rather than inodes, to be less surprising to the user.
|
// Compare paths, rather than inodes, to be less surprising to the user.
|
||||||
|
|
|
@ -134,6 +134,7 @@ int EESCHEMA_JOBS_HANDLER::JobExportPlot( JOB* aJob )
|
||||||
return CLI::EXIT_CODES::ERR_UNKNOWN;
|
return CLI::EXIT_CODES::ERR_UNKNOWN;
|
||||||
|
|
||||||
SCHEMATIC* sch = EESCHEMA_HELPERS::LoadSchematic( aPlotJob->m_filename, SCH_IO_MGR::SCH_KICAD );
|
SCHEMATIC* sch = EESCHEMA_HELPERS::LoadSchematic( aPlotJob->m_filename, SCH_IO_MGR::SCH_KICAD );
|
||||||
|
sch->Prj().ApplyTextVars( aJob->GetVarOverrides() );
|
||||||
|
|
||||||
if( sch == nullptr )
|
if( sch == nullptr )
|
||||||
{
|
{
|
||||||
|
@ -266,6 +267,7 @@ int EESCHEMA_JOBS_HANDLER::JobExportBom( JOB* aJob )
|
||||||
return CLI::EXIT_CODES::ERR_UNKNOWN;
|
return CLI::EXIT_CODES::ERR_UNKNOWN;
|
||||||
|
|
||||||
SCHEMATIC* sch = EESCHEMA_HELPERS::LoadSchematic( aBomJob->m_filename, SCH_IO_MGR::SCH_KICAD );
|
SCHEMATIC* sch = EESCHEMA_HELPERS::LoadSchematic( aBomJob->m_filename, SCH_IO_MGR::SCH_KICAD );
|
||||||
|
sch->Prj().ApplyTextVars( aJob->GetVarOverrides() );
|
||||||
|
|
||||||
if( sch == nullptr )
|
if( sch == nullptr )
|
||||||
{
|
{
|
||||||
|
@ -739,6 +741,7 @@ int EESCHEMA_JOBS_HANDLER::JobSchErc( JOB* aJob )
|
||||||
return CLI::EXIT_CODES::ERR_UNKNOWN;
|
return CLI::EXIT_CODES::ERR_UNKNOWN;
|
||||||
|
|
||||||
SCHEMATIC* sch = EESCHEMA_HELPERS::LoadSchematic( ercJob->m_filename, SCH_IO_MGR::SCH_KICAD );
|
SCHEMATIC* sch = EESCHEMA_HELPERS::LoadSchematic( ercJob->m_filename, SCH_IO_MGR::SCH_KICAD );
|
||||||
|
sch->Prj().ApplyTextVars( aJob->GetVarOverrides() );
|
||||||
|
|
||||||
if( sch == nullptr )
|
if( sch == nullptr )
|
||||||
{
|
{
|
||||||
|
@ -838,4 +841,4 @@ DS_PROXY_VIEW_ITEM* EESCHEMA_JOBS_HANDLER::getDrawingSheetProxyView( SCHEMATIC*
|
||||||
drawingSheet->SetSheetPath( "" );
|
drawingSheet->SetSheetPath( "" );
|
||||||
|
|
||||||
return drawingSheet;
|
return drawingSheet;
|
||||||
}
|
}
|
|
@ -62,6 +62,7 @@ public:
|
||||||
SCHEMATIC* aSch, const wxString& aDrawingSheetOverride = wxEmptyString );
|
SCHEMATIC* aSch, const wxString& aDrawingSheetOverride = wxEmptyString );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
int doSymExportSvg( JOB_SYM_EXPORT_SVG* aSvgJob, KIGFX::SCH_RENDER_SETTINGS* aRenderSettings,
|
int doSymExportSvg( JOB_SYM_EXPORT_SVG* aSvgJob, KIGFX::SCH_RENDER_SETTINGS* aRenderSettings,
|
||||||
LIB_SYMBOL* symbol );
|
LIB_SYMBOL* symbol );
|
||||||
|
|
||||||
|
|
|
@ -88,6 +88,11 @@ public:
|
||||||
|
|
||||||
virtual std::map<wxString, wxString>& GetTextVars() const;
|
virtual std::map<wxString, wxString>& GetTextVars() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Applies the given var map, it will create or update existing vars
|
||||||
|
*/
|
||||||
|
virtual void ApplyTextVars( const std::map<wxString, wxString>& aVarsMap );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the full path and name of the project.
|
* Return the full path and name of the project.
|
||||||
*
|
*
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
#include <cli/exit_codes.h>
|
#include <cli/exit_codes.h>
|
||||||
#include <wx/crt.h>
|
#include <wx/crt.h>
|
||||||
#include <macros.h>
|
#include <macros.h>
|
||||||
|
#include <string_utils.h>
|
||||||
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
|
@ -70,6 +71,28 @@ int CLI::COMMAND::Perform( KIWAY& aKiway )
|
||||||
m_argDrawingSheet = FROM_UTF8( m_argParser.get<std::string>( ARG_DRAWING_SHEET ).c_str() );
|
m_argDrawingSheet = FROM_UTF8( m_argParser.get<std::string>( ARG_DRAWING_SHEET ).c_str() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if( m_hasDefineArg )
|
||||||
|
{
|
||||||
|
auto defines = m_argParser.get<std::vector<std::string>>( ARG_DEFINE_VAR_LONG );
|
||||||
|
|
||||||
|
for( const std::string& def : defines )
|
||||||
|
{
|
||||||
|
wxString str = FROM_UTF8( def.c_str() );
|
||||||
|
wxArrayString bits;
|
||||||
|
wxStringSplit( str, bits, wxS( '=' ) );
|
||||||
|
|
||||||
|
if( bits.Count() == 2 )
|
||||||
|
{
|
||||||
|
m_argDefineVars[bits[0]] = bits[1];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return EXIT_CODES::ERR_ARGS;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return doPerform( aKiway );
|
return doPerform( aKiway );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,4 +142,16 @@ void CLI::COMMAND::addDrawingSheetArg()
|
||||||
m_argParser.add_argument( ARG_DRAWING_SHEET )
|
m_argParser.add_argument( ARG_DRAWING_SHEET )
|
||||||
.default_value( std::string() )
|
.default_value( std::string() )
|
||||||
.help( UTF8STDSTR( _( "Path to drawing sheet, this overrides any existing project defined sheet when used" ) ) );
|
.help( UTF8STDSTR( _( "Path to drawing sheet, this overrides any existing project defined sheet when used" ) ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CLI::COMMAND::addDefineArg()
|
||||||
|
{
|
||||||
|
m_hasDefineArg = true;
|
||||||
|
|
||||||
|
m_argParser.add_argument( ARG_DEFINE_VAR_LONG, ARG_DEFINE_VAR_SHORT )
|
||||||
|
.default_value( std::vector<std::string>() )
|
||||||
|
.help( UTF8STDSTR(
|
||||||
|
_( "Overrides or adds project variables, can be used multiple times to declare "
|
||||||
|
"multiple variables. Use in the format of '--define-var key=value'" ) ) );
|
||||||
}
|
}
|
|
@ -33,6 +33,8 @@
|
||||||
#define ARG_OUTPUT "--output"
|
#define ARG_OUTPUT "--output"
|
||||||
#define ARG_INPUT "input"
|
#define ARG_INPUT "input"
|
||||||
#define ARG_DRAWING_SHEET "--drawing-sheet"
|
#define ARG_DRAWING_SHEET "--drawing-sheet"
|
||||||
|
#define ARG_DEFINE_VAR_SHORT "-D"
|
||||||
|
#define ARG_DEFINE_VAR_LONG "--define-var"
|
||||||
|
|
||||||
namespace CLI
|
namespace CLI
|
||||||
{
|
{
|
||||||
|
@ -74,6 +76,11 @@ protected:
|
||||||
*/
|
*/
|
||||||
void addDrawingSheetArg();
|
void addDrawingSheetArg();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets up the drawing sheet arg used by many of the export commands
|
||||||
|
*/
|
||||||
|
void addDefineArg();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The internal handler that should be overloaded to implement command specific
|
* The internal handler that should be overloaded to implement command specific
|
||||||
* processing and work.
|
* processing and work.
|
||||||
|
@ -104,6 +111,11 @@ protected:
|
||||||
*/
|
*/
|
||||||
bool m_hasDrawingSheetArg;
|
bool m_hasDrawingSheetArg;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether or not the input arg was added for parsing
|
||||||
|
*/
|
||||||
|
bool m_hasDefineArg;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Whether or not the output arg is expecting a directory
|
* Whether or not the output arg is expecting a directory
|
||||||
*/
|
*/
|
||||||
|
@ -123,6 +135,11 @@ protected:
|
||||||
* Value of the drawing sheet arg if configured
|
* Value of the drawing sheet arg if configured
|
||||||
*/
|
*/
|
||||||
wxString m_argDrawingSheet;
|
wxString m_argDrawingSheet;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Value of the drawing sheet arg if configured
|
||||||
|
*/
|
||||||
|
std::map<wxString, wxString> m_argDefineVars;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,6 +36,7 @@ CLI::FP_EXPORT_SVG_COMMAND::FP_EXPORT_SVG_COMMAND() : PCB_EXPORT_BASE_COMMAND( "
|
||||||
m_argParser.add_description( UTF8STDSTR( _( "Exports the footprint or entire footprint library to SVG" ) ) );
|
m_argParser.add_description( UTF8STDSTR( _( "Exports the footprint or entire footprint library to SVG" ) ) );
|
||||||
|
|
||||||
addLayerArg( false );
|
addLayerArg( false );
|
||||||
|
addDefineArg();
|
||||||
|
|
||||||
m_argParser.add_argument( "-t", ARG_THEME )
|
m_argParser.add_argument( "-t", ARG_THEME )
|
||||||
.default_value( std::string() )
|
.default_value( std::string() )
|
||||||
|
@ -64,6 +65,7 @@ int CLI::FP_EXPORT_SVG_COMMAND::doPerform( KIWAY& aKiway )
|
||||||
svgJob->m_outputDirectory = m_argOutput;
|
svgJob->m_outputDirectory = m_argOutput;
|
||||||
svgJob->m_blackAndWhite = m_argParser.get<bool>( ARG_BLACKANDWHITE );
|
svgJob->m_blackAndWhite = m_argParser.get<bool>( ARG_BLACKANDWHITE );
|
||||||
svgJob->m_footprint = FROM_UTF8( m_argParser.get<std::string>( ARG_FOOTPRINT ).c_str() );
|
svgJob->m_footprint = FROM_UTF8( m_argParser.get<std::string>( ARG_FOOTPRINT ).c_str() );
|
||||||
|
svgJob->SetVarOverrides( m_argDefineVars );
|
||||||
|
|
||||||
if( !wxDir::Exists( svgJob->m_libraryPath ) )
|
if( !wxDir::Exists( svgJob->m_libraryPath ) )
|
||||||
{
|
{
|
||||||
|
|
|
@ -40,6 +40,7 @@
|
||||||
CLI::PCB_DRC_COMMAND::PCB_DRC_COMMAND() : COMMAND( "drc" )
|
CLI::PCB_DRC_COMMAND::PCB_DRC_COMMAND() : COMMAND( "drc" )
|
||||||
{
|
{
|
||||||
addCommonArgs( true, true, false );
|
addCommonArgs( true, true, false );
|
||||||
|
addDefineArg();
|
||||||
|
|
||||||
m_argParser.add_description( UTF8STDSTR( _( "Runs the Design Rules Check (DRC) on the PCB and creates a report" ) ) );
|
m_argParser.add_description( UTF8STDSTR( _( "Runs the Design Rules Check (DRC) on the PCB and creates a report" ) ) );
|
||||||
|
|
||||||
|
@ -81,10 +82,6 @@ CLI::PCB_DRC_COMMAND::PCB_DRC_COMMAND() : COMMAND( "drc" )
|
||||||
.help( UTF8STDSTR( _( "Return a exit code depending on whether or not violations exist" ) ) )
|
.help( UTF8STDSTR( _( "Return a exit code depending on whether or not violations exist" ) ) )
|
||||||
.implicit_value( true )
|
.implicit_value( true )
|
||||||
.default_value( false );
|
.default_value( false );
|
||||||
|
|
||||||
m_argParser.add_argument( "-o", ARG_OUTPUT )
|
|
||||||
.default_value( std::string() )
|
|
||||||
.help( UTF8STDSTR( _( "Output file name" ) ) );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -94,6 +91,7 @@ int CLI::PCB_DRC_COMMAND::doPerform( KIWAY& aKiway )
|
||||||
|
|
||||||
drcJob->m_outputFile = m_argOutput;
|
drcJob->m_outputFile = m_argOutput;
|
||||||
drcJob->m_filename = m_argInput;
|
drcJob->m_filename = m_argInput;
|
||||||
|
drcJob->SetVarOverrides( m_argDefineVars );
|
||||||
drcJob->m_reportAllTrackErrors = m_argParser.get<bool>( ARG_ALL_TRACK_ERRORS );
|
drcJob->m_reportAllTrackErrors = m_argParser.get<bool>( ARG_ALL_TRACK_ERRORS );
|
||||||
drcJob->m_exitCodeViolations = m_argParser.get<bool>( ARG_EXIT_CODE_VIOLATIONS );
|
drcJob->m_exitCodeViolations = m_argParser.get<bool>( ARG_EXIT_CODE_VIOLATIONS );
|
||||||
|
|
||||||
|
|
|
@ -53,6 +53,7 @@ CLI::PCB_EXPORT_3D_COMMAND::PCB_EXPORT_3D_COMMAND( const std::string& aName,
|
||||||
m_format( aFormat )
|
m_format( aFormat )
|
||||||
{
|
{
|
||||||
addCommonArgs( true, true, false );
|
addCommonArgs( true, true, false );
|
||||||
|
addDefineArg();
|
||||||
|
|
||||||
if( m_format == JOB_EXPORT_PCB_3D::FORMAT::UNKNOWN )
|
if( m_format == JOB_EXPORT_PCB_3D::FORMAT::UNKNOWN )
|
||||||
{
|
{
|
||||||
|
@ -161,6 +162,7 @@ int CLI::PCB_EXPORT_3D_COMMAND::doPerform( KIWAY& aKiway )
|
||||||
step->m_filename = m_argInput;
|
step->m_filename = m_argInput;
|
||||||
step->m_outputFile = m_argOutput;
|
step->m_outputFile = m_argOutput;
|
||||||
step->m_format = m_format;
|
step->m_format = m_format;
|
||||||
|
step->SetVarOverrides( m_argDefineVars );
|
||||||
|
|
||||||
if( step->m_format == JOB_EXPORT_PCB_3D::FORMAT::UNKNOWN )
|
if( step->m_format == JOB_EXPORT_PCB_3D::FORMAT::UNKNOWN )
|
||||||
{
|
{
|
||||||
|
|
|
@ -37,6 +37,7 @@ CLI::PCB_EXPORT_DXF_COMMAND::PCB_EXPORT_DXF_COMMAND() : PCB_EXPORT_BASE_COMMAND(
|
||||||
{
|
{
|
||||||
addLayerArg( true );
|
addLayerArg( true );
|
||||||
addDrawingSheetArg();
|
addDrawingSheetArg();
|
||||||
|
addDefineArg();
|
||||||
|
|
||||||
m_argParser.add_argument( "--erd", ARG_EXCLUDE_REFDES )
|
m_argParser.add_argument( "--erd", ARG_EXCLUDE_REFDES )
|
||||||
.help( UTF8STDSTR( _( "Exclude the reference designator text" ) ) )
|
.help( UTF8STDSTR( _( "Exclude the reference designator text" ) ) )
|
||||||
|
@ -75,6 +76,7 @@ int CLI::PCB_EXPORT_DXF_COMMAND::doPerform( KIWAY& aKiway )
|
||||||
dxfJob->m_filename = m_argInput;
|
dxfJob->m_filename = m_argInput;
|
||||||
dxfJob->m_outputFile = m_argOutput;
|
dxfJob->m_outputFile = m_argOutput;
|
||||||
dxfJob->m_drawingSheet = m_argDrawingSheet;
|
dxfJob->m_drawingSheet = m_argDrawingSheet;
|
||||||
|
dxfJob->SetVarOverrides( m_argDefineVars );
|
||||||
|
|
||||||
if( !wxFile::Exists( dxfJob->m_filename ) )
|
if( !wxFile::Exists( dxfJob->m_filename ) )
|
||||||
{
|
{
|
||||||
|
|
|
@ -36,6 +36,7 @@ CLI::PCB_EXPORT_GERBER_COMMAND::PCB_EXPORT_GERBER_COMMAND( const std::string& aN
|
||||||
{
|
{
|
||||||
addLayerArg( true );
|
addLayerArg( true );
|
||||||
addDrawingSheetArg();
|
addDrawingSheetArg();
|
||||||
|
addDefineArg();
|
||||||
|
|
||||||
m_argParser.add_description( UTF8STDSTR( _( "Plot given layers to a single gerber file" ) ) );
|
m_argParser.add_description( UTF8STDSTR( _( "Plot given layers to a single gerber file" ) ) );
|
||||||
|
|
||||||
|
@ -101,6 +102,7 @@ int CLI::PCB_EXPORT_GERBER_COMMAND::populateJob( JOB_EXPORT_PCB_GERBER* aJob )
|
||||||
aJob->m_filename = m_argInput;
|
aJob->m_filename = m_argInput;
|
||||||
aJob->m_outputFile = m_argOutput;
|
aJob->m_outputFile = m_argOutput;
|
||||||
aJob->m_drawingSheet = m_argDrawingSheet;
|
aJob->m_drawingSheet = m_argDrawingSheet;
|
||||||
|
aJob->SetVarOverrides( m_argDefineVars );
|
||||||
|
|
||||||
aJob->m_plotFootprintValues = !m_argParser.get<bool>( ARG_EXCLUDE_VALUE );
|
aJob->m_plotFootprintValues = !m_argParser.get<bool>( ARG_EXCLUDE_VALUE );
|
||||||
aJob->m_plotRefDes = !m_argParser.get<bool>( ARG_EXCLUDE_REFDES );
|
aJob->m_plotRefDes = !m_argParser.get<bool>( ARG_EXCLUDE_REFDES );
|
||||||
|
|
|
@ -39,6 +39,7 @@ CLI::PCB_EXPORT_GERBERS_COMMAND::PCB_EXPORT_GERBERS_COMMAND() :
|
||||||
{
|
{
|
||||||
m_requireLayers = false;
|
m_requireLayers = false;
|
||||||
addDrawingSheetArg();
|
addDrawingSheetArg();
|
||||||
|
addDefineArg();
|
||||||
|
|
||||||
m_argParser.add_description( UTF8STDSTR( _( "Plot multiple gerbers for a PCB, including the "
|
m_argParser.add_description( UTF8STDSTR( _( "Plot multiple gerbers for a PCB, including the "
|
||||||
"ability to use stored board plot settings" ) ) );
|
"ability to use stored board plot settings" ) ) );
|
||||||
|
|
|
@ -37,6 +37,7 @@ CLI::PCB_EXPORT_PDF_COMMAND::PCB_EXPORT_PDF_COMMAND() : PCB_EXPORT_BASE_COMMAND(
|
||||||
{
|
{
|
||||||
addLayerArg( true );
|
addLayerArg( true );
|
||||||
addDrawingSheetArg();
|
addDrawingSheetArg();
|
||||||
|
addDefineArg();
|
||||||
|
|
||||||
m_argParser.add_argument( "-m", ARG_MIRROR )
|
m_argParser.add_argument( "-m", ARG_MIRROR )
|
||||||
.help( UTF8STDSTR( _( "Mirror the board (useful for trying to show bottom layers)" ) ) )
|
.help( UTF8STDSTR( _( "Mirror the board (useful for trying to show bottom layers)" ) ) )
|
||||||
|
@ -92,6 +93,7 @@ int CLI::PCB_EXPORT_PDF_COMMAND::doPerform( KIWAY& aKiway )
|
||||||
pdfJob->m_filename = m_argInput;
|
pdfJob->m_filename = m_argInput;
|
||||||
pdfJob->m_outputFile = m_argOutput;
|
pdfJob->m_outputFile = m_argOutput;
|
||||||
pdfJob->m_drawingSheet = m_argDrawingSheet;
|
pdfJob->m_drawingSheet = m_argDrawingSheet;
|
||||||
|
pdfJob->SetVarOverrides( m_argDefineVars );
|
||||||
|
|
||||||
if( !wxFile::Exists( pdfJob->m_filename ) )
|
if( !wxFile::Exists( pdfJob->m_filename ) )
|
||||||
{
|
{
|
||||||
|
|
|
@ -40,6 +40,7 @@ CLI::PCB_EXPORT_SVG_COMMAND::PCB_EXPORT_SVG_COMMAND() : PCB_EXPORT_BASE_COMMAND(
|
||||||
{
|
{
|
||||||
addLayerArg( true );
|
addLayerArg( true );
|
||||||
addDrawingSheetArg();
|
addDrawingSheetArg();
|
||||||
|
addDefineArg();
|
||||||
|
|
||||||
m_argParser.add_argument( "-m", ARG_MIRROR )
|
m_argParser.add_argument( "-m", ARG_MIRROR )
|
||||||
.help( UTF8STDSTR( _( "Mirror the board (useful for trying to show bottom layers)" ) ) )
|
.help( UTF8STDSTR( _( "Mirror the board (useful for trying to show bottom layers)" ) ) )
|
||||||
|
@ -98,6 +99,7 @@ int CLI::PCB_EXPORT_SVG_COMMAND::doPerform( KIWAY& aKiway )
|
||||||
svgJob->m_outputFile = m_argOutput;
|
svgJob->m_outputFile = m_argOutput;
|
||||||
svgJob->m_colorTheme = FROM_UTF8( m_argParser.get<std::string>( ARG_THEME ).c_str() );
|
svgJob->m_colorTheme = FROM_UTF8( m_argParser.get<std::string>( ARG_THEME ).c_str() );
|
||||||
svgJob->m_plotDrawingSheet = !m_argParser.get<bool>( ARG_EXCLUDE_DRAWING_SHEET );
|
svgJob->m_plotDrawingSheet = !m_argParser.get<bool>( ARG_EXCLUDE_DRAWING_SHEET );
|
||||||
|
svgJob->SetVarOverrides( m_argDefineVars );
|
||||||
|
|
||||||
if( !wxFile::Exists( svgJob->m_filename ) )
|
if( !wxFile::Exists( svgJob->m_filename ) )
|
||||||
{
|
{
|
||||||
|
|
|
@ -39,6 +39,7 @@
|
||||||
CLI::SCH_ERC_COMMAND::SCH_ERC_COMMAND() : COMMAND( "erc" )
|
CLI::SCH_ERC_COMMAND::SCH_ERC_COMMAND() : COMMAND( "erc" )
|
||||||
{
|
{
|
||||||
addCommonArgs( true, true, false );
|
addCommonArgs( true, true, false );
|
||||||
|
addDefineArg();
|
||||||
|
|
||||||
m_argParser.add_description( UTF8STDSTR( _( "Runs the Electrical Rules Check (ERC) on the schematic and creates a report" ) ) );
|
m_argParser.add_description( UTF8STDSTR( _( "Runs the Electrical Rules Check (ERC) on the schematic and creates a report" ) ) );
|
||||||
|
|
||||||
|
@ -75,10 +76,6 @@ CLI::SCH_ERC_COMMAND::SCH_ERC_COMMAND() : COMMAND( "erc" )
|
||||||
.help( UTF8STDSTR( _( "Return a exit code depending on whether or not violations exist" ) ) )
|
.help( UTF8STDSTR( _( "Return a exit code depending on whether or not violations exist" ) ) )
|
||||||
.implicit_value( true )
|
.implicit_value( true )
|
||||||
.default_value( false );
|
.default_value( false );
|
||||||
|
|
||||||
m_argParser.add_argument( "-o", ARG_OUTPUT )
|
|
||||||
.default_value( std::string() )
|
|
||||||
.help( UTF8STDSTR( _( "Output file name" ) ) );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -89,6 +86,7 @@ int CLI::SCH_ERC_COMMAND::doPerform( KIWAY& aKiway )
|
||||||
ercJob->m_outputFile = m_argOutput;
|
ercJob->m_outputFile = m_argOutput;
|
||||||
ercJob->m_filename = m_argInput;
|
ercJob->m_filename = m_argInput;
|
||||||
ercJob->m_exitCodeViolations = m_argParser.get<bool>( ARG_EXIT_CODE_VIOLATIONS );
|
ercJob->m_exitCodeViolations = m_argParser.get<bool>( ARG_EXIT_CODE_VIOLATIONS );
|
||||||
|
ercJob->SetVarOverrides( m_argDefineVars );
|
||||||
|
|
||||||
if( m_argParser.get<bool>( ARG_SEVERITY_ALL ) )
|
if( m_argParser.get<bool>( ARG_SEVERITY_ALL ) )
|
||||||
{
|
{
|
||||||
|
|
|
@ -48,6 +48,7 @@ CLI::SCH_EXPORT_PLOT_COMMAND::SCH_EXPORT_PLOT_COMMAND( const std::string& aName,
|
||||||
{
|
{
|
||||||
addCommonArgs( true, true, aOutputIsDir );
|
addCommonArgs( true, true, aOutputIsDir );
|
||||||
addDrawingSheetArg();
|
addDrawingSheetArg();
|
||||||
|
addDefineArg();
|
||||||
|
|
||||||
m_argParser.add_argument( "-t", ARG_THEME )
|
m_argParser.add_argument( "-t", ARG_THEME )
|
||||||
.default_value( std::string() )
|
.default_value( std::string() )
|
||||||
|
@ -114,6 +115,7 @@ int CLI::SCH_EXPORT_PLOT_COMMAND::doPerform( KIWAY& aKiway )
|
||||||
settings.m_outputFile = m_argOutput;
|
settings.m_outputFile = m_argOutput;
|
||||||
|
|
||||||
plotJob->m_drawingSheet = m_argDrawingSheet;
|
plotJob->m_drawingSheet = m_argDrawingSheet;
|
||||||
|
plotJob->SetVarOverrides( m_argDefineVars );
|
||||||
|
|
||||||
// HPGL local options
|
// HPGL local options
|
||||||
if( m_plotFormat == PLOT_FORMAT::HPGL )
|
if( m_plotFormat == PLOT_FORMAT::HPGL )
|
||||||
|
|
|
@ -98,6 +98,7 @@ int PCBNEW_JOBS_HANDLER::JobExportStep( JOB* aJob )
|
||||||
m_reporter->Report( _( "Loading board\n" ), RPT_SEVERITY_INFO );
|
m_reporter->Report( _( "Loading board\n" ), RPT_SEVERITY_INFO );
|
||||||
|
|
||||||
BOARD* brd = LoadBoard( aStepJob->m_filename );
|
BOARD* brd = LoadBoard( aStepJob->m_filename );
|
||||||
|
brd->GetProject()->ApplyTextVars( aJob->GetVarOverrides() );
|
||||||
|
|
||||||
if( aStepJob->m_format == JOB_EXPORT_PCB_3D::FORMAT::VRML )
|
if( aStepJob->m_format == JOB_EXPORT_PCB_3D::FORMAT::VRML )
|
||||||
{
|
{
|
||||||
|
@ -201,6 +202,7 @@ int PCBNEW_JOBS_HANDLER::JobExportSvg( JOB* aJob )
|
||||||
|
|
||||||
BOARD* brd = LoadBoard( aSvgJob->m_filename );
|
BOARD* brd = LoadBoard( aSvgJob->m_filename );
|
||||||
loadOverrideDrawingSheet( brd, aSvgJob->m_drawingSheet );
|
loadOverrideDrawingSheet( brd, aSvgJob->m_drawingSheet );
|
||||||
|
brd->GetProject()->ApplyTextVars( aJob->GetVarOverrides() );
|
||||||
|
|
||||||
if( aJob->IsCli() )
|
if( aJob->IsCli() )
|
||||||
{
|
{
|
||||||
|
@ -226,6 +228,7 @@ int PCBNEW_JOBS_HANDLER::JobExportDxf( JOB* aJob )
|
||||||
|
|
||||||
BOARD* brd = LoadBoard( aDxfJob->m_filename );
|
BOARD* brd = LoadBoard( aDxfJob->m_filename );
|
||||||
loadOverrideDrawingSheet( brd, aDxfJob->m_drawingSheet );
|
loadOverrideDrawingSheet( brd, aDxfJob->m_drawingSheet );
|
||||||
|
brd->GetProject()->ApplyTextVars( aJob->GetVarOverrides() );
|
||||||
|
|
||||||
if( aDxfJob->m_outputFile.IsEmpty() )
|
if( aDxfJob->m_outputFile.IsEmpty() )
|
||||||
{
|
{
|
||||||
|
@ -282,6 +285,7 @@ int PCBNEW_JOBS_HANDLER::JobExportPdf( JOB* aJob )
|
||||||
|
|
||||||
BOARD* brd = LoadBoard( aPdfJob->m_filename );
|
BOARD* brd = LoadBoard( aPdfJob->m_filename );
|
||||||
loadOverrideDrawingSheet( brd, aPdfJob->m_drawingSheet );
|
loadOverrideDrawingSheet( brd, aPdfJob->m_drawingSheet );
|
||||||
|
brd->GetProject()->ApplyTextVars( aJob->GetVarOverrides() );
|
||||||
|
|
||||||
if( aPdfJob->m_outputFile.IsEmpty() )
|
if( aPdfJob->m_outputFile.IsEmpty() )
|
||||||
{
|
{
|
||||||
|
@ -478,6 +482,7 @@ int PCBNEW_JOBS_HANDLER::JobExportGerber( JOB* aJob )
|
||||||
m_reporter->Report( _( "Loading board\n" ), RPT_SEVERITY_INFO );
|
m_reporter->Report( _( "Loading board\n" ), RPT_SEVERITY_INFO );
|
||||||
|
|
||||||
BOARD* brd = LoadBoard( aGerberJob->m_filename );
|
BOARD* brd = LoadBoard( aGerberJob->m_filename );
|
||||||
|
brd->GetProject()->ApplyTextVars( aJob->GetVarOverrides() );
|
||||||
|
|
||||||
if( aGerberJob->m_outputFile.IsEmpty() )
|
if( aGerberJob->m_outputFile.IsEmpty() )
|
||||||
{
|
{
|
||||||
|
@ -854,6 +859,7 @@ int PCBNEW_JOBS_HANDLER::doFpExportSvg( JOB_FP_EXPORT_SVG* aSvgJob, const FOOTPR
|
||||||
// until we refactor better plot api later
|
// until we refactor better plot api later
|
||||||
std::unique_ptr<BOARD> brd;
|
std::unique_ptr<BOARD> brd;
|
||||||
brd.reset( CreateEmptyBoard() );
|
brd.reset( CreateEmptyBoard() );
|
||||||
|
brd->GetProject()->ApplyTextVars( aSvgJob->GetVarOverrides() );
|
||||||
|
|
||||||
FOOTPRINT* fp = dynamic_cast<FOOTPRINT*>( aFootprint->Clone() );
|
FOOTPRINT* fp = dynamic_cast<FOOTPRINT*>( aFootprint->Clone() );
|
||||||
|
|
||||||
|
@ -914,6 +920,7 @@ int PCBNEW_JOBS_HANDLER::JobExportDrc( JOB* aJob )
|
||||||
m_reporter->Report( _( "Loading board\n" ), RPT_SEVERITY_INFO );
|
m_reporter->Report( _( "Loading board\n" ), RPT_SEVERITY_INFO );
|
||||||
|
|
||||||
BOARD* brd = LoadBoard( drcJob->m_filename );
|
BOARD* brd = LoadBoard( drcJob->m_filename );
|
||||||
|
brd->GetProject()->ApplyTextVars( aJob->GetVarOverrides() );
|
||||||
|
|
||||||
if( drcJob->m_outputFile.IsEmpty() )
|
if( drcJob->m_outputFile.IsEmpty() )
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue