Commit Graph

596 Commits

Author SHA1 Message Date
Marek Roszko 4665823089 Turn on and fix MSVC compliance mode issues
We want /permissive- to enable debug performance improvements in MSVC 17.5+.
This flag is also default under C++20 so we'll have to deal with these compile issues anyway at some point in the future.

In particular, MSVC becomes pedantic about ternary types.
See https://learn.microsoft.com/en-us/cpp/build/reference/permissive-standards-conformance?view=msvc-170#ambiguous-conditional-operator-arguments

MSFT cites https://cplusplus.github.io/CWG/issues/1805.html
2023-02-12 16:30:37 -05:00
Marek Roszko c4204624a9 Turn on the new crashpad wer module 2023-01-28 00:04:26 -05:00
Marek Roszko 8ab9934143 Use our own cmake module path variable to avoid conflicting with the main ones listy functional 2023-01-03 19:18:16 -05:00
Mark Roszko 7d1f25fbf1 Remove CPack configuration which is not used on any platform 2023-01-03 16:02:19 +00:00
Marek Roszko 020f8f61db Let's try fixing the doxygen-python again 2022-12-23 23:11:04 -05:00
Seth Hillbrand ebea4869a2 Set CMake policy for generated DEPFILEs
Thanks to @gyrosgeier for finding this solution
2022-12-21 12:08:32 -08:00
Seth Hillbrand 278ea3379f Bump CMake requirement to 3.21 2022-12-16 10:59:31 -08:00
Adam Wolf 98775afcba Support Apple Silicon on macOS
As part of supporting Apple Silicon, we've got to upgrade our embedded
Python to a version that comes with an Apple Silicon build. Python 3.9
suffices. This means we ignore python3.9 while fixing up bundles.

Apple requires all code to be signed on Apple Silicon. We've added signing
to the build. This has to be run after anything that adds to or modifies
the installed files. As of Cmake 3.14 (CMP0082), the install rules are run
in the order declared, so we are able to do this just by adding the
signing subdirectory last in the main CMakeLists.txt. By default, the
build will be signed "ad hoc", which does not require a developer to
create keys or get keys from Apple. We added some CMake variables to
control signing, KICAD_OSX_CODESIGN and KICAD_OSX_SIGNING_*.

In order to better support development, we've added some necessary cleanup
steps to KiCad that were performed externally in the release and nightly
build process, like removing any .pyc files and extra Python symlinks
erroneously introduced by fixup_bundle. We also adjusted "refix_rpaths" to
be more accurate. We should not need "wrangle_bundle" when building and
installing a local development copy of KiCad.
2022-12-09 23:48:31 +00:00
Seth Hillbrand 203f5538aa Correctly place static library spec 2022-11-22 05:45:26 -08:00
Seth Hillbrand 3b48f88bec Specify behavior for shared lib visibility 2022-11-22 05:43:53 -08:00
Seth Hillbrand 67e12d4ff6 Build QA without `NDEBUG` to get wxASSERTs
Also include minimum debug information to get basic backtrace while
keeping artifacts reasonable
2022-10-04 19:54:58 -07:00
Mark Roszko fb8a4c10f7 Shove kicad2step into pcbnew itself with a new cli 2022-10-04 01:53:37 +00:00
Seth Hillbrand 2a9b76c5ff Move warning setting to Warnings.cmake 2022-08-24 14:21:06 -07:00
Marek Roszko fc99b3ba95 Don't link gdiplus everywhere anymore
Tested on msys2 which is the only place it would have been buggy
CMake seems to share the gdiplus linkage with the other dependencies automatically now
2022-08-23 23:51:35 -04:00
Marek Roszko 2fd0103a09 Remove legacy cmake if statement 2022-08-23 22:18:00 -04:00
Seth Hillbrand 5475d46bc5 Silence GCC's extra warnings
GCC warned about ignored attributes that we use for clang and MSVC.
Removing the ignored attributes check keeps this quiet
2022-08-23 10:48:45 -07:00
Mark Roszko 952669e747 Bump swig minimum to 4.0 2022-08-22 15:22:26 +00:00
Seth Hillbrand 5ed7e28252 Remove KICAD_OCC build option
We don't really support builds without OCC these days.  Removing to
clear up build flags and settings
2022-08-18 17:06:29 -07:00
Mark Roszko ca3b3572ca Get rid of the broken scripts install 2022-07-22 14:22:39 +00:00
Marek Roszko a9942a62ee CMakeModules -> cmake 2022-07-21 20:32:25 -04:00
Marek Roszko 47fe8ff8eb bitmaps and template are resources. 2022-07-21 20:14:10 -04:00
Marek Roszko 98d9911c7d Move /Documentation to /doxygen 2022-07-10 15:10:04 -04:00
Mike Williams eaac293ed6 CMake: Improve debugging support for clang build
Otherwise strings and such give errors in various debuggers.

See https://bugzilla.redhat.com/show_bug.cgi?id=1740927
2022-06-23 11:18:23 -04:00
Ian McInerney 9bb5beb264 Use symlink to pcbnew kiface for python module on Linux
Instead of installing an identical shared library into the Python
folder, just use a link to the existing library instead.

Fixes https://gitlab.com/kicad/code/kicad/issues/9974
2022-06-22 23:40:29 +01:00
Ian McInerney b51d8c9825 Introduce new CMake variable to store kiface install location 2022-06-22 23:40:25 +01:00
Seth Hillbrand 3ddd287004 Revert "Fixup python module install"
This reverts commit 6fd60c5561.

Worked only for a single make.  Second run fails due to missing file
2022-06-22 14:11:59 -07:00
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