KiCad PCB EDA Suite
drc_proto_test.cpp
Go to the documentation of this file.
1 /*
2  * This program source code file is part of KiCad, a free EDA CAD application.
3  *
4  * Copyright (C) 2019-2020 KiCad Developers, see AUTHORS.txt for contributors.
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2
9  * of the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, you may find one here:
18  * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
19  * or you may search the http://www.gnu.org website for the version 2 license,
20  * or you may write to the Free Software Foundation, Inc.,
21  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
22  */
23 
24 #include <string>
25 
26 #include <common.h>
27 #include <profile.h>
28 
29 #include <wx/cmdline.h>
30 #include <wx/init.h>
31 
32 #include <property_mgr.h>
33 
34 #include <pgm_base.h>
35 
36 #include "drc_proto.h"
37 
38 int main( int argc, char** argv )
39 {
40  wxInitialize( argc, argv );
41 
42  Pgm().InitPgm();
43 
45  propMgr.Rebuild();
46 
47  if( argc < 2 )
48  {
49  printf("usage: %s <project-file/board-file> [drc-rules-file]\n", argv[0] );
50  Pgm().Destroy();
51  wxUninitialize();
52  return -1;
53  }
54 
55  PROJECT_CONTEXT project = loadKicadProject( argv[1], argv[2] ? wxString( argv[2] ) : OPT<wxString>() );
56 
57  // This causes some glib warnings on GTK3 (http://trac.wxwidgets.org/ticket/18274)
58  // but without it, Valgrind notices a lot of leaks from WX
59 
60  runDRCProto( project );
61 
62  Pgm().Destroy();
63 
64  wxUninitialize();
65 
66  return 0;
67 }
void Rebuild()
Rebuilds the list of all registered properties.
static PROPERTY_MANAGER & Instance()
Definition: property_mgr.h:64
int main(int argc, char **argv)
KIWAY Kiway & Pgm(), KFCTL_STANDALONE
The global Program "get" accessor.
Definition: single_top.cpp:102
see class PGM_BASE
int runDRCProto(PROJECT_CONTEXT project, std::shared_ptr< KIGFX::VIEW_OVERLAY > aDebugOverlay)
Definition: drc_proto.cpp:104
The common library.
boost::optional< T > OPT
Definition: optional.h:7
Provides class metadata.
Definition: property_mgr.h:61
PROJECT_CONTEXT loadKicadProject(wxString filename, OPT< wxString > rulesFilePath)
Definition: drc_proto.cpp:58