Commit Graph

620 Commits

Author SHA1 Message Date
Seth Hillbrand 6fd60c5561 Fixup python module install
INSTALL(FILE) does not handle setting linux-specific attributes in the
same way that INSTALL(TARGET) does.  This patch is suggested by
StefanBruens

Fixes https://gitlab.com/kicad/code/kicad/issues/9974
2022-06-22 13:29:08 -07:00
Fabien Corona 0d35d69f70 ADDED: Read IBIS files 2022-06-09 18:30:51 +00:00
Roberto Fernandez Bautista 80c8cfbbda Add PEGTL playground tool 2022-06-09 17:35:00 +01:00
Marek Roszko c34fb494b1 Reorder pybind11 to be after we find the interp and libs ourselves
Our python find module is patched for vcpkg and we want it to execute first.
2022-05-02 00:44:06 -04:00
Mark Roszko d16a3573f6 Remove errant phoenix message when disabled 2022-04-30 17:53:57 +00:00
Marek Roszko 8f63aea0c3 Bump boost minimum per previous discussion 2022-04-09 07:42:31 -04:00
Mark Roszko f0f33ef1d3 Introduce sentry for crash data collection 2022-04-02 01:21:55 +00:00
Marek Roszko d6c1f52b55 Plant the ability to verify code signing signatures when trying to load kifaces
Off by default and intended for use in released builds only
2022-03-12 21:40:47 -05:00
jean-pierre charras f14ef477cc Fix a incorrect filename in a copy command (MSW specific).
Also fix a regression and respect the KICAD_BUILD_QA_TESTS build option.
2022-03-12 11:04:57 +01:00
Marek Roszko 6b9fc02f59 Switch the kiface extension on windows to native dll
Fixes issue where Windows really wants to see the DLL extension to load the resource metadata
2022-03-11 21:10:41 -05:00
Mike Williams a5e8575091 Eeschema: Implement orthogonal dragging
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1956
2022-02-10 18:38:40 +00:00
Marek Roszko 3733ca4500 Set a minimum freetype version under msvc at least 2022-02-06 21:14:40 -05:00
Seth Hillbrand 098e8f7d9b Revert "cmake: adding KICAD_MACOSX_APP_BUNDLE option"
This reverts commit ea9f960cc1.

Reverted for updates as this currently breaks kicad-mac-builder
2022-01-31 15:57:56 -08:00
Seth Hillbrand 849e979307 Default Spacemouse OFF for now
Currently, the SpaceNav library is only implemented for MacOS and
Windows.  Until this can be correctly implemented for all supported
platforms, we need to make the option default off
2022-01-28 15:52:17 -08:00
Davide Gerhard ea9f960cc1 cmake: adding KICAD_MACOSX_APP_BUNDLE option
ADDED: with cmake KICAD_MACOSX_APP_BUNDLE option the user can disable
the macOS app bundle creation when compiling on macOS. This permit to
use/install KiCad like any other *nix platform (/usr/bin, /usr/share,
ecc.). By default, cmake build the app bundle.
2022-01-28 15:49:37 -08:00
markus-bonk 8663a399ac Move pcbnew_navlib compilation into pcbcommon.
Although pcb_base_frame.cpp is in the pcbnew source tree, it is compiled
and included in pcbcommon.lib. Because pcb_base_frame has a dependency
on pcbnew_navlib, the latter also needs to be included in pcbcommon to
avoid linkage issues.

The superfluous references to pcbnew_navlib in the qa projects have been
removed.
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
Mark Roszko 931702347a C++17 here we go! 2022-01-09 20:28:14 +00:00
Ola Rinta-Koski 9b406c1da4 Outline font support. 2022-01-08 16:47:45 +00:00
qu1ck 211820a689 Remove KICAD_PCM cmake option 2022-01-03 04:16:42 +00:00
Marek Roszko 1455227447 Correct, we need cmake 3.12 to link object libraries 2022-01-01 21:47:52 -05:00
Simon Richter d25fe17b28 Bump minimum required CMake version to 3.11
Signed-off-by: Marek Roszko <mark.roszko@gmail.com>
2022-01-01 21:35:08 -05:00
qu1ck 94ea90b3fb Flip PCM feature flag to default ON 2021-11-08 02:00:20 +00:00
Seth Hillbrand 227f11a71e Suppress CMake warning about naming 2021-10-15 13:50:36 -07:00
Seth Hillbrand 1c5c052301 Bump OpenCascade requirement to 7.3
Removes support for abandonded OCE project.

Fixes https://gitlab.com/kicad/code/kicad/issues/9386
2021-10-13 09:44:23 -07:00
Marek Roszko 74fd23f573 Add (off by default) build option to link kicad2step directly into pcbnew
Because debugging it separately is annoying.
2021-09-11 22:56:16 -04:00
qu1ck 0f7c0e3872 PCM implementation 2021-08-27 21:11:47 +00:00
Mark Roszko 1edba867b9 Fix typo in the new option 2021-07-15 16:01:38 +00:00
Marek Roszko 252647e93c Reword the new option warning 2021-07-14 23:44:49 -04:00
Marek Roszko c794a6ce7a Add pdb install option for msvc 2021-07-14 23:42:45 -04:00
luz paz 0446d35f0d Fix source comment/doc typos (follow-up)
Found via `codespell -q 3 -S *.po,./thirdparty -L aactual,acount,aline,alocation,alog,anormal,anumber,aother,apoints,aparent,aray,dout,einstance,modul,ot,overide,serie,te,,tesselate,tesselator,tht`
2021-07-13 10:48:17 +00:00
Wayne Stambaugh d30fc811a7 Set find Python interpreter minimum version. 2021-06-22 08:58:06 -04:00
Tomasz Wlostowski 24e7924997 qa: fixed building of the P&S debug tool after the changes/refactoring of the 3D viewer code. The tool can now be built
if KICAD_BUILD_PNS_DEBUG_TOOL is ON.
2021-06-19 23:21:23 +02:00
Eeli Kaikkonen 168a21bb43 OCC is the default cmake flag instead of OCE. 2021-06-16 16:36:38 +00:00
luz paz f968fc8719 Fix source comment / documentation typos 2021-06-09 19:32:58 +00:00
jean-pierre charras ef96374eec Fix an issue with KICAD_SCRIPTING_WXPYTHON=OFF on Linux.
Previously, with KICAD_SCRIPTING_WXPYTHON=OFF, a test using WXPYTHON_TOOLKIT was made.
2021-06-03 11:13:49 +02:00
Seth Hillbrand 74e4370a9b Promote internal pybind11 ahead of system 2021-06-01 20:18:24 +00:00
Seth Hillbrand b374f545be Keep CMake wxPython behind flags 2021-06-01 20:18:24 +00:00
Seth Hillbrand e050d42658 Re-enable KICAD_SCRIPTING_WXPYTHON
This keeps wxpython behind a build flag for platforms (mingw) that do
not yet support it.
2021-06-01 20:18:24 +00:00
Seth Hillbrand 192fbfd5e5 Finalize Python Frame 2021-06-01 20:18:24 +00:00
Seth Hillbrand 81d58bcea9 Working python window 2021-06-01 20:18:24 +00:00
Seth Hillbrand f274a00c08 Remove PYTHON_* compile options 2021-06-01 20:18:24 +00:00
Marek Roszko cbad18ad98 Hide gal profiling behind KICAD_GAL_PROFILE cmake option
__WXDEBUG__ is too easy to get set
2021-04-30 19:24:36 -04:00
Marek Roszko 51fee0a3ad Add binary bitness in version info.
Fix #4425
2021-04-30 19:24:36 -04:00
Marcus A. Romer c5e77e9739 Respect KICAD_DOCS when searching for help files
On Linux, the documentation and help files are potentially installed to
a non-standard location (i.e., outside of /usr/share/doc/kicad/). This
can be the case when, e.g., multiple versions of KiCad are installed in
parallel. Making KICAD_DOCS available at run-time is the only viable
solution to allow the applications to find the help files in this case.

Fixes https://gitlab.com/kicad/code/kicad/issues/7874
2021-04-21 19:19:25 +00:00
Adam Wolf a06f0ca908 Clean up macOS Python3 paths 2021-04-21 12:50:31 +00:00
Adam Wolf 4b7fbaef88 Fix typo. 2021-04-21 12:50:31 +00:00
Adam Wolf 7357424efc Update macOS to Python 3, wx 3.1, and Phoenix.
This is a work-in-progress.  It could use testing while I continue to fix
the remaining pieces.

There are some changes that will be needed for signing and notarization.

This currently relies on a Python tool I wrote (dyldstyle) to fixup
KiCad.app correctly. I would like any bundle fixing necessary to use a
built KiCad on macOS to live inside KiCad, rather than in
kicad-mac-builder or elsewhere.  While I was experimenting, I found this
worked, however, and I would love to get extra hands testing.

I added a CMake argument, MACOS_EXTRA_BUNDLE_FIX_DIRS, for devs and
packagers who have extra directories they need to add to
fixup_bundle on KiCad.app.

There's an issue about differing behavior when KiCad is opened via
the command line or via Finder/launchd.
2021-04-21 12:50:31 +00:00
Ian McInerney e237b6a2af Add thread sanitizer support to Cmake 2021-04-16 17:49:52 +01:00
Johannes Maibaum 39c1387b5b Allow to relocate EDA libraries out of KICAD_DATA
Introduce a new advanced config variable `KICAD_LIBRARY_DATA` which can
be used to move templates, symbols, footprints, and 3dmodels out of
`KICAD_DATA`. If not defined, everything is kept as before.

To facilitate this, PATHS::GetStockEDALibraryPath() is added. This
allows to differentiate code paths looking for EDA library data vs. code
paths looking for plugins, demos, and the like.

Thanks to Aimylios for the hints and suggestions with regards to the
stock EDA library data path handling on Windows and MacOS.
2021-04-14 01:51:22 +00:00
Marcus A. Romer 1632707d9b Replace tabs with spaces 2021-04-05 01:13:39 +00:00
Johannes Maibaum 2467b7e6c5 Do not explicitly strip binaries on Linux
Fedora, Flatpak, Debian, and possibly other distributions as well, have
packaging helpers who will strip out debug symbols into separate debug
packages.

Currently, the explicitly added "-s" EXE_LINKER_FLAG renders these
automatically created debug packages completely useless, so this change
removes it.
2021-03-27 16:28:44 +00:00
Jon Evans 1d879e36cc Make drc_proto an optional part of the build 2021-03-20 12:09:20 -04:00
Mark Roszko 795663620c Fix another arch flag typo 2021-03-12 15:10:44 +00:00
Marek Roszko db1f457ff9 Add msvc flag definition for ARM64 2021-03-10 21:48:04 -05:00
Marek Roszko 71c1be8de0 Guard BUILD_SMALL_DEBUG_FILES away for MSVC 2021-03-10 18:33:07 -05:00
Marek Roszko df2154a87a Rename KICAD_BUILD_PARALLEL_CL_MP to KICAD_WIN32_BUILD_PARALLEL_CL_MP
Also make it a dependent option on WIN32 for sanity.
2021-03-10 00:28:04 -05:00
Marek Roszko a82764f43a Fix the missing optimizations for RELWITHDEBINFO builds 2021-03-09 20:47:02 -05:00
Marek Roszko 8cb127b8e4 Change the msvc exception handling mode when using asm libcontext 2021-03-04 21:48:26 -05:00
Marek Roszko 2bf488e0c7 Add cmake option to enable win32 fibers 2021-03-04 21:48:26 -05:00
Marek Roszko 75c0dc7454 Make sure the mingw rc gets the build dir include 2021-03-04 07:32:58 -05:00
Marek Roszko 047bfdfb30 Ensure MSVC builds with standard unwinding enabled
It seems some cmake copies don't enable it for some odd reason ?
2021-02-27 14:20:45 -05:00
Marek Roszko 64f817001a Change pcbnew.pyd install location for vcpkg 2021-02-10 21:23:01 -05:00
Marek Roszko de4eafc38d Bump only the minimum cmake to 3.10 2021-02-09 18:51:27 -05:00
Marek Roszko 872184fe8b Revert "Bump minimum required CMake version to 3.10"
This reverts commit a475f45753.
2021-02-09 18:46:13 -05:00
Simon Richter a475f45753 Bump minimum required CMake version to 3.10
This allows us to remove even more workarounds
2021-02-08 12:23:08 +00:00
Ian McInerney 5418e3454c Default the translations build to off and build it in CI 2021-01-18 17:43:34 +00:00
Ian McInerney 43baf2e3f2 Translate the linux metadata files 2021-01-18 17:43:34 +00:00
Ian McInerney e9fa9f68b2 Integrate the i18n CMake into the main CMake
This adds a new target i18n that will compile all the translation
files.
2021-01-18 17:43:33 +00:00
Marek Roszko 3ad0e5d8bf Turn on /bigobj for MSVC as release objs with swigwin exceed the standard limit 2021-01-12 19:49:41 -05:00
Seth Hillbrand 2cb8dff650 Use KICAD_DATA for data path lookup in scripting
Fixes https://gitlab.com/kicad/code/kicad/issues/7036
2021-01-12 08:22:17 -08:00
Michael Kavanagh 9546ad88b5 Packaging: more human-friendly names on macOS...
At least it appears that way (just the symlinks are renamed).
2021-01-09 16:23:49 +00:00
Marek Roszko 84dd78e01d Fix the install location for vcpkg built python modules 2021-01-07 00:08:11 -05:00
Marek Roszko 318d7ab67b Use cmake_dependent_option for KICAD_WIN32_DPI_AWARE 2021-01-07 00:08:10 -05:00
Ian McKellar 7f6be05d9d Correct GLEW bundled include directory
There is no CMake target property PRIVATE_INCLUDE_DIRECTORIES, just
INCLUDE_DIRECTORIES (PRIVATE and PUBLIC directories) and
INTERFACE_INCLUDE_DIRECTORIES (PUBLIC and INTERFACE directories).

Building on Linux with -DKICAD_USE_EGL=ON but without a system-wide GLEW
fails without this change.
2020-12-01 00:56:28 +00: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
Seth Hillbrand 9ed6cdd943 Remove GITHUB plugins
KiCad github downloads are no longer supported

Fixes https://gitlab.com/kicad/code/kicad/issues/6182
2020-10-29 16:45:04 -07:00
Seth Hillbrand 19155edde0 Work around broken FindWxWidgets in vcpkg 2020-10-15 11:23:50 -07:00
Simon Richter d339979c28 Turn off compiler extensions
We want to be somewhat standards compliant if we can.

There is a small complication, which we work around:

gcc sets __STRICT_ANSI__ in "c++11" mode (the non-strict mode would be
"gnu++11"), which causes the "strdup" definition to go away. If wx < 3.1 is
compiled with GNU extensions, it just forwards the wxCRT strdup function to
system strdup and doesn't create a definition for the wxCRT function, and
when a program is then compiled in strict mode against that, the wxCRT
function is missing.

From 3.1 onwards, the function is provided unconditionally in wx, so the
workaround is no longer needed there.
2020-10-14 16:22:37 +00:00
Mark Roszko a8bd0a9b84 Handle Windows manifests ourselves and add dpi awareness option 2020-10-10 19:08:23 +00:00
Ian McInerney f1ebb64e51 Remove unused CMake option 2020-09-30 23:34:04 +01:00
Jon Evans 8a5163a9f5 Build cvpcb after pcbnew
cvpcb now depends on ${PCBNEW_IO_LIBRARIES} set in pcbnew's CMakeLists.txt
2020-08-23 16:22:29 -04: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
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
Ian McInerney 11ef147a36 Drop support for GTK2 on Linux
CHANGED: Drop support for GTK2 on Linux
2020-07-16 15:16:31 +00:00
Tomasz Wlostowski c897273f11 PROPERTY_MANAGER requires propgrid wx component 2020-07-05 22:44:38 +02:00
Seth Hillbrand 7e3a338518 Move warning flags to proper place
Cleans unitialized warnings in wxApps
2020-07-02 12:17:45 -07:00
Seth Hillbrand d663be853f Explicitly add signed/unsigned comparison to warnings 2020-07-02 10:54:34 -07:00
Ian McInerney d72a778f19 Move Doxygen test to main CMake scope
Fixes https://gitlab.com/kicad/code/kicad/issues/4468
2020-05-17 18:29:50 +01:00
Ian McInerney 0658d297e5 Cleanup cmake for documentation creation 2020-05-17 01:00:37 +01:00
Simon Richter 2341b69840 Make sure that Ninja knows the version header (fixes #4209)
This is required, because Ninja otherwise doesn't properly rebuild after
updating the version string header file.

Because BYPRODUCTS requires CMake 3.2, bump the minimum version and remove
now unused compatibility code for older CMake versions.
2020-05-09 15:25:33 +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
Ian McInerney 5a4e4aea67 Enable new warnings 2020-04-25 00:46:29 +01:00
Jon Evans 7df3df3381 Add basic netlist QA test 2020-04-19 19:13:24 -04:00
Simon Richter f663f199b4 Tighten version requirements: GLM >= 0.9.8
Commit ae6fbc9c6 builds a glm::vec4 from a vec3 and one float, which
requires 0.9.8 at least.
2020-04-19 14:21:45 +00:00
Ian McInerney 7bda8178d1 Move library includes to main CMake file
Placing them behind the SYSTEM directive tells CMake to tell
the compiler they are system libraries, so it shouldn't show
warnings created from them.
2020-04-19 01:11:56 +01:00
jean-pierre charras 25d7c0cae2 Opencascade: fix min version: OCE=0.18, OCC=6.9.0
Fix also a few minor Coverity warnings.
2020-04-16 10:22:20 +02:00
Ian McInerney d787596124 When using ASAN, disable stack protection and source fortification
ASAN throws some false positive errors on stack overflows when
used with the stack protector option, and doesn't support source
fortification.
2020-03-18 19:12:24 +00:00
Jon Evans 009641d151 Make libcurl a required dependency and always build KICAD_CURL 2020-02-26 01:03:07 +00:00
jean-pierre charras 6d44a93eaf Linking, mingw: Add bcrypt to libraries linked to libcommon.
It is already added with MSVC, and must be added with gcc/mingw

However, the cmake option:
add_definitions( -DBOOST_UUID_FORCE_AUTO_LINK )
does not work on msys2 (at least with my cmake version), so another syntax is used.
2020-02-21 10:37:59 +01:00