Commit Graph

135 Commits

Author SHA1 Message Date
Seth Hillbrand d4affa9985 Add missing zlib link to documentation
Also add the proper build package for mingw
2020-08-19 13:49:43 -07:00
Seth Hillbrand 835d4a268f Add zlib requirement to documentation 2020-08-19 12:01:56 -07:00
Wayne Stambaugh ede39780e2 Remove all debugging output that cannot be disabled.
The use of printf, wxLogDebug, and std::err/std::out causes excessive
debugging output which makes finding specific debugging messages more
difficult than it needs to be.

There is still some debugging output in test code that really needs to
be moved into a unit test.

Add debugging output section to the coding policy regarding debugging
output.
2020-08-18 10:17:36 -04:00
Ian McInerney ab83c86210 Remove the platform-specific GetBackendScalingFactor from HIDPI_GL_CANVAS
The scaling factor stored inside the canvas is created by a DPI_SCALING
helper, which will call the platform-specific functions if no user scaling
is specified. This change only affects OSX and Retina displays, so this
now also allows custom scaling to be used on OSX if desired (although it
shouldn't be needed, since wx has detection for it in 3.0.4).
2020-06-05 00:15:54 +00:00
Wayne Stambaugh 9817b63f66 Minor coding policy document fixes.
Ironically make the document formatting more consistent and remove
some trailing whitespace.

Changed "When it Rome.." title since may not have the same meaning in
other languages as it does in English.  Also add table of contents to
this section for linking purposes.
2020-05-27 09:05:54 -04:00
Jeff Young f679be4101 Update lambda examples in coding style doc. 2020-05-12 18:21:18 +01:00
Jeff Young e93684015c Add a "when in Rome..." clause to the formatting doc. 2020-04-13 21:28:19 +01:00
Jeff Young 35b647d134 Document coding standard changes agreed on Zulip. 2020-04-13 20:56:30 +01:00
Ian McInerney 2c86b3d8cf Fix documentation link in the scripting docs
Fixes https://gitlab.com/kicad/code/kicad/issues/3735
2020-03-28 22:01:09 +00:00
Jon Evans b56998925b Deprecate V6 roadmap and move to Wiki 2020-02-03 11:26:44 +00:00
Ian McInerney 0d017e262c Update documentation and comment 2020-01-22 08:47:14 +00:00
Ian McInerney 752bc5b7ba Update technical todo
Add a section mentioning C++20 and the new constexpr
std::string and std::vector that we can use.
2020-01-21 11:03:55 +00:00
Ian McInerney 1d050e9b9d Update macOS build documentation with moved wxWidgets repo
Also remove --enable-utf8 from the configure flags since
the custom build doesn't work with UTF8 enabled.
Add rich text support to wxWidgets for the multi-line editor.
2019-12-22 01:32:42 +00:00
Ian McInerney 2e5b8d0a8f Update commit message policy
Giving both the issue number and URL is redundent in the message.
GitLab can automatically close the issue using the URL, so only
give the URL so it can be viewed in the log.
2019-12-20 15:32:38 +00:00
Ian McInerney 3370e89967 Update Linux appdata file and CMake version strings
CHANGED: Update the Linux appdata file to include new tags

* Include version tags (and others) in the appdata file
* Refactor the version string generation to clean it up
2019-12-18 17:24:07 +00:00
John Beard 4dc82ff76f Technical TODO: make_unique is no longer polyfilled
Since we use C++14, std::make_unique required no "polyfill".

The KiCad polyfill was removed in
5151cd0bfe,
so remove the TODO item.
2019-12-05 18:25:15 +01:00
Jon Evans 95f703aac0 Update compiling.md for GitLab 2019-12-02 20:20:05 +00:00
Maciej Suminski 2a3d4ffe88 Update 'git fixes' alias and the documentation to point to Gitlab 2019-12-01 11:01:56 +01:00
Seth Hillbrand a643bdff4b Remove ergonomic statement 2019-11-26 09:44:47 -08:00
Wayne Stambaugh e00b78adc9 Minor commit message policy updates.
Remove the NEW tag and only support the ADD tag for new features.  ADD
is compatible with the other tags because the past tense (ED) makes
sense for ADD not NEW.
2019-11-11 08:25:58 -05:00
Ian McInerney bdf7fb9e95 Update building documentation with new debugging options 2019-10-07 08:54:55 +02:00
Seth Hillbrand 044b4a6d4c Bump C++ version to c++14
This is a provisional bump.  If supported platforms
(http://kicad-pcb.org/help/system-requirements/#_specific_system_requirements)
experience issues with this version we will revert back to c++11.

No code that requires c++14 will be committed yet.
2019-07-10 20:03:48 -07:00
Ian McInerney 42e14b5a4e Cleanup cmake python dependency handling to catch errors
* Changed the KICAD_SCRIPTING flag to be a global disable, so it
  will disable all other scripting flags when set to OFF
* Added version testing with the wxPython flags to ensure the
  proper version is found for the flags provided
2019-06-27 13:31:20 -04:00
Seth Hillbrand e52afd93a3 Remove Legacy options for overlay/context
These options were used to support the legacy canvas when drawing on
MacOS and GTK3.  With the move to 100% GAL, they are extraneous.  This
moves all DC over to "COPY" as we only use this for printing support in
Eeschema at the moment, so there is a single draw command (no erasing)
for the canvas.
2019-06-12 06:01:03 -07:00
Wayne Stambaugh c711ad5c7c Update compiling document Python scripting options.
Change the default option setting for the Python scripting action menu
support.

Add notes that the KiCad scripting support is forcefully enable when the
Python scripting module support or the Python scripting action menu
support are enabled.
2019-06-05 14:02:27 -04:00
John Beard 241127788e Format: add some formatting aliases, improve dev docs
The aliases are easier than calling check_coding.sh manually,
and we already provide an alias file for the fixes alias, so
do the same for these.
2019-05-23 21:28:42 +01:00
John Beard 840e08fa78 QA eeschema: add some tests
This adds a few tests on:

* LIB_PART
* SCH_PIN
* SCH_SHEET
* SCH_SHEET_PATH

These tests exercise some of the basic code paths in these classes
and show some of the expected behaviours.

None of these tests are particularly ground-breaking, but they
provide a starting point to build out further tests, and to ensure
the already-covered behaviour is stable.

It does expose some places where SCH_SHEET could probably use const.
2019-05-23 11:29:28 +01:00
Jeff Young fbb807f3bb Move some more menu & toolbar items to modern toolset. 2019-05-16 19:57:06 +01:00
Jeff Young ea0941cab3 Implement modern tools for LibEdit. 2019-05-10 16:11:57 +01:00
Wayne Stambaugh 3caa4376a5 Developer documentation updates.
Remove version 5 road map since version 5 has been released.

Update version 6 road map to reflect current development goals.

Cleaned out old goals from generic road map in preparation for version
7 development.

Add note to compiling document about building with Boost 1.70 on Windows.

Fix link to Linux coding style policy in KiCad Coding Style Guide.

Update tool framework documentation to reflect changes in the tool
framework code.
2019-05-08 08:37:39 -04:00
John Beard 272c045c37 Format: Default to switch cases on separate lines by default
Currently, the format enforces single lines when possible, but does
not enforce readable column-based alignment (and, moreover, *removes*
such manually added alignment:

    switch( m_orientation )
    {
    case PIN_RIGHT: m_orientation = PIN_UP; break;
    case PIN_UP: m_orientation = PIN_LEFT; break;
    }

Change this to multi-line by default:

    switch( m_orientation )
    {
    case PIN_RIGHT:
        m_orientation = PIN_UP;
        break;
    case PIN_UP:
        m_orientation = PIN_LEFT;
        break;
    }

If the developer wishes for column-aligned single-line cases, this
is permitted, but much be done manually:

    switch( m_orientation )
    {
    case PIN_RIGHT: m_orientation = PIN_DOWN;  break;
    case PIN_UP:    m_orientation = PIN_RIGHT; break;
    }

CHANGE: the _clang-format file to reflect this, and add note about
manual override in the dev docs.
2019-05-07 09:49:05 +01:00
Ian McInerney f87754848e Remove ki_mutex.h and associated includes
REMOVED: ki_mutex.h since all mutexes now use std::mutex
2019-05-03 17:13:20 -07:00
John Beard 957f868e2f Docs: add a 'technical todo' list
Provides a place to record work that is pending due to
library, compiler or language restrictions.

Because some of this work will be pending for several years
until supported distros support the relevant versions, having
this centrally documented prevents it being forgotten.

Also includes current distro versions for extant "LTS"
distros that are likely to be the distros holding back
library versions.

Only includes things we currently actually do work around
in the code, or things that are direct C++ replacements
(e.g. Boost libraries being adopted to C++).
This is as opposed to more opinion-based "we should
 do it this way, it's better" things, which should be
proposed for discussion first.
2019-04-20 15:32:12 +01:00
John Beard 3d7c070faf Dev doc: Fix and add link
Fix the libngspice link markdown.

Add a link to the testing page from the relevant section on QA test
options.
2019-04-18 17:16:35 +01:00
John Beard f4ba3cd910 QA: Add build-time option to enable XML output from tests
This allows CI tools to get machine-readable test reports.

By default, this is off - when you test normally, you probably
want the regular console spew.

Boost tests use the in-built Boost test command line options.

The Python tests take an --xml parameter and output the tests
there.
2019-04-18 10:59:06 +01:00
John Beard 45aa514591 QA: Allow to build tests manually if disabled
Add a new CMake target, qa_all, which builds all
tests, tools and their deps.

Then, when KICAD_BUILD_QA_TESTS is set OFF, remove tests
and tools from the ALL target, so `make all` doesn't include
these builds.

This means even when you turn the KICAD_BUILD_QA_TESTS option
off, you still have the option to:

* Build individual tests: `make qa_pcbnew`
* Build all tests: `make qa_all_tests`
* Build all tools: `make qa_all_tools`
* Build all QA executables: `make qa_all`

This also will provide a place to hang extra logic for test routine
wrangling (e.g. by CI tools)

Update the "Compiling KiCad" dev docs.

Also, CMakeModules .cmake files should not be excluded from git
2019-04-17 18:00:40 +01:00
jean-pierre charras ead5bfe64b Add option to build QA test suite (this option is on by default.
KICAD_BUILD_QA_TESTS=OFF skips the QA test suite build.
This is useful for daily work on Kicad. It spares compil and link time.
2019-04-16 18:40:56 +02:00
Seth Hillbrand 257d9b5fe9 Allow setting the kicad config dir
This allows setting the config dir at build time, providing packagers a
method of controlling where the configuration files are placed.

Fixes: lp:1780601
* https://bugs.launchpad.net/kicad/+bug/1780601
2019-04-08 12:33:49 -07:00
John Beard a7270f8c1c Formatting: prefer a Git config variable to env var
The keeps all the formatting config together in the Git ecosystem
and keeps the config on a per-repo basis, unless the user explicitly
sets it --global.

Keep the old env var behaviour for now for backwards compatibility.
2019-03-29 15:06:48 +00:00
John Beard a69cdf1793 Formatting: exclude generated files from git formatting hook
Add a .gitattributes files to provide a place to store file
attributes. Add a custom attribute for files that should be under
KiCad style guidelines.

Exclude generated files from the style enforcement. So far:

* bitmap .cpp files
* wxFormBuilder base classes
* Lemon grammars

It's now trivial to add the 'generated' attribute to any such
file.

Putting this into .gitattributes also means it can be retreived
programmatically, by other scripts, git alaises or on the command
line.

Use the attributes to provide a utility script to show or apply
formatting to controlled files (plain git clang-format won't
pick up our custom git attributes). Add details for the script in
the dev docs.

Also modiify the check-format hook to follow the .gitattributes
and only apply to cached (staged for commit) changes. Then you
won't be stopped committing because of bad formatting in unstaged
changed, or uncontrolled files.

Concept and some aspects of the implementation inspired by
CMake commit d5f39a56 [1].

[1]: d5f39a56a4

tool
2019-03-29 15:06:48 +00:00
Wayne Stambaugh b889ecaab2 Fix broken Python plugin developer's document.
Apparently curly brace escaping in a list does not work with Doxygen's
markdown support which caused everything after the windows install path
to be removed from the output build.  I just fell back to the windows
environment variable expansion character (%) and that resolved the issue.
2019-03-20 10:07:45 -04:00
Wayne Stambaugh 7e34a5a106 Fix broken table of contents link in coding policy. 2019-03-15 15:47:09 -04:00
Seth Hillbrand 2cbbcfd3e0 Doxyfiles: Remove local debug lines 2019-02-13 17:22:07 -08:00
Seth Hillbrand 5c855a097b Doxygen: Update doxyfiles
Adds/updates commentary and removes empty, obsolete DTD tags
2019-02-13 10:18:07 -08:00
John Beard bed0667712 Docs: Advanced config is explicity experimental
Any advanced config option is not to be considered production-ready,
so make this clear in the dev-docs.
2019-02-11 09:47:13 +00:00
Nick Østergaard 03e787ef2d Add anchor for advanced configuration
To make it appear in the TOC on the left and be able to link to it
directly on the www.
2019-02-10 21:31:05 +00:00
John Beard adddc41bc5 QA: Reinstate polygon_triangulation utility
This utility has been disabled since the eeschema GAL merge. It
can be reinstated as part of the qa_pcbnew_tools framework.
2019-01-29 08:15:51 -05:00
John Beard b94cf9d564 Docs: Describe QA util programs in the testing docs 2019-01-29 08:15:30 -05:00
John Beard 2f5dd6a43a Docs: Fix doxygen links
Doxygen is now at: http://www.doxygen.nl

Reported by: Brian Piccioni.
2019-01-02 09:53:29 -05:00
John Beard a33a8292a4 Run-time config for advanced options
This can be used for "advanced" options which are for developers
to use for feature-flags and other configuration. Run time config
has some advantages over preprocessor defines:

* Can be changed without recompilation
   * Sensitive to XDG_CONFIG_DIR, so flipping configs is easy
* Better compiler coverage (less conditionally compiled code means
  less chance to break a different configuration). Also better
  analysis coverage.
* Type safe config params
* Centralised documentation: it's in doxygen, in one place

No advanced config should be required by a general users. If a general
user does use one of these configs, it's probably because:

* There is a bug and one of these configs is a workaround
* A config in here is generally useful and should be moved into the
  relevant application config and given UI.

For now, the config is read-only, and is read from the
"kicad_advanced" config file in the normal config dir.
2018-12-28 11:36:08 -05:00