Force jobs to be instantiated in kicommon

This is important since these get passed between modules at runtime
This commit is contained in:
Marek Roszko 2023-09-16 21:02:33 -04:00
parent d3e5517bfb
commit 2de38f8d75
37 changed files with 710 additions and 239 deletions

View File

@ -69,6 +69,25 @@ add_library( singletop STATIC EXCLUDE_FROM_ALL
set( KICOMMON_SRCS
gal/color4d.cpp
jobs/job.cpp
jobs/job_export_pcb_drill.cpp
jobs/job_export_pcb_dxf.cpp
jobs/job_export_pcb_gerber.cpp
jobs/job_export_pcb_gerbers.cpp
jobs/job_export_pcb_pdf.cpp
jobs/job_export_pcb_pos.cpp
jobs/job_export_pcb_svg.cpp
jobs/job_export_pcb_3d.cpp
jobs/job_export_sch_bom.cpp
jobs/job_export_sch_netlist.cpp
jobs/job_export_sch_pythonbom.cpp
jobs/job_fp_export_svg.cpp
jobs/job_fp_upgrade.cpp
jobs/job_pcb_drc.cpp
jobs/job_sch_erc.cpp
jobs/job_sym_export_svg.cpp
jobs/job_sym_upgrade.cpp
asset_archive.cpp
array_axis.cpp
array_options.cpp

28
common/jobs/job.cpp Normal file
View File

@ -0,0 +1,28 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2023 Mark Roszko <mark.roszko@gmail.com>
* Copyright (C) 2023 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <jobs/job.h>
JOB::JOB( const std::string& aType, bool aIsCli ) :
m_type( aType ),
m_isCli( aIsCli ),
m_varOverrides()
{
}

View File

@ -21,21 +21,17 @@
#ifndef JOB_H
#define JOB_H
#include <kicommon.h>
#include <map>
#include <wx/string.h>
/**
* An simple container class that lets us dispatch output jobs to kifaces
*/
class JOB
class KICOMMON_API JOB
{
public:
JOB( const std::string& aType, bool aIsCli ) :
m_type( aType ),
m_isCli( aIsCli ),
m_varOverrides()
{
}
JOB( const std::string& aType, bool aIsCli );
virtual ~JOB() {}

View File

@ -0,0 +1,47 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2023 Mark Roszko <mark.roszko@gmail.com>
* Copyright (C) 2023 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <jobs/job_export_pcb_3d.h>
JOB_EXPORT_PCB_3D::JOB_EXPORT_PCB_3D( bool aIsCli ) :
JOB( "3d", aIsCli ),
m_overwrite( false ),
m_useGridOrigin( false ),
m_useDrillOrigin( false ),
m_hasUserOrigin( false ),
m_boardOnly( false ),
m_includeUnspecified( false ),
m_includeDNP( false ),
m_substModels( false ),
m_filename(),
m_outputFile(),
m_xOrigin( 0.0 ),
m_yOrigin( 0.0 ),
// max dist to chain 2 items (lines or curves) to build the board outlines
m_BoardOutlinesChainingEpsilon( 0.01 ), // 0.01 mm is a good value
m_exportTracks( false ), // Extremely time consuming if true
m_exportZones( false ), // Extremely time consuming if true
m_format( JOB_EXPORT_PCB_3D::FORMAT::UNKNOWN ),
m_vrmlUnits( JOB_EXPORT_PCB_3D::VRML_UNITS::METERS ),
m_vrmlModelDir( wxEmptyString ),
m_vrmlRelativePaths( false )
{
}

View File

@ -21,36 +21,14 @@
#ifndef JOB_EXPORT_STEP_H
#define JOB_EXPORT_STEP_H
#include <kicommon.h>
#include <wx/string.h>
#include "job.h"
class JOB_EXPORT_PCB_3D : public JOB
class KICOMMON_API JOB_EXPORT_PCB_3D : public JOB
{
public:
JOB_EXPORT_PCB_3D( bool aIsCli ) :
JOB( "3d", aIsCli ),
m_overwrite( false ),
m_useGridOrigin( false ),
m_useDrillOrigin( false ),
m_hasUserOrigin( false ),
m_boardOnly( false ),
m_includeUnspecified( false ),
m_includeDNP( false ),
m_substModels( false ),
m_filename(),
m_outputFile(),
m_xOrigin( 0.0 ),
m_yOrigin( 0.0 ),
// max dist to chain 2 items (lines or curves) to build the board outlines
m_BoardOutlinesChainingEpsilon( 0.01 ), // 0.01 mm is a good value
m_exportTracks( false ), // Extremely time consuming if true
m_exportZones( false ), // Extremely time consuming if true
m_format( JOB_EXPORT_PCB_3D::FORMAT::UNKNOWN ),
m_vrmlUnits( JOB_EXPORT_PCB_3D::VRML_UNITS::METERS ),
m_vrmlModelDir( wxEmptyString ),
m_vrmlRelativePaths( false )
{
}
JOB_EXPORT_PCB_3D( bool aIsCli );
enum class FORMAT
{

View File

@ -0,0 +1,39 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2023 Mark Roszko <mark.roszko@gmail.com>
* Copyright (C) 2023 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <jobs/job_export_pcb_drill.h>
JOB_EXPORT_PCB_DRILL::JOB_EXPORT_PCB_DRILL( bool aIsCli ) :
JOB( "drill", aIsCli ),
m_filename(),
m_outputDir(),
m_excellonMirrorY( false ),
m_excellonMinimalHeader( false ),
m_excellonCombinePTHNPTH( true ),
m_excellonOvalDrillRoute( false ),
m_format( DRILL_FORMAT::EXCELLON ),
m_drillOrigin( DRILL_ORIGIN::ABS ),
m_drillUnits( DRILL_UNITS::INCHES ),
m_zeroFormat( ZEROS_FORMAT::DECIMAL ),
m_mapFormat( MAP_FORMAT::PDF ),
m_gerberPrecision( 5 ),
m_generateMap( false )
{
}

View File

@ -21,30 +21,15 @@
#ifndef JOB_EXPORT_PCB_DRILL_H
#define JOB_EXPORT_PCB_DRILL_H
#include <kicommon.h>
#include <layer_ids.h>
#include <wx/string.h>
#include "job.h"
class JOB_EXPORT_PCB_DRILL : public JOB
class KICOMMON_API JOB_EXPORT_PCB_DRILL : public JOB
{
public:
JOB_EXPORT_PCB_DRILL( bool aIsCli ) :
JOB( "drill", aIsCli ),
m_filename(),
m_outputDir(),
m_excellonMirrorY( false ),
m_excellonMinimalHeader( false ),
m_excellonCombinePTHNPTH( true ),
m_excellonOvalDrillRoute( false ),
m_format( DRILL_FORMAT::EXCELLON ),
m_drillOrigin( DRILL_ORIGIN::ABS ),
m_drillUnits( DRILL_UNITS::INCHES ),
m_zeroFormat( ZEROS_FORMAT::DECIMAL ),
m_mapFormat( MAP_FORMAT::PDF ),
m_gerberPrecision( 5 ),
m_generateMap( false )
{
}
JOB_EXPORT_PCB_DRILL( bool aIsCli );
wxString m_filename;
wxString m_outputDir;

View File

@ -0,0 +1,36 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2023 Mark Roszko <mark.roszko@gmail.com>
* Copyright (C) 2023 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <jobs/job_export_pcb_dxf.h>
JOB_EXPORT_PCB_DXF::JOB_EXPORT_PCB_DXF( bool aIsCli ) :
JOB( "dxf", aIsCli ),
m_filename(),
m_outputFile(),
m_drawingSheet(),
m_plotFootprintValues( true ),
m_plotRefDes( true ),
m_plotGraphicItemsUsingContours( true ),
m_plotBorderTitleBlocks( false ),
m_dxfUnits( DXF_UNITS::INCHES ),
m_printMaskLayer()
{
}

View File

@ -21,26 +21,15 @@
#ifndef JOB_EXPORT_PCB_DXF_H
#define JOB_EXPORT_PCB_DXF_H
#include <kicommon.h>
#include <layer_ids.h>
#include <wx/string.h>
#include "job.h"
class JOB_EXPORT_PCB_DXF : public JOB
class KICOMMON_API JOB_EXPORT_PCB_DXF : public JOB
{
public:
JOB_EXPORT_PCB_DXF( bool aIsCli ) :
JOB( "dxf", aIsCli ),
m_filename(),
m_outputFile(),
m_drawingSheet(),
m_plotFootprintValues( true ),
m_plotRefDes( true ),
m_plotGraphicItemsUsingContours( true ),
m_plotBorderTitleBlocks( false ),
m_dxfUnits( DXF_UNITS::INCHES ),
m_printMaskLayer()
{
}
JOB_EXPORT_PCB_DXF( bool aIsCli );
enum class DXF_UNITS
{

View File

@ -0,0 +1,47 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2023 Mark Roszko <mark.roszko@gmail.com>
* Copyright (C) 2023 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <jobs/job_export_pcb_gerber.h>
JOB_EXPORT_PCB_GERBER::JOB_EXPORT_PCB_GERBER( const std::string& aType, bool aIsCli ) :
JOB( aType, aIsCli ),
m_filename(),
m_outputFile(),
m_drawingSheet(),
m_plotFootprintValues( true ),
m_plotRefDes( true ),
m_plotBorderTitleBlocks( false ),
m_subtractSolderMaskFromSilk( false ),
m_includeNetlistAttributes( true ),
m_useX2Format( true ),
m_disableApertureMacros( false ),
m_useAuxOrigin( false ),
m_useProtelFileExtension( true ),
m_precision( 5 ),
m_printMaskLayer()
{
}
JOB_EXPORT_PCB_GERBER::JOB_EXPORT_PCB_GERBER( bool aIsCli ) :
JOB_EXPORT_PCB_GERBER( "gerber", aIsCli )
{
}

View File

@ -21,36 +21,16 @@
#ifndef JOB_EXPORT_PCB_GERBER_H
#define JOB_EXPORT_PCB_GERBER_H
#include <kicommon.h>
#include <layer_ids.h>
#include <wx/string.h>
#include "job.h"
class JOB_EXPORT_PCB_GERBER : public JOB
class KICOMMON_API JOB_EXPORT_PCB_GERBER : public JOB
{
public:
JOB_EXPORT_PCB_GERBER( const std::string& aType, bool aIsCli ) :
JOB( aType, aIsCli ),
m_filename(),
m_outputFile(),
m_drawingSheet(),
m_plotFootprintValues( true ),
m_plotRefDes( true ),
m_plotBorderTitleBlocks( false ),
m_subtractSolderMaskFromSilk( false ),
m_includeNetlistAttributes( true ),
m_useX2Format( true ),
m_disableApertureMacros( false ),
m_useAuxOrigin( false ),
m_useProtelFileExtension( true ),
m_precision( 5 ),
m_printMaskLayer()
{
}
JOB_EXPORT_PCB_GERBER( bool aIsCli ) :
JOB_EXPORT_PCB_GERBER( "gerber", aIsCli )
{
}
JOB_EXPORT_PCB_GERBER( const std::string& aType, bool aIsCli );
JOB_EXPORT_PCB_GERBER( bool aIsCli );
wxString m_filename;
wxString m_outputFile;

View File

@ -0,0 +1,30 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2023 Mark Roszko <mark.roszko@gmail.com>
* Copyright (C) 2023 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <jobs/job_export_pcb_gerbers.h>
JOB_EXPORT_PCB_GERBERS::JOB_EXPORT_PCB_GERBERS( bool aIsCli ) :
JOB_EXPORT_PCB_GERBER( "gerbers", aIsCli ),
m_layersIncludeOnAll(),
m_layersIncludeOnAllSet( false ),
m_useBoardPlotParams( false )
{
}

View File

@ -21,21 +21,16 @@
#ifndef JOB_EXPORT_PCB_GERBERS_H
#define JOB_EXPORT_PCB_GERBERS_H
#include <kicommon.h>
#include "job_export_pcb_gerber.h"
#include <layer_ids.h>
#include <wx/string.h>
#include "job.h"
class JOB_EXPORT_PCB_GERBERS : public JOB_EXPORT_PCB_GERBER
class KICOMMON_API JOB_EXPORT_PCB_GERBERS : public JOB_EXPORT_PCB_GERBER
{
public:
JOB_EXPORT_PCB_GERBERS( bool aIsCli ) :
JOB_EXPORT_PCB_GERBER( "gerbers", aIsCli ),
m_layersIncludeOnAll(),
m_layersIncludeOnAllSet( false ),
m_useBoardPlotParams( false )
{
}
JOB_EXPORT_PCB_GERBERS( bool aIsCli );
LSET m_layersIncludeOnAll;

View File

@ -0,0 +1,39 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2023 Mark Roszko <mark.roszko@gmail.com>
* Copyright (C) 2023 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <jobs/job_export_pcb_pdf.h>
JOB_EXPORT_PCB_PDF::JOB_EXPORT_PCB_PDF( bool aIsCli ) :
JOB( "pdf", aIsCli ),
m_filename(),
m_outputFile(),
m_colorTheme(),
m_drawingSheet(),
m_mirror( false ),
m_blackAndWhite( false ),
m_negative( false ),
m_plotFootprintValues( true ),
m_plotRefDes( true ),
m_plotBorderTitleBlocks( false ),
m_printMaskLayer(),
m_drillShapeOption( 2 )
{
}

View File

@ -21,29 +21,16 @@
#ifndef JOB_EXPORT_PCB_PDF_H
#define JOB_EXPORT_PCB_PDF_H
#include <kicommon.h>
#include <kicommon.h>
#include <layer_ids.h>
#include <wx/string.h>
#include "job.h"
class JOB_EXPORT_PCB_PDF : public JOB
class KICOMMON_API JOB_EXPORT_PCB_PDF : public JOB
{
public:
JOB_EXPORT_PCB_PDF( bool aIsCli ) :
JOB( "pdf", aIsCli ),
m_filename(),
m_outputFile(),
m_colorTheme(),
m_drawingSheet(),
m_mirror( false ),
m_blackAndWhite( false ),
m_negative( false ),
m_plotFootprintValues( true ),
m_plotRefDes( true ),
m_plotBorderTitleBlocks( false ),
m_printMaskLayer(),
m_drillShapeOption( 2 )
{
}
JOB_EXPORT_PCB_PDF( bool aIsCli );
wxString m_filename;
wxString m_outputFile;

View File

@ -0,0 +1,38 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2023 Mark Roszko <mark.roszko@gmail.com>
* Copyright (C) 2023 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <jobs/job_export_pcb_pos.h>
JOB_EXPORT_PCB_POS::JOB_EXPORT_PCB_POS( bool aIsCli ) :
JOB( "pos", aIsCli ),
m_filename(),
m_outputFile(),
m_useDrillPlaceFileOrigin( true ),
m_smdOnly( false ),
m_excludeFootprintsWithTh( false ),
m_excludeDNP( false ),
m_negateBottomX( false )
{
m_side = SIDE::BOTH;
m_units = UNITS::MILLIMETERS;
m_format = FORMAT::ASCII;
m_gerberBoardEdge = true;
}

View File

@ -21,28 +21,15 @@
#ifndef JOB_EXPORT_PCB_POS_H
#define JOB_EXPORT_PCB_POS_H
#include <kicommon.h>
#include <layer_ids.h>
#include <wx/string.h>
#include "job.h"
class JOB_EXPORT_PCB_POS : public JOB
class KICOMMON_API JOB_EXPORT_PCB_POS : public JOB
{
public:
JOB_EXPORT_PCB_POS( bool aIsCli ) :
JOB( "pos", aIsCli ),
m_filename(),
m_outputFile(),
m_useDrillPlaceFileOrigin( true ),
m_smdOnly( false ),
m_excludeFootprintsWithTh( false ),
m_excludeDNP( false ),
m_negateBottomX( false )
{
m_side = SIDE::BOTH;
m_units = UNITS::MILLIMETERS;
m_format = FORMAT::ASCII;
m_gerberBoardEdge = true;
}
JOB_EXPORT_PCB_POS( bool aIsCli );
wxString m_filename;
wxString m_outputFile;

View File

@ -0,0 +1,38 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2023 Mark Roszko <mark.roszko@gmail.com>
* Copyright (C) 2023 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <jobs/job_export_pcb_svg.h>
JOB_EXPORT_PCB_SVG::JOB_EXPORT_PCB_SVG( bool aIsCli ) :
JOB( "svg", aIsCli ),
m_filename(),
m_outputFile(),
m_colorTheme(),
m_drawingSheet(),
m_mirror( false ),
m_blackAndWhite( false ),
m_negative( false ),
m_plotDrawingSheet( true ),
m_pageSizeMode( 0 ),
m_printMaskLayer(),
m_drillShapeOption( 2 )
{
}

View File

@ -21,28 +21,15 @@
#ifndef JOB_EXPORT_PCB_SVG_H
#define JOB_EXPORT_PCB_SVG_H
#include <kicommon.h>
#include <layer_ids.h>
#include <wx/string.h>
#include "job.h"
class JOB_EXPORT_PCB_SVG : public JOB
class KICOMMON_API JOB_EXPORT_PCB_SVG : public JOB
{
public:
JOB_EXPORT_PCB_SVG( bool aIsCli ) :
JOB( "svg", aIsCli ),
m_filename(),
m_outputFile(),
m_colorTheme(),
m_drawingSheet(),
m_mirror( false ),
m_blackAndWhite( false ),
m_negative( false ),
m_plotDrawingSheet( true ),
m_pageSizeMode( 0 ),
m_printMaskLayer(),
m_drillShapeOption( 2 )
{
}
JOB_EXPORT_PCB_SVG( bool aIsCli );
wxString m_filename;
wxString m_outputFile;

View File

@ -0,0 +1,44 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2023 Mark Roszko <mark.roszko@gmail.com>
* Copyright (C) 2023 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <jobs/job_export_sch_bom.h>
JOB_EXPORT_SCH_BOM::JOB_EXPORT_SCH_BOM( bool aIsCli ) :
JOB( "bom", aIsCli ),
m_filename(),
m_outputFile(),
m_fieldDelimiter(),
m_stringDelimiter(),
m_refDelimiter(),
m_refRangeDelimiter(),
m_keepTabs( false ),
m_keepLineBreaks( false ),
m_fieldsOrdered(),
m_fieldsLabels(),
m_fieldsGroupBy(),
m_sortField(),
m_sortAsc( true ),
m_filterString(),
m_excludeDNP( false )
{
}

View File

@ -21,33 +21,14 @@
#ifndef JOB_EXPORT_SCH_BOM_H
#define JOB_EXPORT_SCH_BOM_H
#include <kicommon.h>
#include <wx/string.h>
#include "job.h"
class JOB_EXPORT_SCH_BOM : public JOB
class KICOMMON_API JOB_EXPORT_SCH_BOM : public JOB
{
public:
JOB_EXPORT_SCH_BOM( bool aIsCli ) :
JOB( "bom", aIsCli ),
m_filename(),
m_outputFile(),
m_fieldDelimiter(),
m_stringDelimiter(),
m_refDelimiter(),
m_refRangeDelimiter(),
m_keepTabs( false ),
m_keepLineBreaks( false ),
m_fieldsOrdered(),
m_fieldsLabels(),
m_fieldsGroupBy(),
m_sortField(),
m_sortAsc( true ),
m_filterString(),
m_excludeDNP( false )
{
}
JOB_EXPORT_SCH_BOM( bool aIsCli );
// Basic options
wxString m_filename;

View File

@ -0,0 +1,30 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2023 Mark Roszko <mark.roszko@gmail.com>
* Copyright (C) 2023 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <jobs/job_export_sch_netlist.h>
JOB_EXPORT_SCH_NETLIST::JOB_EXPORT_SCH_NETLIST( bool aIsCli ) :
JOB( "netlist", aIsCli ),
m_filename(),
m_outputFile()
{
format = FORMAT::KICADSEXPR;
}

View File

@ -21,19 +21,14 @@
#ifndef JOB_EXPORT_SCH_NETLIST_H
#define JOB_EXPORT_SCH_NETLIST_H
#include <kicommon.h>
#include <wx/string.h>
#include "job.h"
class JOB_EXPORT_SCH_NETLIST : public JOB
class KICOMMON_API JOB_EXPORT_SCH_NETLIST : public JOB
{
public:
JOB_EXPORT_SCH_NETLIST( bool aIsCli ) :
JOB( "netlist", aIsCli ),
m_filename(),
m_outputFile()
{
format = FORMAT::KICADSEXPR;
}
JOB_EXPORT_SCH_NETLIST( bool aIsCli );
wxString m_filename;
wxString m_outputFile;

View File

@ -0,0 +1,29 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2023 Mark Roszko <mark.roszko@gmail.com>
* Copyright (C) 2023 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <jobs/job_export_sch_pythonbom.h>
JOB_EXPORT_SCH_PYTHONBOM::JOB_EXPORT_SCH_PYTHONBOM( bool aIsCli ) :
JOB( "pythonbom", aIsCli ),
m_filename(),
m_outputFile()
{
}

View File

@ -21,18 +21,14 @@
#ifndef JOB_EXPORT_SCH_PYTHONBOM_H
#define JOB_EXPORT_SCH_PYTHONBOM_H
#include <kicommon.h>
#include <wx/string.h>
#include "job.h"
class JOB_EXPORT_SCH_PYTHONBOM : public JOB
class KICOMMON_API JOB_EXPORT_SCH_PYTHONBOM : public JOB
{
public:
JOB_EXPORT_SCH_PYTHONBOM( bool aIsCli ) :
JOB( "pythonbom", aIsCli ),
m_filename(),
m_outputFile()
{
}
JOB_EXPORT_SCH_PYTHONBOM( bool aIsCli );
wxString m_filename;
wxString m_outputFile;

View File

@ -0,0 +1,31 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2023 Mark Roszko <mark.roszko@gmail.com>
* Copyright (C) 2023 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <jobs/job_fp_export_svg.h>
JOB_FP_EXPORT_SVG::JOB_FP_EXPORT_SVG( bool aIsCli ) :
JOB( "fpsvg", aIsCli ),
m_libraryPath(),
m_footprint(),
m_outputDirectory(),
m_blackAndWhite( false )
{
}

View File

@ -21,20 +21,15 @@
#ifndef JOB_FP_EXPORT_SVG_H
#define JOB_FP_EXPORT_SVG_H
#include <kicommon.h>
#include <layer_ids.h>
#include <wx/string.h>
#include "job.h"
class JOB_FP_EXPORT_SVG : public JOB
class KICOMMON_API JOB_FP_EXPORT_SVG : public JOB
{
public:
JOB_FP_EXPORT_SVG( bool aIsCli ) :
JOB( "fpsvg", aIsCli ),
m_libraryPath(),
m_footprint(),
m_outputDirectory(),
m_blackAndWhite( false )
{
}
JOB_FP_EXPORT_SVG( bool aIsCli );
wxString m_libraryPath;
wxString m_footprint;

View File

@ -0,0 +1,30 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2023 Mark Roszko <mark.roszko@gmail.com>
* Copyright (C) 2023 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <jobs/job_fp_upgrade.h>
JOB_FP_UPGRADE::JOB_FP_UPGRADE( bool aIsCli ) :
JOB( "fpupgrade", aIsCli ),
m_libraryPath(),
m_outputLibraryPath(),
m_force( false )
{
}

View File

@ -21,19 +21,14 @@
#ifndef JOB_FP_UPGRADE_H
#define JOB_FP_UPGRADE_H
#include <kicommon.h>
#include <wx/string.h>
#include "job.h"
class JOB_FP_UPGRADE : public JOB
class KICOMMON_API JOB_FP_UPGRADE : public JOB
{
public:
JOB_FP_UPGRADE( bool aIsCli ) :
JOB( "fpupgrade", aIsCli ),
m_libraryPath(),
m_outputLibraryPath(),
m_force( false )
{
}
JOB_FP_UPGRADE( bool aIsCli );
wxString m_libraryPath;
wxString m_outputLibraryPath;

View File

@ -0,0 +1,33 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2023 Mark Roszko <mark.roszko@gmail.com>
* Copyright (C) 2023 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <jobs/job_pcb_drc.h>
JOB_PCB_DRC::JOB_PCB_DRC( bool aIsCli ) :
JOB( "drc", aIsCli ),
m_filename(),
m_reportAllTrackErrors( false ),
m_units( JOB_PCB_DRC::UNITS::MILLIMETERS ),
m_severity( RPT_SEVERITY_ERROR | RPT_SEVERITY_WARNING ),
m_format( OUTPUT_FORMAT::REPORT ),
m_exitCodeViolations( false )
{
}

View File

@ -21,24 +21,16 @@
#ifndef JOB_PCB_DRC_H
#define JOB_PCB_DRC_H
#include <kicommon.h>
#include <layer_ids.h>
#include <wx/string.h>
#include <widgets/report_severity.h>
#include "job.h"
class JOB_PCB_DRC : public JOB
class KICOMMON_API JOB_PCB_DRC : public JOB
{
public:
JOB_PCB_DRC( bool aIsCli ) :
JOB( "drc", aIsCli ),
m_filename(),
m_reportAllTrackErrors( false ),
m_units( JOB_PCB_DRC::UNITS::MILLIMETERS ),
m_severity( RPT_SEVERITY_ERROR | RPT_SEVERITY_WARNING ),
m_format( OUTPUT_FORMAT::REPORT ),
m_exitCodeViolations( false )
{
}
JOB_PCB_DRC( bool aIsCli );
wxString m_filename;
wxString m_outputFile;

View File

@ -0,0 +1,32 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2023 Mark Roszko <mark.roszko@gmail.com>
* Copyright (C) 2023 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <jobs/job_sch_erc.h>
JOB_SCH_ERC::JOB_SCH_ERC( bool aIsCli ) :
JOB( "erc", aIsCli ),
m_filename(),
m_units( JOB_SCH_ERC::UNITS::MILLIMETERS ),
m_severity( RPT_SEVERITY_ERROR | RPT_SEVERITY_WARNING ),
m_format( OUTPUT_FORMAT::REPORT ),
m_exitCodeViolations( false )
{
}

View File

@ -21,23 +21,16 @@
#ifndef JOB_PCB_DRC_H
#define JOB_PCB_DRC_H
#include <kicommon.h>
#include <layer_ids.h>
#include <wx/string.h>
#include <widgets/report_severity.h>
#include "job.h"
class JOB_SCH_ERC : public JOB
class KICOMMON_API JOB_SCH_ERC : public JOB
{
public:
JOB_SCH_ERC( bool aIsCli ) :
JOB( "erc", aIsCli ),
m_filename(),
m_units( JOB_SCH_ERC::UNITS::MILLIMETERS ),
m_severity( RPT_SEVERITY_ERROR | RPT_SEVERITY_WARNING ),
m_format( OUTPUT_FORMAT::REPORT ),
m_exitCodeViolations( false )
{
}
JOB_SCH_ERC( bool aIsCli );
wxString m_filename;
wxString m_outputFile;

View File

@ -0,0 +1,33 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2023 Mark Roszko <mark.roszko@gmail.com>
* Copyright (C) 2023 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <jobs/job_sym_export_svg.h>
JOB_SYM_EXPORT_SVG::JOB_SYM_EXPORT_SVG( bool aIsCli ) :
JOB( "symsvg", aIsCli ),
m_libraryPath(),
m_symbol(),
m_outputDirectory(),
m_blackAndWhite( false ),
m_includeHiddenPins( false ),
m_includeHiddenFields( false )
{
}

View File

@ -21,22 +21,14 @@
#ifndef JOB_SYM_EXPORT_SVG_H
#define JOB_SYM_EXPORT_SVG_H
#include <kicommon.h>
#include <wx/string.h>
#include "job.h"
class JOB_SYM_EXPORT_SVG : public JOB
class KICOMMON_API JOB_SYM_EXPORT_SVG : public JOB
{
public:
JOB_SYM_EXPORT_SVG( bool aIsCli ) :
JOB( "symsvg", aIsCli ),
m_libraryPath(),
m_symbol(),
m_outputDirectory(),
m_blackAndWhite( false ),
m_includeHiddenPins( false ),
m_includeHiddenFields( false )
{
}
JOB_SYM_EXPORT_SVG( bool aIsCli );
wxString m_libraryPath;
wxString m_symbol;

View File

@ -0,0 +1,30 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2023 Mark Roszko <mark.roszko@gmail.com>
* Copyright (C) 2023 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <jobs/job_sym_upgrade.h>
JOB_SYM_UPGRADE::JOB_SYM_UPGRADE( bool aIsCli ) :
JOB( "symupgrade", aIsCli ),
m_libraryPath(),
m_outputLibraryPath(),
m_force( false )
{
}

View File

@ -21,19 +21,14 @@
#ifndef JOB_SYM_UPGRADE_H
#define JOB_SYM_UPGRADE_H
#include <kicommon.h>
#include <wx/string.h>
#include "job.h"
class JOB_SYM_UPGRADE : public JOB
class KICOMMON_API JOB_SYM_UPGRADE : public JOB
{
public:
JOB_SYM_UPGRADE( bool aIsCli ) :
JOB( "symupgrade", aIsCli ),
m_libraryPath(),
m_outputLibraryPath(),
m_force( false )
{
}
JOB_SYM_UPGRADE( bool aIsCli );
wxString m_libraryPath;
wxString m_outputLibraryPath;