Commit Graph

362 Commits

Author SHA1 Message Date
Adam Wolf 3100cd3599 Fix Python loading on macOS without wrangle_bundle.
The goal of this work is to let developers run Python things
on macOS on their builds without generating a full
relocatable and redistributable build.

This is a WIP.
2021-05-31 02:09:43 +00:00
Adam Wolf 327bd28298 Clarify macOS CMakeModules changes
Closes #8270
2021-04-28 12:58:49 +00:00
Marek Roszko 713f39ef71 Ensure we don't accidentally find a system python interp on windows 2021-04-26 20:58:28 -04:00
Ian McInerney fcca4bc3e6 Add a new warnings variable that can be used for injecting new warnings
This variable can be used to add in more warnings to the compilation
that only apply to the KiCad code and not the SWIG or third-party code.
2021-04-22 22:08:00 +01: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 68139cdd84 Remove unnecessary path adjustment on macOS in FindwxPython.cmake 2021-04-21 12:50:31 +00:00
Adam Wolf e4bd687245 Use newer BundleUtilities and GetPrerequisites.
macOS bundling needs executable scripts to be handled
better by CMake than they were in the past.

Until we require 3.14 or newer, bring in the modules from
45ed314bff.
2021-04-21 12:50:31 +00:00
Ian McInerney 4fc41627e9 Update and modernize linux metadata files
* Switch to using org.kicad.kicad as the main app ID
* Move the appstream file to a metainfo file
* Rename all metadata files to use the reverse DNS scheme
* Add header matching to mime type files where possible
* Add a mime type for gerber job files
* Add a QA test that verifies all the linux metadata files and
  run it in CI
* Update the visible names in the launcher entries to be more
  consistent with the internal visible names
* Update various strings and items in the metainfo file so they
  are more descriptive and easier to read
2021-04-15 16:34:12 +00: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
Jon Evans 44f88f840c Bitmaps: a few improvements from review 2021-03-11 08:37:35 -05:00
Jon Evans 18037e2f65 Rework bitmap system to load from archived PNGs
Bitmaps are now identified by an enum class instead of by pointers.
Bitmap loading and caching is now handled by a class in common, and
we no longer compile most bitmaps into the binary, so there is no
longer a bitmaps static library.

Instead, bitmaps are archived to a .tar.gz file which is installed
in ${KICAD_DATA}/resources/images.tar.gz

The source PNGs are checked in to Git as the original CPP files were,
so that people can build without the required dependencies to convert
SVGs to PNGs.

Initial support is also added for dark theme icons, although this
is not yet exposed in the GUI.

Stubs are present for multi-resolution image resources, but this is
not fully-baked yet and could use some refinement.
2021-03-11 08:37:35 -05:00
Marek Roszko 3d4ac9af03 Relocate win32 resource files to the central folder for further consolidation 2021-03-09 21:48:14 -05:00
Marek Roszko 8831c5567c Add win32 version manifest block 2021-03-04 00:34:48 -05:00
Ian McInerney fdf6318218 Ensure cmake commands depend on the cmake file they use
Without this dependency, the build stage won't rerun
if the CMake file changes on disk.
2021-01-28 00:24:22 +00:00
Ian McInerney 9263c0d554 Wrap linux metadata translation in a error catching wrapper
This will gracefully handle errors that prevent the file translation
by simply copying the file if they occur. This allows the build to
proceed and the logs to contain the error.
2021-01-28 00:24:22 +00:00
Ian McInerney beb50c529e Reorganize the CMake folder to separate build and configure steps
The BuildSteps folder now contains the CMake scripts that are
called during the build process as individual stages, while
the root CMakeModules directory contains the CMake files used
during the configuration phase.
2021-01-28 00:24:22 +00:00
Ian McInerney 09f1e32513 Rebuild linux metadata on dictionary updates 2021-01-28 00:24:22 +00:00
Marek Roszko 7b5397f81f Move PLUGINDIR to the make config.h 2021-01-27 19:12:19 -05:00
Marek Roszko 320ca5a0d0 Prevent KiCad launch on Windows 7 if python 3.8 or newer is bundled
Soon to be a permanent check regardless of python on Windows
2021-01-21 21:58:53 -05:00
Marek Roszko 82ecb0f77b Fix vcpkg python build compatibility 2021-01-20 21:05:23 -05:00
Ian McInerney 2aff8822d6 Rearrange linux resources and translate MIME files 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 1a025ae7ba Reorganize the translations to work with msgfmt executable
The -d option for the msgfmt executable requires that all
the locales have their po files in the same directory
and be named LOCALE.po.
2021-01-18 17:43:33 +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
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
Steven Falco d85d0efdd8 Add python 3.10 detection to CMake 2020-11-28 22:25:43 +00:00
Marek Roszko 8635fc823b Fix findwxwidgets again to let VS/MSYS2 combo work 2020-11-13 19:17:33 -05:00
Marek Roszko c45edeb1f8 Fix FindwxWidgets.cmake to work with mingw
This lets one use CLion with MSYS2 ;)
2020-11-12 19:23:34 -05: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
Marek Roszko ff977b050a Fix FindwxWidgets.cmake on vcpkg so that it fully completes 2020-10-14 19:18:38 -04:00
Simon Richter 53579c42ad Disable -Wpsabi
There was an ABI change for 64 bit aligned vectors between gcc 5 and gcc 6
on a few 64 bit platforms, and gcc 10 reports "note" level warnings for
each affected access, which is very noisy and hides more important
information.

These notes are issued because there is no reliable diagnostic for actual
problems.
2020-10-12 22:34:05 +00:00
Simon Richter 70e62e384d Document what -Wvla does and why we want to treat it as an error 2020-10-12 22:34:05 +00:00
Mark Roszko a8bd0a9b84 Handle Windows manifests ourselves and add dpi awareness option 2020-10-10 19:08:23 +00:00
Mark Roszko 7656663a2f Fix Python integration to build with vcpkg
* Add vcpkg support to find Oython using CMake
* Fix pid_t conflict with python
* Fix COMPILER conflict with python
2020-09-22 12:39:05 +00:00
Seth Hillbrand 514838dbbf Version the lockfile
We are now versioning the configuration files, so we should apply the
same versioning to the lockfiles.

Fixes https://gitlab.com/kicad/code/kicad/issues/5637
2020-09-15 09:31:55 -07:00
Mark Roszko aa34f2e764 Fix findopencascade for vcpkg 2020-09-12 22:41:17 +00:00
Jeff Young e782794f96 Flesh out object properties and DRC Rule syntax help. 2020-09-05 17:44:59 +01: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
Jeff Young f244f3b24c Last issue wasn't gcc/CLang after all, but the lexer not getting built. 2020-08-06 23:16:58 +01:00
Ian McInerney 7d1deb8a3b Add Python 3.9 interpreter
This was forgotten in the original commit
7fd661f06b
that added the 3.9 library.
2020-07-22 00:18:29 +01:00
Ian McInerney 9997c46ee4 Make Coverity use the main KiCad version string
Also create a kicad_build_version.txt file in the build directory
that only contains the version string.
2020-07-22 00:18:29 +01:00
Wayne Stambaugh abcbfaa481 Fix ngspice version information issue.
The config.h header for ngspice is not packaged with all platforms so
use pkg-config to fetch the version information when available.  When
pkg-config is not available, check if the ngspice/config.h file is
installed on the system before including it to build the ngspice version
string.  If neither pkg-config or ngspice/config.h is available set the
version string to "unknown".

Fixes https://gitlab.com/kicad/code/kicad/issues/4851
2020-07-11 19:07:10 -04:00
Ian McInerney b5adf5bb21 Only try to remove the implicit conversion warning if it is supported 2020-07-03 02:59:19 +01:00
Ian McInerney c27207500d Cleanup some compiler warnings 2020-07-03 00:10:31 +01:00
Seth Hillbrand 7e3a338518 Move warning flags to proper place
Cleans unitialized warnings in wxApps
2020-07-02 12:17:45 -07:00
Steven A. Falco 7fd661f06b Add Python 3.9 compatibility
Taken from downstream Fedora commit.

Original author info:
Charalampos Stratakis <cstratak@redhat.com>  2020-05-28 12:26:59

Downstream commit: a2677c159ad529
2020-05-29 19:37:13 +00:00
jean-pierre charras 27b9377d3c Findngspice.cmake: fix not found libngspice dll on msys.
Recent msys version does not find libngspice-0.dll, only
libngspice-0.dll.a when using find_library.
When not found, a find_file is made, instead of find_library.
2020-05-25 11:57:41 +02:00
Ian McInerney 0658d297e5 Cleanup cmake for documentation creation 2020-05-17 01:00:37 +01: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