wxWidgets 3.1.5+ on Linux will compile with the Wayland EGL
canvas as the backend instead of the X11 backend. This requires a
version of GLEW compiled with the proper EGL defines and a different
header/code for certain parts that are X11 GLEW specific.
This introduces an in-tree version of GLEW that will be built with the
GLEW_EGL flag then statically linked into the KiCad executables when
EGL support is needed.
All control blocks (if, for, while, etc.) should have a blank line
before the opening statement and after the closing curly brace or
statement so that it is clear where the control block begins and
ends.
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.
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).
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.
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.
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.
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
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.
* 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
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.
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.
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.
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.
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.
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.
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.
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