Commit Graph

229 Commits

Author SHA1 Message Date
Ian McInerney 69a6ddae03 nanodbc: Remove extra CXX flags from the build
nanodbc was overriding the C++ standard library being used, which would
break builds with clang. Additionally, adding Werror unconditionally in
production code is a bad idea because different compiler versions can
change/add warnings and then break the code.
2022-09-24 01:37:57 +01:00
Jon Evans 60f6bb8c77 DbLib: Fixes for MySQL ODBC driver
SQLSetConnectAttr crashes for this driver, and SQLSetStmtAttr is the ODBC3 way anyway.
2022-09-01 00:24:56 -04:00
Jon Evans c98ad7218a Explicitly build fmt as static lib 2022-08-31 09:03:26 -04:00
Jon Evans ae6a2a6443 ADDED: Database libraries MVP
Allows placing parts from an external database that reference symbols from another loaded library.

Includes:
- nanodbc wrapper
- database schematic library plugin
- basic tests

Fixes https://gitlab.com/kicad/code/kicad/-/issues/7436
2022-08-26 10:51:13 -04:00
Jon Evans 20ba716c1f Patch nanodbc for postgres support 2022-08-26 09:38:11 -04:00
Jon Evans 63a6237d2d Remove second Boost find routine 2022-08-26 09:38:11 -04:00
Jon Evans 31c24f4421 Add nanodbc 2022-08-26 09:38:11 -04:00
Marek Roszko 96446cba1d Update sentry sdk 2022-08-15 20:48:53 -04:00
Marek Roszko ed08b0ecf6 Add some missing sentry-native cmake 2022-08-15 19:12:46 -04:00
Marek Roszko 6bc2f0eece add missing {fmt} cmake files 2022-08-15 07:52:42 -04:00
Jon Evans 6365a37042 Add {fmt} library 2022-08-14 22:49:55 -04:00
Alex fb7bc263de Slight optimization in RTREE_QUAL::RectSphericalVolume. 2022-07-16 19:51:32 +03:00
Seth Hillbrand 03c279ffd4 ADDED: Threadpool
Thread pools are long-lasting executors that have close to zero overhead
when launching new jobs.  This is advantageous over creating new threads
as we can use this for threading smalling jobs and smaller quanta.  It
also avoids the heuristics needed to determine the optimal number of
threads to spawn
2022-06-24 22:59:24 +00:00
Seth Hillbrand 8f1b2acdc6 Fix one missing commit for MSVC 2022-06-20 16:40:47 -07:00
Seth Hillbrand c483c58276 Patch pybind11 for MSVC
Re-comit of earlier ef38642bf1 after updating pybind11 to 2.9.2
2022-06-20 16:21:37 -07:00
Seth Hillbrand 8d003804e0 Update pybind11 to 2.9.2
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10729
2022-06-20 16:21:22 -07:00
Marek Roszko 9a0fa460d1 Add missing sentry-native file
gitignore gone wrong
2022-04-03 21:23:10 -04:00
Mark Roszko f0f33ef1d3 Introduce sentry for crash data collection 2022-04-02 01:21:55 +00:00
jean-pierre charras 9a342458fa Fix a few Coverity and compil warnings. 2022-03-26 16:21:23 +01:00
Sylwester Kocjan a65999b063 qa: Add Turtle 1.3.2 mocking framework 2022-03-18 17:51:09 +00:00
Marek Roszko 28ce11212c Emplace_back a bit a in clipper 2022-02-05 21:00:34 -05:00
markus-bonk be58ab679b Fix coding style policy violations and CMake version.
Fix violations of 4.2.2 Function Definitions and 4.2.3 Control
Statements.
Set the minimum CMake version required to build to 3.1.
Removed the Visual Studio solution and project files.
2022-01-28 12:21:42 +00:00
markus-bonk b9a27a8fab Fix build issues macOS and msys2
Added #if USE_DECLSPEC_PROPERTY condition to control use of
__declspec(property). The -fdeclspec now is not needed to compile using
clang.

Removed use of the IS_INTRESOURCE() macro to the inline method bool
IsIntResource() as the former depends on Windows.h.
2022-01-28 12:21:42 +00:00
markus-bonk aec7802fcf EDA_3D_VIEWER_FRAME: Implement SpaceMouse navigation and command export for 3D-viewer.
Full support for using a 3Dconnexion device in the 3D viewer has been added. Full 3D navigation is available for both the orthographic and perspective projections. Commands are exported and can be assigned to 3D mouse buttons. Any limitations to the functionality are limitations of the installed 3Dconnexion driver for the device and OS.

ADDED: A build option KICAD_USE_3DCONNEXION (default = ON) has been added to the main CMakeLists.txt. The option controls whether the SpaceMouse support is compiled into the solution.
2022-01-28 12:21:42 +00:00
markus-bonk f61c798295 Fix compilation errors in Fedora pipeline. 2022-01-28 12:21:42 +00:00
markus-bonk c99a4f4d85 Include the required third party code for the SpaceMouse implementation
The commit only adds the headers and code required by the SpaceMouse
implementation to compile and link. This extract from the 3Dconnexion
SDK is added to the third party directory to allow developers to build without
needing to acquire a cmake enabled version.
2022-01-28 12:21:42 +00:00
alexfanqi 01f0aad7c0 Add riscv64 support for libcontext
modified to match function arguments different from upstream

Author: Andreas Schwab
2022-01-27 13:12:43 +00:00
Ola Rinta-Koski dcab2833b8 PEGTL 2.x->3.x 2022-01-10 23:22:23 +00:00
Jeff Young e41a4d406a Cherry-pick MARKUP_PARSER from rockola/kicad-strokefont. 2022-01-02 14:57:03 +00:00
Peng Peng b7ab5330bf Adding the LoongArch CPU support for libcontext 2021-10-27 19:46:52 +00:00
Tomasz Wlostowski c60eecc165 thirdparty/dxflib: suport for vertex start/end line width attribute.
This change is required to correctly import DXFs exported by Cadence.
2021-10-25 17:37:38 +02:00
Marek Roszko fc3fb86cb5 Bump the dxflib version string to match upstream 2021-10-23 08:18:20 -04:00
Marek Roszko 643d7cc303 fix check for DXF R12 variables 2021-10-23 08:18:19 -04:00
Marek Roszko ade9418300 Add dxf write support for dimtad, dimtih 2021-10-23 08:18:19 -04:00
Marek Roszko e0ccf553f8 Add vertexIndex bounds check 2021-10-23 08:18:19 -04:00
Seth Hillbrand 62b7239ed1 Adjust M1 alignment for better performance 2021-10-18 13:27:08 -07:00
qu1ck a221f7aa56 Mark json validator lib explicitly STATIC 2021-09-25 13:24:10 +00:00
Marek Roszko daca9d21f2 Add dxf point import
Fix #9149
2021-09-12 19:38:52 -04:00
Seth Hillbrand 45c7ef7e76 Remove last pybind11 forcing non-debug libs 2021-08-31 09:19:26 -07:00
Seth Hillbrand fc01eb73ae Remove unused elif in FindPythonLibsNew.cmake 2021-08-31 09:12:14 -07:00
Marek Roszko ef38642bf1 Patch pybind11 for MSVC
Pulls a series of patches for MSVC options from earlier in tree
2021-08-31 06:35:35 -07:00
Seth Hillbrand 317fae2098 Update Pybind11 to prevent conflict with wxTranslate
We change the pybind templates '_' to be '_x' to avoid conflicting with
the wxTranslate macro `_`
2021-08-30 16:55:49 -07:00
Seth Hillbrand 84c7cc6c21 Update to pybind11 v2.7.1 2021-08-30 16:55:36 -07:00
qu1ck 1d17e12371 Add json-schema-validator library 2021-08-27 21:11:47 +00:00
qu1ck 2ba41c9b27 Add picosha2 library 2021-08-27 21:11:47 +00:00
Roberto Fernandez Bautista cad27f9baa Clipper: Use std::function for Z fill callback 2021-07-03 19:37:50 +00:00
Roberto Fernandez Bautista 83263784ea Define use_xyz in clipper.hpp to allow use of Z values 2021-07-03 19:37:50 +00:00
Marek Roszko 2bde19bde2 Patch pybind11 to use debug python libraries on windows 2021-06-01 20:18:24 +00:00
Marek Roszko 3c361aae59 Fix vcpkg find of python libraries 2021-06-01 20:18:24 +00:00
Seth Hillbrand d585b6580d Patchup pybin11 FindPythonLibsNew for MSVC 2021-06-01 20:18:24 +00:00
Seth Hillbrand 24f6cc99fa Add missing cmake 2021-06-01 20:18:24 +00:00
Seth Hillbrand 256f259627 Fix PyBind11 _ usage to be compatible with i18n 2021-06-01 20:18:24 +00:00
Seth Hillbrand 81d58bcea9 Working python window 2021-06-01 20:18:24 +00:00
Mark Roszko 27bf45417a Fix typo in arch name 2021-03-12 15:05:38 +00:00
Marek Roszko db1f457ff9 Add msvc flag definition for ARM64 2021-03-10 21:48:04 -05:00
Marek Roszko 204e615b49 Fix wrong offset in msys2 x64 libcontext implementation not saving fiber data pointer
This should have/may have been causing random crashes on calls into win32 api. fiber data is located at offset 0x20 of the stack not 0x18.
2021-03-07 15:55:23 -05:00
Marek Roszko ccaf352a5e Add /safeseh for 32bit msvc libcontext
Special flag thats default for modern platforms already
2021-03-04 22:20:58 -05:00
Marek Roszko 2bf488e0c7 Add cmake option to enable win32 fibers 2021-03-04 21:48:26 -05:00
Marek Roszko bdb141da0a Fix fiber local storage offset (crashfix) 2021-03-03 21:14:17 -05:00
Marek Roszko 320b519278 Add assembly based libcontext implementation for MSVC builds 2021-03-03 21:14:17 -05:00
Jon Evans 24e375742b Update nlohmann::json to 3.9.1
Release notes:
https://github.com/nlohmann/json/releases/tag/v3.9.1
2021-03-03 19:36:05 -05:00
Marek Roszko 907e282347 Silence some msvc warnings
- exception variables that were unused
- RAYSEG2D improperly foward declared with class instead of struct
- unused vars
2021-02-20 11:58:55 -05:00
Marek Roszko 627d321ec5 Remove questionable dropping of inline for msvc in markdown2html 2021-01-31 19:54:33 -05:00
Marek Roszko 9d0b16e814 bool/int type safety 2021-01-31 19:54:32 -05:00
Marek Roszko b17ba9d632 Tiny tiny cleanup 2021-01-31 19:09:28 -05:00
Seth Hillbrand 1a3ab551cf Cleanup
FindLineSegmentIntersection() was refactored in 2012 but there are a few
uses that didn't get updated.  This finalizes the cleanup

Fixes https://gitlab.com/kicad/code/kicad/issues/7365
2021-01-31 15:55:52 -08:00
Jiajie Chen ce8039c327 libcontext: Initial support for Apple Silicon
The assembly for apple_arm64 is adapted from linux_arm64 target with small modifications:

1. Re-enable FPU conditional save/restore as apple_x86_64 does
2. Workaround limitation in relocation in assembly for clang
2021-01-08 19:51:28 +00:00
Ian McInerney 580293c7fa libcontext: Call exit instead of random memory address on MSW x86_64
The original call would jump to a meaningless low address on error,
but the upstream Boost context and 32bit version of this function
call exit to properly terminate the code when this error occurs.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/6820
2020-12-23 23:40:56 +00:00
Ian McInerney 31c5776fc0 Add missing header to rtree
Another GCC11 header change that broke the build
2020-12-09 23:13:33 +00:00
jean-pierre charras 20880268bf fix a few Coverity warnings 2020-11-26 07:36:37 +01:00
jean-pierre charras e5daac97c2 fix compil warrnings (shadowed vars) 2020-11-20 09:13:31 +01:00
Marek Roszko 6dfcc8a755 dxflib_qcad: add <cstring> to includes for strlen() prototype
upstream commit
d4ea687c4a6039a43cc782fbbce477720df11e78
2020-11-19 19:19:59 -05:00
Marek Roszko 86d4daa591 dxflib_qcad: add support for flipped dimension arrows to dxflib
upstream: 2f8c19e2a4434f1ce2b94ac798028b9bb12c983a
2020-11-19 19:19:59 -05:00
Marek Roszko d7e10c22c6 dxflib_qcad: match rename of DimAngularData to DimAngularData2L
upstream 1655be6c7d58609397e9f04cfaff08336d69b20e
2020-11-19 19:19:59 -05:00
Marek Roszko baebf7036f dxflib_qcad: Saving dimension with custom text position
upstream commit b4c74180a6857c7b63f7a71e1236930e85c15134
2020-11-19 19:19:59 -05:00
Marek Roszko 5ea6755594 dxflib_qcad: add dimscale support for leaders
upstream commit
049e1bf95138f32360609b83372e358963a9dd9c
2020-11-19 19:19:59 -05:00
Marek Roszko ac31cee0cc dxflib_qcad: fix DL_POLYLINE3D flag definition
upstream commit
3504cddee254bec2240456d8b3acbbc2dec06fef
2020-11-19 19:19:58 -05:00
Marek Roszko 4b890212ba dxflib_qcad: fix LWPOLYLINE without Z values
upstream commit
715f02eee3f76e3862aeb788a2c814334f74186d
2020-11-19 19:19:58 -05:00
Marek Roszko 7fd37c39a1 dxflib_qcad: backport "cleanup"
upstream commits
6a43fa3c6d6a99f73bda7a36eaf3b78906d41380
f2db48daf183575a3767beed6345767901803cb9
722ee2223069afac1b5a3c02812242cd9f723b8a
2020-11-19 19:19:58 -05:00
Marek Roszko 1703eb8494 dxflib_qcad: cherry std::istream usage
upstream e0046e6dbff8148f5d8ef8e3f149ad99384c67a8
2020-11-19 19:19:58 -05:00
Marek Roszko e8ae7e91e2 Fix MSVC warnings in dl_dxf.cpp 2020-11-19 01:24:32 -05:00
Marek Roszko d0e504f26e Better name the include guard 2020-11-19 01:06:29 -05:00
Marek Roszko f7065a2643 Add missing include guard in gzip-hpp 2020-11-19 01:04:42 -05:00
Marek Roszko 9115f6031f Suppress msvc warning due to pragma gcc 2020-11-19 01:03:58 -05:00
Ian McInerney 11e6cac42b Introduce EGL backend support for the OpenGL canvas
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.
2020-11-11 00:41:02 +00:00
Jeff Young a730478d5d Fixes to Clipper fixes.
Clipper was only broken when rounding down, not when rounding up.
2020-11-04 15:25:44 +00:00
Jeff Young 791a50b493 Remove work-around in favour of real fix in Clipper. 2020-11-04 11:21:45 +00:00
Dominik Wernberger 6a93b523cf Add const specifier 2020-10-13 17:51:59 +00:00
Ian McInerney 00058f79d1 Update lemon to most recent upstream version
This fixes a missing variable initialization.
2020-09-22 12:34:05 +01:00
Ian McInerney 2becd368d9 Thirdparty: Properly handle error condition in nanosvg
ftell() returns -1 on an error, so it must be a long return
type, and we should test for its failure.

(found by Coverity)
2020-09-20 22:39:31 +01:00
Ian McInerney 68985490c6 Update lemon and its template to most recent upstream version
This should fix some Coverity warnings about memory management
in the lemon tool (less critical), but also fix improper
memory accesses in the generated parsers (labeled critical
by Coverity).

Ref: https://sqlite.org/forum/forumpost/edecf32da3
2020-09-20 22:27:11 +01:00
Marek Roszko f9e379c82a Minor format 2020-08-28 02:30:04 +00:00
Marek Roszko cb013604a9 jump_fcontext should set the outValue of fiber being switched to rather the one being switched from
Fixes #5162
2020-08-28 02:30:04 +00:00
Marek Roszko 3b1f1f7b6a Use CreateFiberEx instead of CreateFiber, ConvertThreadToFiberEx instead of ConvertThreadToFiber
- Allows specifying FIBER_FLAG_FLOAT_SWITCH to save FP registers (it doesnt by default on win32 but does on win64)
- Specify a commit stack size one byte less than the reserve stack size or else Windows rounds up to the nearest allocation size above the desired size
2020-08-28 02:30:04 +00:00
Seth Hillbrand a38c2aad1f ADDED: Support compressed STEP and VRML files
This adds support for opening .stpZ, step.gz and .wrz files where the
files have been compressed using ZIP or gzip according to the "standard"
published by the MBx volunteer forum at
https://www.cax-if.org/documents/rec_prac_file_compression_v12.pdf

Fixes https://gitlab.com/kicad/code/kicad/issues/2479
2020-08-19 03:20:30 +00:00
Tomasz Wlostowski 8b716b2b5c thirdparty/lemon: post-rebase fixes 2020-08-13 14:50:59 +02:00
Tomasz Wlostowski 4abe71d2ef libeval_compiler: implemented unary +/- operators 2020-08-13 14:50:59 +02:00
Tomasz Wlostowski c88c8102e5 libeval_compiler: fixed segfault for "(number)" expressions. 2020-08-13 14:50:59 +02:00
Tomasz Wlostowski a5a06e3c89 libeval_compiler: general clean up of the Lemon grammar + some smart pointers + killed all memory leaks. WIP! 2020-08-13 14:50:59 +02:00
Seth Hillbrand 7c455f2357 First pass at DRC RTree functionality
This implements a copper-layer RTree with functions for iterating over
the elements in a copper layer and providing Nearest Neighbor returns
for BOARD_CONNECTED_ITEMS
2020-08-11 16:52:29 -07:00
Ian McInerney 0a1d8c1aaa Move lemon parser generation into build directory
This moves the generated files out of the source tree and into
the build directory. They are now regenerated each time they are
needed, based on the timestamp of the generated file compared to
the timestamp of the lemon file.

To do this, we also bundle lemon into the thirdparty directory
and build it for ourselves since it is a very tiny program and
not all platforms seem to distribute it in a consistent manner.

Fixes https://gitlab.com/kicad/code/kicad/issues/5013
2020-08-10 13:53:54 +00:00
Jeff Young 16c645bfd9 Quiet the CLang compiler.
(It's a false-positive, but CLang doesn't seem to know any better.)
2020-08-02 22:45:48 +01:00
Jon Evans 0d70cb70ea Update nlohmann::json to 3.9.0
Release notes:
https://github.com/nlohmann/json/releases/tag/v3.9.0
2020-08-02 13:11:16 +00:00
Seth Hillbrand acf4756e73 Remove extraneous build warning 2020-07-25 14:10:53 -07:00
Tomasz Wlostowski 151b4e4e5e libcontext: clean up own's shit when coroutine call is over (MSVC only) 2020-07-22 16:57:54 +02:00
Ian McInerney b5adf5bb21 Only try to remove the implicit conversion warning if it is supported 2020-07-03 02:59:19 +01:00
Seth Hillbrand 4ef02fd699 Replace TTL delauney triangulator
Removes the TTL triangulator in favor of the delaunator triangulator.
This removes the only AGPL code in the KiCad codebase and therefore
allows the full project to be licensed under the GPLv3.
2020-06-25 18:45:27 +00:00
Ian McInerney e4b6487fca Overhaul compiler warnings infrastructure
* Track our warnings separate from normal flags
* Remove all warnings from the SWIG code
* Add more GCC warnings
2020-05-06 01:47:20 +01:00
Thomas Pointhuber b707c84b62 Use Record handling for parsing
Now, we know how big a record is, and should be able to parse all boards without missing bytes?
2020-04-03 23:22:24 +00:00
jean-pierre charras 48fba00eb4 Fix a compil warning.
Fixes #3964
https://gitlab.com/kicad/code/kicad/issues/3964
2020-03-05 09:54:14 +01:00
Jon Evans 1449af40ed Add forward-declaration header for nlohmann/json 2020-02-19 23:43:43 -05:00
jean-pierre charras 79e7a27492 Fix a few Coverity warnings. 2020-02-02 08:55:24 +01:00
Jeff Young e42788a3eb Avoid divide-by-zero. 2020-01-15 18:21:42 +00:00
Jeff Young 32823a0855 Handle nullptr. 2020-01-15 17:51:48 +00:00
Seth Hillbrand 6a47d0f507 RTree: Fix iterator in single branch trees
In a single branch tree, we need to verify that all leaves do not match
the input search before returning.

Fixes #3764 | https://gitlab.com/kicad/code/kicad/issues/3764
2020-01-14 10:42:04 -08:00
Jeff Young 91d1508c16 Fix some Coverity identified issues. 2020-01-13 20:16:40 +00:00
jean-pierre charras c3fc98c31d Fix a compil error.
Fixes #3763
https://gitlab.com/kicad/code/kicad/issues/3763
2020-01-13 08:59:57 +01:00
Jeff Young 9e8a66a0a3 Don't try to clear memory if the bitmap has an invalid size. 2020-01-13 00:18:49 +00:00
Mark Roszko 94a9e81a0f Fixes invalid initialization for Rect in rtree iterator.
The rtree has the rect array sizes templated by NUMDIM, initializing with 3 default values violates the templating.
2020-01-11 15:49:51 +00:00
Seth Hillbrand 6e5e453d0d Replace EESchema DLIST
This moves EESchema DLIST structures to rtree.  These changes are more
fundamental than the pcbnew changes from 9163ac543 888c01d11 d1877d7c1
and 961b22d60 as eeschema operations were more dependent on passing
drawing list references around with SCH_ITEM* objects.
2020-01-10 06:37:08 -08:00
Ian McInerney 792e841ecf Update readme for libcontext
Provide the background for why this library exists
2020-01-07 20:55:15 +00:00
Ian McInerney 3342055af6 Remove section changes inside libcontext _asm calls
Changing the section like this in inline assembly
is not supported, and leads to issues because code
following the inline assembly macro ends up in the
wrong assembly section. This was causing linking
errors on gcc.

The files appear to be compiled so that the stack
isn't executable anyway, so we don't need to manually
create the section to say that.

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93190
2020-01-07 18:53:35 +00:00
Ian McInerney 13b6028e1b Refactor all math into a new kimath library
* Split up the thirdparty code into the thirdparty folder (#3637)
* Create a new kimath static library containing all the math functions

This is part of cleaning the build system for #1906.
2020-01-07 17:12:59 +00:00
Jon Evans 772835e3e3 Add fifo_map and use it for Gerber job file generation 2020-01-04 11:05:09 -05:00
Jon Evans 3cb05155be Remove one level of nesting; add README.txt 2020-01-04 10:46:50 -05:00
Jon Evans 4ae4c4e243 Switch from JSON11 to nlohmann/json in GerbView
See #3638
2020-01-04 10:46:49 -05:00
Ian McInerney 5c0656d97f Move potrace and libcontext into thirdparty directory
Part of the cleanup in #3637
2019-12-28 18:17:55 +00:00
Ian McInerney 6b9f2ac91a Move markdown2html into thirdparty directory
Part of https://gitlab.com/kicad/code/kicad/issues/3637
2019-12-19 17:57:15 +00:00
Ian McInerney 116ac9aa75 Move dxflib, tinyspline and nanosvg into a thirdparty library directory
Part of fixing https://gitlab.com/kicad/code/kicad/issues/3637
2019-12-19 17:41:02 +00:00