14 changed files with 384 additions and 100 deletions
-
42common/jobs/job_fp_upgrade.h
-
2kicad/CMakeLists.txt
-
32kicad/cli/command_fp.cpp
-
36kicad/cli/command_fp.h
-
57kicad/cli/command_fp_upgrade.cpp
-
37kicad/cli/command_fp_upgrade.h
-
12kicad/kicad_cli.cpp
-
2pcbnew/footprint.cpp
-
4pcbnew/footprint.h
-
65pcbnew/pcbnew_jobs_handler.cpp
-
1pcbnew/pcbnew_jobs_handler.h
-
1pcbnew/plugins/kicad/pcb_parser.cpp
-
103pcbnew/plugins/kicad/pcb_plugin.cpp
-
90pcbnew/plugins/kicad/pcb_plugin.h
@ -0,0 +1,42 @@ |
|||
/* |
|||
* This program source code file is part of KiCad, a free EDA CAD application. |
|||
* |
|||
* Copyright (C) 2022 Mark Roszko <mark.roszko@gmail.com> |
|||
* Copyright (C) 1992-2022 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/>. |
|||
*/ |
|||
|
|||
#ifndef JOB_FP_UPGRADE_H |
|||
#define JOB_FP_UPGRADE_H |
|||
|
|||
#include <wx/string.h> |
|||
#include "job.h" |
|||
|
|||
class JOB_FP_UPGRADE : public JOB |
|||
{ |
|||
public: |
|||
JOB_FP_UPGRADE( bool aIsCli ) : |
|||
JOB( "fpupgrade", aIsCli ), |
|||
m_libraryPath(), |
|||
m_force( false ) |
|||
{ |
|||
} |
|||
|
|||
wxString m_libraryPath; |
|||
|
|||
bool m_force; |
|||
}; |
|||
|
|||
#endif |
@ -0,0 +1,32 @@ |
|||
/*
|
|||
* This program source code file is part of KiCad, a free EDA CAD application. |
|||
* |
|||
* Copyright (C) 2022 Mark Roszko <mark.roszko@gmail.com> |
|||
* Copyright (C) 1992-2022 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 "command_fp.h"
|
|||
|
|||
CLI::FP_COMMAND::FP_COMMAND() : COMMAND( "fp" ) |
|||
{ |
|||
} |
|||
|
|||
int CLI::FP_COMMAND::Perform( KIWAY& aKiway ) |
|||
{ |
|||
std::cout << m_argParser; |
|||
|
|||
return 1; |
|||
} |
@ -0,0 +1,36 @@ |
|||
/* |
|||
* This program source code file is part of KiCad, a free EDA CAD application. |
|||
* |
|||
* Copyright (C) 2022 Mark Roszko <mark.roszko@gmail.com> |
|||
* Copyright (C) 1992-2022 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/>. |
|||
*/ |
|||
|
|||
#ifndef COMMAND_FP_H |
|||
#define COMMAND_FP_H |
|||
|
|||
#include "command.h" |
|||
|
|||
namespace CLI |
|||
{ |
|||
struct FP_COMMAND : public COMMAND |
|||
{ |
|||
FP_COMMAND(); |
|||
|
|||
int Perform( KIWAY& aKiway ) override; |
|||
}; |
|||
} |
|||
|
|||
#endif |
@ -0,0 +1,57 @@ |
|||
/*
|
|||
* This program source code file is part of KiCad, a free EDA CAD application. |
|||
* |
|||
* Copyright (C) 2022 Mark Roszko <mark.roszko@gmail.com> |
|||
* Copyright (C) 1992-2022 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 "command_fp_upgrade.h"
|
|||
#include <cli/exit_codes.h>
|
|||
#include "jobs/job_fp_upgrade.h"
|
|||
#include <kiface_base.h>
|
|||
#include <layer_ids.h>
|
|||
#include <wx/crt.h>
|
|||
#include <wx/dir.h>
|
|||
|
|||
#include <macros.h>
|
|||
|
|||
#define ARG_FORCE "--force"
|
|||
|
|||
CLI::FP_UPGRADE_COMMAND::FP_UPGRADE_COMMAND() : EXPORT_PCB_BASE_COMMAND( "upgrade" ) |
|||
{ |
|||
m_argParser.add_argument( ARG_FORCE ) |
|||
.help( UTF8STDSTR( _( "Forces the footprint to be resaved regardless of versioning" ) ) ) |
|||
.implicit_value( true ) |
|||
.default_value( false ); |
|||
} |
|||
|
|||
|
|||
int CLI::FP_UPGRADE_COMMAND::Perform( KIWAY& aKiway ) |
|||
{ |
|||
std::unique_ptr<JOB_FP_UPGRADE> fpJob = std::make_unique<JOB_FP_UPGRADE>( true ); |
|||
|
|||
fpJob->m_libraryPath = FROM_UTF8( m_argParser.get<std::string>( ARG_INPUT ).c_str() ); |
|||
|
|||
if( !wxDir::Exists( fpJob->m_libraryPath ) ) |
|||
{ |
|||
wxFprintf( stderr, _( "Footprint file does not exist or is not accessible\n" ) ); |
|||
return EXIT_CODES::ERR_INVALID_INPUT_FILE; |
|||
} |
|||
|
|||
int exitCode = aKiway.ProcessJob( KIWAY::FACE_PCB, fpJob.get() ); |
|||
|
|||
return exitCode; |
|||
} |
@ -0,0 +1,37 @@ |
|||
/* |
|||
* This program source code file is part of KiCad, a free EDA CAD application. |
|||
* |
|||
* Copyright (C) 2022 Mark Roszko <mark.roszko@gmail.com> |
|||
* Copyright (C) 1992-2022 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/>. |
|||
*/ |
|||
|
|||
#ifndef COMMAND_FP_UPGRADE_H |
|||
#define COMMAND_FP_UPGRADE_H |
|||
|
|||
#include "command_export_pcb_base.h" |
|||
|
|||
namespace CLI |
|||
{ |
|||
class FP_UPGRADE_COMMAND : public EXPORT_PCB_BASE_COMMAND |
|||
{ |
|||
public: |
|||
FP_UPGRADE_COMMAND(); |
|||
|
|||
int Perform( KIWAY& aKiway ) override; |
|||
}; |
|||
} // namespace CLI |
|||
|
|||
#endif |
Write
Preview
Loading…
Cancel
Save
Reference in new issue