685 Commits

Author SHA1 Message Date
Mark Roszko
667dccb163 Add rdynamic to QABUILD executables. 2025-09-01 12:20:22 -04:00
Mark Roszko
cf09e8ae88 Adjust flags for dynamicdeopt to build 2025-08-30 13:46:38 -04:00
Mark Roszko
1ff5f09c3a Add cmake flag for enabling MSVC Dynamic Debugging in release 2025-08-30 13:35:40 -04:00
Ian McInerney
c87211e1df Move Poppler library inclusion to the kiplatform library where it is used 2025-08-18 15:35:59 +01:00
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
Seth Hillbrand
416e54f0d5 Update template selector to modern webview
Allow more attractive templates.  Start of building singular
template+new project layout

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15987
2025-08-04 22:20:54 -07:00
Seth Hillbrand
5b3d4fc91d Put PCH behind a cmake flag
Allows developers to turn it off if they don't like/don't want it
2025-07-30 17:04:06 -07:00
jean-pierre charras
aa892efc17 Fix a build issue (related to protobuf) on mingw/msys2 2025-06-06 18:28:23 +02:00
Seth Hillbrand
1a432cae3b Fallback for ProtoBuf detection
Avoid always having to write out the setting for older systems
2025-06-05 12:10:15 -07:00
Michal Suchanek
8110347844 Define GL_SILENCE_DEPRECATION globally on OS X 2025-05-11 15:50:10 +00:00
Michal Suchanek
81bbb5e67b Define WIN32_LEAN_AND_MEAN globally
In modern Windows code WIN32_LEAN_AND_MEAN should be defined.

Without this define windows.h pulls in some legacy headers, notably
winsocks.h. Modern code that cares about winsocks includes winsocks2.h
which conflicts with winsocks.h. Other code that does not care about
winsocks (OpenGL, fontconfig, ...) includes windows.h pulling in legacy
winsocks.h, causing definition conflicts and build errors.

At worst defining WIN32_LEAN_AND_MEAN requires explicitly including some
additional headers on Windows.
2025-05-11 15:50:10 +00:00
Michal Suchanek
fbf0d32391 cmake: Fix wxWidgets platfrom detection
wx-config --selected-config gives
x86_64-w64-mingw32-msw-unicode-static-3.2

Which in turn gives wxWidgets port 'x' with "^[msw|qt|gtk|osx]*"
2025-05-11 15:50:10 +00: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
Seth Hillbrand
b567532af7 Add minimum libgit2 version
Crashes have been reported with libgit2 1.3.2 and ssh key handling

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20204
2025-03-20 06:56:34 -07:00
Marek Roszko
dbab601c0a Bump cmake minimum
This is so we can use the ENVIRONMENT_MODIFICATION feature across all platforms and simplify some QA cmake. Right now MSVC is special cased to use it since the other PATH variable editing doesn't work due to semicolon/colon issues in cmake parsing.
2025-02-24 19:48:58 -05:00
Marek Roszko
dc5276c1df Add Zc:inline for msvc 2025-01-22 20:23:32 -05:00
Marek Roszko
90465d6261 Add windows runtime copy with install step under msvc 2025-01-22 20:20:46 -05:00
Marek Roszko
df1b5dd62c Move 2 warn flags to same place as the rest 2025-01-22 19:43:13 -05:00
Jon Evans
6122fca858 Change default for KICAD_USE_CMAKE_FINDPROTOBUF 2025-01-18 10:23:10 -05:00
Seth Hillbrand
074e6df3bc Revert "Move thread pool to singleton class"
This reverts commit 361f61a02380881efb59b1cebfdc3e73322b3d3c.
2025-01-03 21:22:44 -08:00
Seth Hillbrand
361f61a023 Move thread pool to singleton class
Having thread pool as its own singleton in the library meant that each
kiface had its own threadpool, leading to many multiples of the threads
being started.  Placing a singleton class in PGM_BASE ensures that all
kifaces use the same thread pool.

The singleton class can be extended to provide single instance
guarantee for any element across kifaces
2025-01-03 13:51:11 -08:00
Jon Evans
250fa52474 Enable IPC API by default 2024-11-03 12:30:18 -05:00
jean-pierre charras
b6bf7d6f44 Revert "Gerbview: Add build option do enable/disable the 3Dconnexion support."
This reverts commit 336532303e4c51d6dd532389e27fc0396094ad8b.
A better fix for the link issue on MSYS2 will be committed
2024-09-21 16:28:05 +02:00
jean-pierre charras
336532303e Gerbview: Add build option do enable/disable the 3Dconnexion support.
On msys2 a link issue (3 undefined symbols) prevent Gerbview to be built.
So I added this option (KICAD_ENABLE_3DMOUSE_GERBVIEW, enabled by default)
to disable 3Dconnexion support on request.
2024-09-21 13:24:43 +02: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
Seth Hillbrand
ae5678f3f6 Allow recovery after error in asan 2024-07-05 11:16:20 -07:00
Alex Shvartzkop
5b70983692 Detect wxWidgets port in CMake (KICAD_WX_PORT). 2024-06-01 06:49:52 +03:00
Mark Roszko
d3f69a11f2 Add policy for CMAKE_MSVC_DEBUG_INFORMATION_FORMAT 2024-05-07 18:35:30 +00:00
Mark Roszko
87ba1e18bf Prepend ccache as it should be first 2024-05-07 15:14:54 +00:00
Mark Roszko
ebbfaeaeb7 Alter the pdb mode for ccache 2024-05-07 13:24:11 +00:00
Mark Roszko
eda65f5fa8 Fix ccache and distcc setup
RULE_LAUNCH_COMPILE is not meant for use. It's meant for internal ctest use only per the documentation.
2024-05-07 13:08:11 +00:00
Marek Roszko
a8972f54c4 Put idf tools behind a cmake flag that can be turned off 2024-04-23 22:43:10 -04:00
Marek Roszko
262d94964f Lets try C++20 2024-04-12 23:32:18 -04:00
Jon Evans
c6e784dae3 Fix order of install targets for macOS 2024-04-05 11:39:52 -04:00
Seth Hillbrand
c9b1134417 Move FindProtobuf to default on for Linux 2024-04-03 10:41:14 -07:00
Seth Hillbrand
6c73e70dad Force installation of protobuf-compiler at configure step 2024-04-03 10:30:09 -07: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
Alex Shvartzkop
fa6dc95553 Define __cplusplus according to C++ standard version on MSVC.
Otherwise, macros like KI_FALLTHROUGH are not defined properly.
2024-03-03 23:28:55 +03:00
Marek Roszko
46f9a9a005 Make the update check cmake option default for all platforms 2024-03-02 14:15:52 -05:00
Jon Evans
536e7b252d Use deb_system Python sysconfig scheme on Debian
(cherry picked from commit 99f9941067c3b3db2f6c94a0659030259ffeecf9)
2024-02-24 19:34:28 +00:00
Marek Roszko
ef06e95798 Add LTCG option for win32 2024-02-02 20:46:32 -05:00
Marek Roszko
9195de9849 Disable the update check on non-apple, non windows systems by default 2024-01-03 19:32:05 -05:00
Marek Roszko
53a90ccb88 Enable macOS builds to run from build directory.... 2023-11-13 20:23:59 -05:00
Ian McInerney
d78d4830e4 Always output test failures when they happen
With CMake 3.17+, we can specify arguments for ctest to use when run, so
always specify output-on-failure to always show the failed test output.
2023-10-27 13:19:53 +01:00
Marek Roszko
aa2a0cdd16 We dont actually need to link to openssl 2023-10-20 19:57:33 -04:00
Jon Evans
5dd3631df2 Revert "Add security library include in CMake for MacOS"
This reverts commit 36b0aa6050d836871c4ec060f6ef71309a78c35e.
2023-10-20 11:26:22 -04:00
Seth Hillbrand
36b0aa6050 Add security library include in CMake for MacOS 2023-10-20 16:39:37 +02:00