Commit Graph

355 Commits

Author SHA1 Message Date
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
Matthias Urlichs 3bba96baa2 Allow SWIG 4.0.
No other changes are necessary.
2020-05-05 13:22:41 +00:00
Simon Richter 23c1837eba Fix typo 2020-05-02 11:19:03 +00:00
Ian McInerney 71332fcb77 Add Clang's version of -Wsuggest-override 2020-04-25 01:09:30 +01:00
Ian McInerney 5a4e4aea67 Enable new warnings 2020-04-25 00:46:29 +01:00
Wayne Stambaugh 082944ad06 Minor build warning fixes. 2020-04-03 13:03:23 -04:00
Ian McInerney a2ad9d67ba Expose more version strings from CMake
Let cmake generate the needed version strings, so we don't
have to spend program time doing it. This simplifies the
settings manager versioning.

Also, convert some file line endings to UNIX from Windows.

A more robust fix for https://gitlab.com/kicad/code/kicad/-/issues/4015.
2020-03-07 18:43:24 +00:00
jean-pierre charras 5d5363396c Add automatically generated files needed for translations.
These help files are created from the .md source files and contain I18n strings,
but do not exist if kicad is not built from sources.
However they are needed by translators.
2020-01-29 18:47:06 +01:00