259 Commits

Author SHA1 Message Date
Mark Roszko
e72def55a9 Remove moronic pybind forcing expectation of python release builds 2025-09-11 07:16:52 +00:00
Seth Hillbrand
7deff606be Update Pybind11 to 3.0.1 2025-09-10 13:02:24 -07:00
Seth Hillbrand
6e2b20ed0e Update BS Threadpool to 5.0 2025-09-10 13:02:24 -07:00
Mark Roszko
d5e342b64d Updated turtle mocks to 2.0.0 properly (it was already mostly there being off-tag instead of the mentioned tag) 2025-09-01 13:49:28 -04:00
Mark Roszko
d5c0d040b4 Add missing fast_float files 2025-08-29 22:18:08 -04:00
Mark Roszko
b3de964eff Add fast_float for float parsing.
2x faster than both std::from_chars and strtod on Windows.

macOS will get to benefit from a modern from_chars impl too.
2025-08-29 21:48:24 -04:00
Seth Hillbrand
9013ddae43 Suppress deprecation warnings
Treats thread-pool as a system library so we don't see the deprecation
warnings that we're not going to address anyway
2025-08-25 16:31:39 -07:00
Seth Hillbrand
4dab336f95 One more pass at optimizing the board outline gen
Instead of iterating through the segment list each time, we use a kdTree
structure to efficiently query a 2d point cloud for the nearest
neighbors

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21352
2025-07-22 12:49:13 -07:00
Seth Hillbrand
4c03ab8ebb Finally remove other_math routines
Replace with standard SEG and VECTOR2 alternatives.  Add QA test for
additional SEG-line intersection routine
2025-07-21 11:03:17 -07:00
Michal Suchanek
ca54db2db4 windows: Fix build on case sensitive filesystem 2025-05-11 15:50:10 +00:00
jean-pierre charras
e8a9335c44 pegtl: fix compil warnings about a deprecated header (ciso646). 2025-05-05 16:23:06 +02:00
John Beard
4c8b971021 Eeschema: Symbol editor: pin table CSV interchange
This adds the ability to export the pin table content to a CSV file
or the clipboard as CSV, then re-import it from CSV or TSV. This allows:

* to round-trip pin table data via a spreadsheet program, so that the pin
  data can be manipulated in a richer/more familiar editing environment
* an import method to bring in tabular pin data from other formats
  "semi-automatically", without having to write a full-blown symbol generator.

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/19207
2025-05-03 23:22:35 +08:00
Seth Hillbrand
e75076ab41 Revert "Replace glew with epoxy"
This reverts merge request !2217
2025-04-22 15:16:58 -07:00
Michal Suchánek
0c36e16292 Replace glew with epoxy
Glew has the problem that it has to be selected at build time if GLX or
EGL is supported by the library, and this in not encoded in the library
name, nor ABI, nor anything.

Then it's easy to get into the situation that a binary is built but
cannot run because glew supports an API different from the one used by
wxWidgets, or the binary fails to link in the end after all objects are
compiled.

epoxy can support both with the same library avoiding this problem.

epoxy is not initialized explicitly, replaced initialization with
version check where one was not done already.

It seems to be available as vcpkg https://vcpkg.link/ports/libepoxy

There are problems related to GL context switching on Windows which does
not seem to be used in kicad
https://github.com/anholt/libepoxy#known-issues-when-running-on-windows
There is also a problem related to multithreaded rendering on Windows
https://github.com/anholt/libepoxy/pull/265 It's harder to tell if
threading is used for rendering but it does not look like kicad is doing
anything complex enough to warrant using multiple rendering threads.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20630
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12543
2025-04-22 12:54:39 -07:00
JamesJCode
1c8e20b61f Further chasing of non-standard std::char_traits implementations 2025-04-16 17:48:46 +01:00
JamesJCode
a5be581b1b Add char_traits<T> specialisations for wxUniChar and NANODBC_SQLCHAR
when building on Apple with Clang >= 17.

These specialisations are not strictly required by the C++ standard,
and have been removed from LLVM.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20631
2025-04-15 20:57:23 +01:00
Marek Roszko
4248fba976 Add back custom add_choices function to argparse 2025-03-04 18:31:53 -05:00
Marek Roszko
9eb2b13833 Update argparse to latest 2025-03-04 18:31:53 -05:00
Jan Wichmann
7eb07c00a2 Fix MSVC build error for VC 17.13+ 2025-02-27 23:41:08 +00:00
Seth Hillbrand
3260aa2213 Utilize libpopcnt
We need to be sure to reference the include when pulling in
dynamic_bitset
2025-01-29 08:18:46 -06:00
Jon Evans
3f7e459d62 API: add a schema for plugin config files
Also flip the dependence between json_schema_validator and kicommon,
and create a shared JSON_SCHEMA_VALIDATOR so that we don't have to
copy/paste the schema loading code as much
2025-01-05 17:08:33 -05:00
Jon Evans
722ffa1c66 Update magic_enum to v0.9.7 2025-01-04 13:40:11 -05:00
Jon Evans
5ef9537364 Update {fmt} to 11.1.1 2025-01-04 13:40:11 -05:00
Seth Hillbrand
0b2d4d4879 Revise Copyright statement to align with TLF
Recommendation is to avoid using the year nomenclature as this
information is already encoded in the git repo.  Avoids needing to
repeatly update.

Also updates AUTHORS.txt from current repo with contributor names
2025-01-01 14:12:04 -08:00
Seth Hillbrand
06e113c85d Quiet GCC warnings 2024-12-30 12:57:15 -08:00
Seth Hillbrand
e9bc8cfe9d Give Clipper1 a Viking funeral
Clears out the last spot where we were only using Clipper1 (how'd I
miss that?) and remove all calls to the Clipper1 structures
2024-12-23 17:12:09 -08:00
Jon Evans
d0b2334ceb PNS: Support via stacks 2024-11-04 21:30:38 -05:00
Jon Evans
a007cc438f Update {fmt} to 11.0.2 2024-09-21 17:44:10 -04:00
Seth Hillbrand
5e0abadb23 Reorganize layer numbering
F_Cu = 0
B_Cu = 2
Remaining internal copper layers are even and incrementing

Non-copper layers are odd and incrementing.

This means that we can no longer do things like:
for( PCB_LAYER_ID layer = F_Cu; layer <= B_Cu; ++layer)
Instead, we have the class LAYER_RANGE:
for( PCB_LAYER_ID layer : LAYER_RANGE( F_Cu, B_Cu) )

Similarly, gt/lt tests should not refer to the integer value of the
layer.  We have functions such as IsCopperLayer to test whether a layer
is copper or not.

When using the connectivity RTree, the third dimension is layer, so we
provide B_Cu with the special INT_MAX value, ensuring that elements
between F_Cu and B_Cu will be identified.  There is a new, special
function GetBoardLayer() for interfacing with CN_ITEMS

Similarly, PNS layers remain unchanged and sequential.  A set of
interface functions is provided to map PNS layers to Board layers and
back.  This allows the PNS_LAYER_RANGE to function as expected
2024-09-06 23:07:58 +00:00
Seth Hillbrand
7214ef1f14 Remove basic masking class map_string_utf8
This is just std::map<std::string, UTF8>, using the class just masks
what it is and adds unclear functions.
2024-08-19 11:51:13 -07:00
jean-pierre charras
a53dd998b9 Clipper2: fix a compil warning with gcc 14 (already fixed in Clipper2 repo) 2024-05-21 19:56:49 +02:00
Alex Shvartzkop
4ecca01392 Improve build times by not leaking <filesystem> everywhere. 2024-05-06 02:26:16 +03:00
Jeff Young
10aec91075 lint reduction 2024-05-05 12:55:38 +01:00
Marek Roszko
2f0ff4e557 Update sentry-native to 0.7.2 2024-04-29 22:05:05 -04:00
Marek Roszko
cd886a19d3 Partially update the json validator 2024-04-12 20:00:12 -04:00
Jon Evans
f613cd1cb4 ADDED: A new IPC API based on protobuf and nng
Details, documentation, and language bindings are works in
progress and will be evolving over the course of KiCad 9
development.
2024-04-02 19:34:36 -04:00
Marek Roszko
d134d7cc2a Add missing include to force correct linkage 2024-03-22 06:48:47 -04:00
Marek Roszko
e32b26ebeb Move JSON_SETTINGS and PARAMS to kicommon 2024-03-20 23:29:42 -04:00
Roberto Fernandez Bautista
69107816f1 nanodbc: Fix use after free
Cherry picked from upstream commit e24383436703c9151af1e22652e7d4dbbb52fc15

e243834367
2024-03-19 18:50:20 +01:00
Mark Roszko
72d83cd5de Revert "Move JSON_SETTINGS and PARAMS to kicommon"
This reverts commit 81855aaaa6bd2fd1bb2d812f9e64664fc1e7c18e
2024-03-18 00:08:46 +00:00
Marek Roszko
81855aaaa6 Move JSON_SETTINGS and PARAMS to kicommon 2024-03-17 18:11:49 -04:00
Alex Shvartzkop
1126227206 Add add_choices accepting std::vector to argparse for convenience. 2024-03-03 21:21:45 +03:00
Alex Shvartzkop
991b4299d6 Update argparse.
Otherwise .choices doesn't work properly.
See https://github.com/p-ranav/argparse/issues/307
2024-03-03 21:21:41 +03:00
Steven A. Falco
b352b1484f Patch clipper for gcc on Fedora 2024-02-21 19:23:49 +00:00
Marek Roszko
d6d25c030e add sentry-native files missed in earlier commit 2023-12-18 22:10:40 -05:00
Marek Roszko
421cf3d344 sentry-native update to 0.6.7 2023-12-17 21:39:10 -05:00
Marek Roszko
de2f5f6547 argparse update 2023-12-17 21:29:05 -05:00
Seth Hillbrand
4a9994931a Avoid double-move
This was flagged by coverity but doesn't seem to be an actual issue in
g++/clang.  It technically leaves the moved rvalue in a "valid but
undefined state", so it is best to avoid.  The single copy into an
lvalue is (I think) cheap
2023-12-17 21:25:39 -05:00
Marek Roszko
33f75fbd0a Update bs_thread_pool to 3.5.0 2023-12-17 21:25:31 -05:00
Marek Roszko
8e6b8911c8 Update nlohmann_json to 3.11.3 to silence char_traits deprecated warning 2023-12-17 21:14:08 -05:00