109 Commits

Author SHA1 Message Date
Seth Hillbrand
23c1a68da8 Make printing consistent with plotting.
How you ask?  Plot first -> then read the PDF and print directly to the
platform-specific printers.  Roundabout?  Yes.  Better than wx printing?
Darnbetcha.

Also allows multi-size page printing and proper margins and print
preview

Fixes https://gitlab.com/kicad/code/kicad/-/issues/1831
2025-08-16 20:07:45 -07:00
Seth Hillbrand
0a5de5010f ADDED: Spacemouse support for Linux
Uses libspnav to handle spacemouse data.  Overlays on existing
spacemouse framework to handle view activation

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16133
2025-08-12 07:04:54 -07:00
Mark Roszko
4f8a4e4e2b Add CreateResourceCpp helpers for future use 2025-08-07 00:13:54 -04:00
Seth Hillbrand
ab5aa661e9 Fix a few more stagglers for floating point
Update banned functions to better catch these

- page size
- erc/drc reports
- x/y position files
- color alpha
- footprint reports
- specctra
2025-07-15 13:27:45 -07:00
Seth Hillbrand
55da0e46af Remove locale-specific floating point from io
Use only C-locale functions wxString::ToCDouble and fmt::format{}
functions so that we do not need to set the locale for file io
operations

This also introduces a cmake check that looks for certain banned
functions (strtod, strtof and atof) that convert strings into doubles
by the user locale or formatting specifiers like %f/%g that convert
doubles into strings by the users locale.  It will prevent compilation
in this case.

For the limited cases where we want to show the user a string in their
locale, we have an override string "format:allow" that can be added to
lines in order to allow them with %f/%g format specifiers
2025-07-14 14:26:00 -07:00
Mark Roszko
62bd9c1274 Use the native arm64 msvc compiler if native 2025-07-08 23:17:46 -04:00
Mark Roszko
6a719e2c91 Disable C4355 warnings 2025-06-15 10:06:20 -04:00
Mark Roszko
5f145d02bd Disable WX_USE_REL_AND_DBG under vcpkg as it doesnt really play nice with lib and debug/lib
This is usually fixed by the hackjob in vcpkg for the wxwidgets find module being so...crazy
2025-06-14 15:07:46 -04:00
Mark Roszko
6ded31927b Fix accidentally uncommented debug msgs 2025-06-14 13:58:45 -04:00
Marek Roszko
10331e32e0 Fix our FindwxWidgets.cmake that actually always had the wrong lib search path for wx vcpkg 2025-06-14 13:31:19 -04:00
Michal Suchánek
206d6ee0b0 Set KICAD_USE_EGL automagically
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20630
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12543
2025-04-30 13:33:47 -07: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
Steven A. Falco
688448f9ab Fedora 43 will need python 3.14 support 2025-03-31 19:46:55 +01:00
Seth Hillbrand
8e10c539f5 Remove dependency on Visual lib for OCC 2025-03-05 11:03:07 -08:00
Seth Hillbrand
fdcfa8f354 Add additional OCCT search path 2025-03-04 20:00:40 -08:00
Wayne Stambaugh
ef49d83bc1 Begin version 10 development. 2025-02-19 11:01:40 -05:00
Wayne Stambaugh
e9bb55ab8a Begin version 9.0.1 development. 2025-02-19 10:51:49 -05:00
Wayne Stambaugh
286b0611fe Tag stable version 9.0.0 release. 2025-02-19 10:49:49 -05:00
Jon Evans
0ca9791577 Fix some GCC build warnings 2025-02-14 22:20:20 -05:00
Wayne Stambaugh
cd23dca90a Tag stable version 9.0.0 release candidate 3. 2025-02-07 16:35:35 -05:00
Mark Roszko
afb61b3b4e Disable C4746 2025-01-31 03:48:29 -05:00
Marek Roszko
df1b5dd62c Move 2 warn flags to same place as the rest 2025-01-22 19:43:13 -05:00
Wayne Stambaugh
8d20cf454b Tag stable version 9.0.0 release candidate 2. 2025-01-17 15:13:54 -05:00
Wayne Stambaugh
c156bdd8af Tag stable version 9.0.0 release candidate 1. 2024-12-20 19:50:33 -05:00
John Beard
8de99b8077 Cmake: avoid policy warning in newstorke upgrade target 2024-11-27 19:21:36 +08:00
Alex Shvartzkop
3b987776c7 ADDED: STL and PLY (since OCCT 7.7.0) 3D model export. 2024-11-04 16:15:02 +03:00
John Beard
889aee3b1a Newstroke: add CMake targets to manage the files 2024-08-14 14:28:54 +01:00
Mark Roszko
a7d493a6a5 Fix python find directly on arm64 windows 2024-07-31 17:45:25 -04:00
Mark Roszko
723fa57b84 Add swig4.2 for linux platforms find 2024-07-18 18:01:38 +00:00
Jon Evans
58a2159fa9 Support SWIG 4.1 2024-07-18 08:56:43 -04:00
Seth Hillbrand
77797103f7 Add ability to embed files in various elements
Schematics, symbols, boards and footprints all get the ability to store
files inside their file structures.  File lookups now have a
kicad-embed:// URI to allow various parts of KiCad to refer to files
stored in this manner.

kicad-embed://datasheet.pdf references the file named "datasheet.pdf"
embedded in the document.  Embeds are allowed in schematics, boards,
symbols and footprints.  Currently supported embeddings are Datasheets,
3D Models and drawingsheets

Fixes https://gitlab.com/kicad/code/kicad/-/issues/6918

Fixes https://gitlab.com/kicad/code/kicad/-/issues/2376

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17827
2024-07-15 16:06:55 -07:00
Alex Shvartzkop
0336fdbd54 Update path finding in FindwxWidgets.cmake (from upstream CMake). 2024-06-01 06:48:56 +03:00
Marek Roszko
0354345963 Fix another spot the logger for boost test is hardcoded 2024-05-30 20:17:55 -04:00
Alex Shvartzkop
8fd12d8b7e Allow reading VRML models for glTF export.
Note that some VRML 2.0 models fill fail until our patches are integrated into OCCT 7.9.0.
2024-05-16 21:57:48 +03:00
Marek Roszko
25ebf99b9a Add note about armasm64 workaround 2024-05-07 21:36:49 -04:00
Steven A. Falco
f8c8dcde13 The upcoming Fedora 41 will use python 3.13
The Fedora folks are currently working on updating python to version
3.13 in Fedora 41.
2024-05-02 20:50:05 +00:00
John Beard
2f3196c18c Fix docset generation 2024-05-01 23:31:21 +08:00
Jon Evans
2b1f56ebc8 Disable a MSVC warning seen in protobuf generated code
This warning is not very useful and is disabled
by default when not using /Wall
2024-04-03 18:10:21 -04:00
Marek Roszko
58913a0616 Add missing gltf find in occ 7.8 2024-04-02 21:06:48 -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
303bc19ce8 Use macro not function for the occ lib find 2024-04-01 21:54:43 -04:00
Marek Roszko
c8e41dcfe8 Fix cmake find of opencascade libraries for occt 7.8
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17654
2024-04-01 20:49:33 -04:00
Alex Shvartzkop
e71cbea7f8 Use a version string without the extra packaging info in drawing sheets.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17176


(cherry picked from commit c59fac4089f5ee0eaca00f73830d04e544e784ad)
2024-02-29 01:24:39 +00:00
Wayne Stambaugh
2194f99341 Begin version 9 development. 2024-02-22 18:11:04 -05:00
Wayne Stambaugh
942661fc10 Tag release version 8.0.0. 2024-02-22 17:58:13 -05:00
Wayne Stambaugh
afae6e2e9d Tag stable version 8.0.0 release candidate 3. 2024-02-16 08:59:24 -05:00
Marek Roszko
0147dd8699 Tweak the boost test logger config 2024-01-21 15:52:53 -05:00
Wayne Stambaugh
ebb69bdfa4 Tag version 8 release candidate two. 2024-01-21 12:02:38 -05:00
Wayne Stambaugh
7461b4c720 Tag version 8 release candidate one. 2024-01-12 12:09:59 -05:00