diff --git a/Documentation/compiling/COMPILING.txt b/Documentation/compiling/COMPILING.txt index 618b5f9c9d..6041043023 100644 --- a/Documentation/compiling/COMPILING.txt +++ b/Documentation/compiling/COMPILING.txt @@ -1,7 +1,7 @@ Compiling KiCad from Source =========================== KiCad Documentation Team -Last revised on 12-mars-2012 by jp Charras +Last revised on 2014-december-24 by JP Charras Introduction ------------ @@ -32,7 +32,7 @@ KiCad from source. * CMake - Cross-platform make * GLUT - The OpenGL Utility Library * GLEW -* wxGTK or wxWidgets - The wxWidgets GUI toolkit with GTK+ bindings +* wxWidgets - The wxWidgets GUI toolkit with GTK+ bindings version 3.0 or more * libbz2 (dev) * libcairo (dev) @@ -57,7 +57,7 @@ Compiler and basic development tools Make sure g++, make and other tools are in your path. If windows, then try running g++ and make from within your msys bash shell. -PLEASE NOTE: g++ 4.7.1 at least (possibly the 4.7.x series) is known to +PLEASE NOTE: g++ 4.7.1 and 4.7.2 are known to miscompile pcbnew (it get zones wrong) with -O2; using -O1 is a suitable workaround until they fix the compiler. @@ -68,7 +68,7 @@ WARNING: see wxWidgets_patch_notes.txt for patches and issues in wxWidgets. On Windows, download -http://sourceforge.net/projects/wxwindows/files/3.0.0/wxWidgets-3.0.0.zip/download +http://sourceforge.net/projects/wxwindows/files/3.0.2/wxWidgets-3.0.2.zip/download or a newer version. Do NOT use previous versions which all have annoying issues for KiCad. Start msys so you have a bash shell. @@ -95,6 +95,10 @@ or more recent (Older versions have a print function which does not work). Verify that wx-config is in your path by running it from a command prompt. Linux users then go to next step. +Note also wxWidgets must be compiled with the wxWebView support. +This is the default when building wxWidgets, but only if the libwebkitgtk-dev is installed +before building wxWidgets (sudo apt-get install libwebkitgtk-dev) + Install CMake ------------- On windows, download the installation binary for windows from cmake.org. @@ -167,9 +171,12 @@ Linux and windows users both then make two "out of source" build directories: On either cmake command line shown below, you can optionally include -DCMAKE_INSTALL_PREFIX= +For instance on Linux: =/usr/local/kicad or ~/kicad On windows, run the following command: cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Release -DwxWidgets_ROOT_DIR= ../../ +Avoid installing Kicad on C: disk, which is protected by Windows. +Use D: or E: ... On linux, run instead the following command: cmake -DCMAKE_BUILD_TYPE=Release ../../ diff --git a/Documentation/compiling/build-config.txt b/Documentation/compiling/build-config.txt index 4478aa40e4..d4c0579e03 100644 --- a/Documentation/compiling/build-config.txt +++ b/Documentation/compiling/build-config.txt @@ -100,9 +100,12 @@ USE_IMAGES_IN_MENUS (ON/OFF) ---------------------------- Default: OFF for OSX, ON for other platforms. -This option is used to enable or disable building KiCad with images in menu +This option is used to enable or disable building KiCad with images (icons) in menu items. If this is not defined when CMake is used to create the build files, images will be included in menu items on all platforms except OSX. +Note also, on Linux, some window managers do not show icons in menu, or +show them only if the current option is activated. +Therefore, even if you have icons in menus, they will be not always displayed DOWNLOAD_DIR (PATH) @@ -138,6 +141,7 @@ Default: OFF This option enables or disables building Python scripting support within KiCad. Currently only Pcbnew is supported. This option requires SWIG and Python to be installed on the system. +It allows using footprint wizards in footprint editor to create new footprints KICAD_SCRIPTING_MODULES (ON/OFF) @@ -147,6 +151,8 @@ Default: OFF This option enables or disables building KiCad Python modules that can be used externally by Python. Currently only Pcbnew is supported. This option requires SWIG and Python to be installed on the system. +This python module is used to edit board files (.kicad_pcb files) from a +python script, outside kicad. KICAD_SCRIPTING_WXPYTHON (ON/OFF) @@ -156,6 +162,7 @@ Default: OFF This option enables or disables building wxPython support into the KiCad scripting support. Currently only Pcbnew has scripting support. This option requires SWIG, Python, and wxPython to be installed on the system. +It allows execution of python scripts insided Pcbnew, during a session. PYTHON_SITE_PACKAGE_PATH (PATH) @@ -169,11 +176,21 @@ different path, set this variable to the desired path. BUILD_GITHUB_PLUGIN (ON/OFF) ---------------------------- -Default: OFF +Default: ON This option enables or disables building KiCad with a pcbnew plugin for loading footprints from a GitHub repository. +KICAD_USE_WEBKIT (ON/OFF) +---------------------------- +Default: ON (and OFF when BUILD_GITHUB_PLUGIN is OFF) + +This option enables or disables building a web viewer used if the +footprint library table wizard to easily add footprints library entries +to this tables when libraries are on a GitHub repository. +This option need the full support of wxWebview/WebKit in wxWidgets, which is not +always the case on Linux. + KICAD_REPO_NAME (STRING) ------------------------ diff --git a/pcb_calculator/dialogs/pcb_calculator_frame_base.cpp b/pcb_calculator/dialogs/pcb_calculator_frame_base.cpp index d50dae257f..412753b4a2 100644 --- a/pcb_calculator/dialogs/pcb_calculator_frame_base.cpp +++ b/pcb_calculator/dialogs/pcb_calculator_frame_base.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Nov 5 2013) +// C++ code generated with wxFormBuilder (version Jun 5 2014) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! @@ -166,7 +166,7 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow m_staticTextRegType = new wxStaticText( m_panelRegulators, wxID_ANY, _("Type"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextRegType->Wrap( -1 ); - m_staticTextRegType->SetToolTip( _("Type of the regulator.\nThere are 2 types:\n- regulators which have a dedicted sense pin for the voltage regulation.\n- 3 terminal pins.") ); + m_staticTextRegType->SetToolTip( _("Type of the regulator.\nThere are 2 types:\n- regulators which have a dedicated sense pin for the voltage regulation.\n- 3 terminal pins.") ); fgSizerRegParams->Add( m_staticTextRegType, 0, wxALL, 5 ); @@ -1232,7 +1232,7 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow wxArrayString m_BoardClassesUnitsSelectorChoices; m_BoardClassesUnitsSelector = new UNIT_SELECTOR_LEN( m_panelBoardClass, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_BoardClassesUnitsSelectorChoices, 0 ); - m_BoardClassesUnitsSelector->SetSelection( -1 ); + m_BoardClassesUnitsSelector->SetSelection( 0 ); bSizerBoardClass->Add( m_BoardClassesUnitsSelector, 0, wxALL, 5 ); wxBoxSizer* brdclsSizerRight; diff --git a/pcb_calculator/dialogs/pcb_calculator_frame_base.fbp b/pcb_calculator/dialogs/pcb_calculator_frame_base.fbp index 2bb605ff45..3b8123ad68 100644 --- a/pcb_calculator/dialogs/pcb_calculator_frame_base.fbp +++ b/pcb_calculator/dialogs/pcb_calculator_frame_base.fbp @@ -1,6 +1,6 @@ - + C++ @@ -44,7 +44,7 @@ PCB_CALCULATOR_FRAME_BASE - 670,489 + 702,489 wxDEFAULT_FRAME_STYLE|wxRESIZE_BORDER KIWAY_PLAYER; kiway_player.h PCB Calculator @@ -2308,7 +2308,7 @@ 0 - Type of the regulator. There are 2 types: - regulators which have a dedicted sense pin for the voltage regulation. - 3 terminal pins. + Type of the regulator. There are 2 types: - regulators which have a dedicated sense pin for the voltage regulation. - 3 terminal pins. @@ -18263,7 +18263,7 @@ 1 Resizable - -1 + 0 1 diff --git a/pcb_calculator/dialogs/pcb_calculator_frame_base.h b/pcb_calculator/dialogs/pcb_calculator_frame_base.h index 2df0548336..0562dd33b3 100644 --- a/pcb_calculator/dialogs/pcb_calculator_frame_base.h +++ b/pcb_calculator/dialogs/pcb_calculator_frame_base.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Nov 5 2013) +// C++ code generated with wxFormBuilder (version Jun 5 2014) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! @@ -293,7 +293,7 @@ class PCB_CALCULATOR_FRAME_BASE : public KIWAY_PLAYER public: - PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("PCB Calculator"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 670,489 ), long style = wxDEFAULT_FRAME_STYLE|wxRESIZE_BORDER|wxFULL_REPAINT_ON_RESIZE|wxTAB_TRAVERSAL ); + PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("PCB Calculator"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 702,489 ), long style = wxDEFAULT_FRAME_STYLE|wxRESIZE_BORDER|wxFULL_REPAINT_ON_RESIZE|wxTAB_TRAVERSAL ); ~PCB_CALCULATOR_FRAME_BASE(); diff --git a/pcb_calculator/pcb_calculator_frame.cpp b/pcb_calculator/pcb_calculator_frame.cpp index fdf2513861..e79390b488 100644 --- a/pcb_calculator/pcb_calculator_frame.cpp +++ b/pcb_calculator/pcb_calculator_frame.cpp @@ -157,7 +157,7 @@ void PCB_CALCULATOR_FRAME::OnClosePcbCalc( wxCloseEvent& event ) msg.Printf( _("Unable to write file<%s>\n"\ "Do you want to exit and abandon your change?"), GetDataFilename().c_str() ); - int opt = wxMessageBox( msg, _("Write Data File Errror"), + int opt = wxMessageBox( msg, _("Write Data File Error"), wxYES_NO | wxICON_QUESTION ); if( opt == wxNO ) return; diff --git a/pcbnew/dialogs/dialog_freeroute_exchange_base.cpp b/pcbnew/dialogs/dialog_freeroute_exchange_base.cpp index 6be55d2f32..3f5d891c29 100644 --- a/pcbnew/dialogs/dialog_freeroute_exchange_base.cpp +++ b/pcbnew/dialogs/dialog_freeroute_exchange_base.cpp @@ -42,8 +42,8 @@ DIALOG_FREEROUTE_BASE::DIALOG_FREEROUTE_BASE( wxWindow* parent, wxWindowID id, c bLeftButtonsSizer->Add( m_ExportDSN, 0, wxALL|wxEXPAND, 5 ); - m_buttonLaunchFreeroute = new wxButton( this, wxID_BUTTON_LAUNCH, _("Launch FreeRouter and Launch FreeRouter"), wxDefaultPosition, wxDefaultSize, 0 ); - m_buttonLaunchFreeroute->SetToolTip( _("Use Java Web Start function to run FreeRouter via Internet (or your Browser if not found)") ); + m_buttonLaunchFreeroute = new wxButton( this, wxID_BUTTON_LAUNCH, _("Export a Specctra Design and Launch FreeRoute"), wxDefaultPosition, wxDefaultSize, 0 ); + m_buttonLaunchFreeroute->SetToolTip( _("FreeRouter can be run only if freeroute.jar is found in Kicad binaries folder") ); bLeftButtonsSizer->Add( m_buttonLaunchFreeroute, 0, wxALL|wxEXPAND, 5 ); diff --git a/pcbnew/dialogs/dialog_freeroute_exchange_base.fbp b/pcbnew/dialogs/dialog_freeroute_exchange_base.fbp index 07b989a0f9..4665759bc3 100644 --- a/pcbnew/dialogs/dialog_freeroute_exchange_base.fbp +++ b/pcbnew/dialogs/dialog_freeroute_exchange_base.fbp @@ -343,7 +343,7 @@ 0 0 wxID_BUTTON_LAUNCH - Launch FreeRouter and Launch FreeRouter + Export a Specctra Design and Launch FreeRoute 0 @@ -364,7 +364,7 @@ 0 - Use Java Web Start function to run FreeRouter via Internet (or your Browser if not found) + FreeRouter can be run only if freeroute.jar is found in Kicad binaries folder wxFILTER_NONE wxDefaultValidator diff --git a/pcbnew/dialogs/dialog_select_dirlist_base.cpp b/pcbnew/dialogs/dialog_select_dirlist_base.cpp index f982d624b5..fb81df85d3 100644 --- a/pcbnew/dialogs/dialog_select_dirlist_base.cpp +++ b/pcbnew/dialogs/dialog_select_dirlist_base.cpp @@ -16,7 +16,7 @@ DIALOG_SELECT_DIRLIST_BASE::DIALOG_SELECT_DIRLIST_BASE( wxWindow* parent, wxWind wxBoxSizer* bSizerMain; bSizerMain = new wxBoxSizer( wxVERTICAL ); - m_staticText = new wxStaticText( this, wxID_ANY, _("The footprint library is a folde.\nFootprints are files inside this folder."), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText = new wxStaticText( this, wxID_ANY, _("The footprint library is a folder.\nFootprints are files inside this folder."), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText->Wrap( -1 ); m_staticText->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); diff --git a/pcbnew/dialogs/dialog_select_dirlist_base.fbp b/pcbnew/dialogs/dialog_select_dirlist_base.fbp index fdddffb7e4..6119123be0 100644 --- a/pcbnew/dialogs/dialog_select_dirlist_base.fbp +++ b/pcbnew/dialogs/dialog_select_dirlist_base.fbp @@ -125,7 +125,7 @@ 0 0 wxID_ANY - The footprint library is a folde. Footprints are files inside this folder. + The footprint library is a folder. Footprints are files inside this folder. 0 diff --git a/scripts/kicad-install.sh b/scripts/kicad-install.sh index 5c7d641dee..3d3f3c095e 100755 --- a/scripts/kicad-install.sh +++ b/scripts/kicad-install.sh @@ -47,7 +47,25 @@ REVISION=$TESTING # CMake Options OPTS="$OPTS -DBUILD_GITHUB_PLUGIN=ON" # needed by $STABLE revision -# Python scripting, uncomment to enable +# Uncomment this line if you have issues to build kicad with a wxWidgets with is not built +# with webkit/webview support, i.e. if you have this error: +# error "wxWidgets must be built with wxWebView support enabled. Please rebuild wxWidgets" +# but you will lose the wizard which allows you to easily add .pretty libs on github server +# (you will need to enter by hand their url in footprint lib table dialog) +#OPTS="$OPTS -DKICAD_USE_WEBKIT=OFF" + +# Python scripting, uncomment only one to enable: + +# Basic python scripting: gives access to wizards like footprint wizards (recommended) +# be sure you have python 2.7 installed +#OPTS="$OPTS -DKICAD_SCRIPTING=ON" + +# More advanced python scripting: gives access to wizards like footprint wizards and creates a python module +# to edit board files (.kicad_pcb files) outside kicad, by python scripts +#OPTS="$OPTS -DKICAD_SCRIPTING=ON -DKICAD_SCRIPTING_MODULES=ON" + +# Most advanced python scripting: you can execute python scripts inside Pcbnew to edit the current loaded board +# mainly for advanced users #OPTS="$OPTS -DKICAD_SCRIPTING=ON -DKICAD_SCRIPTING_MODULES=ON -DKICAD_SCRIPTING_WXPYTHON=ON" # Use https under bazaar to retrieve repos because this does not require a