Commit Graph

287 Commits

Author SHA1 Message Date
Seth Hillbrand c6af38477d CMake: Handle custom_target indirection
Building custom targets that depend on custom commands such as our
keyword lexer requires two layers of indirection to pick up changes
properly and not overwrite the same file in parallel builds.

Fixes: lp:1831643
* https://bugs.launchpad.net/kicad/+bug/1831643
2019-06-05 13:05:43 -07:00
jean-pierre charras 7508f02de5 KiCadVersion.cmake: fix Kicad version id to 6.0.0, used when git is not available to calculate this version id 2019-05-02 09:10:57 +02:00
John Beard f4ba3cd910 QA: Add build-time option to enable XML output from tests
This allows CI tools to get machine-readable test reports.

By default, this is off - when you test normally, you probably
want the regular console spew.

Boost tests use the in-built Boost test command line options.

The Python tests take an --xml parameter and output the tests
there.
2019-04-18 10:59:06 +01:00
John Beard 45aa514591 QA: Allow to build tests manually if disabled
Add a new CMake target, qa_all, which builds all
tests, tools and their deps.

Then, when KICAD_BUILD_QA_TESTS is set OFF, remove tests
and tools from the ALL target, so `make all` doesn't include
these builds.

This means even when you turn the KICAD_BUILD_QA_TESTS option
off, you still have the option to:

* Build individual tests: `make qa_pcbnew`
* Build all tests: `make qa_all_tests`
* Build all tools: `make qa_all_tools`
* Build all QA executables: `make qa_all`

This also will provide a place to hang extra logic for test routine
wrangling (e.g. by CI tools)

Update the "Compiling KiCad" dev docs.

Also, CMakeModules .cmake files should not be excluded from git
2019-04-17 18:00:40 +01:00
Wayne Stambaugh 00a9b662f7 Version 6 development begins here. 2019-03-08 13:04:08 -05:00
Wayne Stambaugh 605473be1d Tag release version 5.1.0. 2019-03-08 07:31:50 -05:00
Wayne Stambaugh 4964ec4d20 Start next 5.1 development version. 2019-02-25 17:51:31 -05:00
Wayne Stambaugh 6ec2c5ffc9 Tag 5.1.0-rc2 release. 2019-02-25 17:51:31 -05:00
Seth Hillbrand ad77863668 Cleanup build script locations
Some developer scripts ended up in the demonstration scripts directory
that was bundled with builds.  This moves them to the build_tools
directory and updates the associated Documentation

Fixes: lp:1815891
* https://bugs.launchpad.net/kicad/+bug/1815891
2019-02-14 14:44:55 -08:00
Wayne Stambaugh 8bc870c753 Start next 5.1 tag. 2019-02-05 18:46:24 -05:00
Wayne Stambaugh 2d1b1d6b05 Tag 5.1.0-rc1 release. 2019-02-05 18:13:56 -05:00
John Beard bb2ae8e13b Bitmaps: move bitmap defs to bitmaps library
The bitmap definitions (BITMAP_DEF and so on) do not
have any dependencies on other libs, including WX. This
means the bitmaps library can be isolated from the other
dependencies.

Common now depends on bitmaps, and libraries that depend
on common can pick it up from the common target_link_libraries,
as it is PUBLIC. This means a lot of targets no longer
need manual bitmap linkage.

This avoids a circular dependency that was previously reported
by static analysis.

Avoiding pulling in WX and other headers into the include
tree of each bitmap .cpp is a huge speed up (around 10x) in
compilation, and the generated static library is also 10x
smaller (20MB vs 200MB)

Add common as a link library to pnsrouter,connectivity.
THese library do still use common code (including bitmaps,
via base_screen.h) and this allows them to pick up the libcommon
includes correctly.
2019-02-04 19:29:31 -08:00
John Beard 4363cc0bec Docs: add docset generation target
This is a CMake (non-ALL) target that will build a Zeal-compatible
docset from a version of the doxygen HTML.

To do this, doxytag2zeal is used.
2018-12-03 10:14:15 -05:00
Maciej Suminski b7b9cccffc Moved wxPython/Phoenix detection to a separate CMake module 2018-11-02 11:28:30 +01:00
Maciej Suminski 1c19a50f31 Add license header to Findngspice.cmake 2018-11-02 09:42:08 +01:00
Maciej Suminski b445b0fab2 Link eeschema with ngspice DLL
Adds a link-time dependency for libngspice, so that other tools may
detect ngspice as a KiCad dependency.

The library is still loaded with dlopen() as it gives a way to reload it
in case of problems. The DLL name is recognized during CMake
configuration and used to load the library at runtime.
2018-10-30 08:32:38 +01:00
Thomas Pointhuber 4a2a76af37 Improve CMake Python code
* We have code with u'' which means minimum version is 3.3
* Python 3.8 is already in development, be a bit more future proof
2018-10-19 09:59:06 +02:00
Thomas Pointhuber e729454409 Add missing python 3 versions to FindPythonLibs.cmake 2018-10-19 09:59:05 +02:00
Martin Aberg 27d57d9191 Generate PYTHONPATH from CMake information
The CMake scripts calculate the install path for python scripts by
  distutils.sysconfig.get_python_lib(
    plat_specific=0,
    standard_lib=0,
    prefix=''
  )
which generates a string in line with
  lib/python2.7/site-packages

This string ends up in the CMake variable PYTHON_DEST and is used by the
install step as destination directory for pcbnew.py.

There has been a hard-coded assumption on the content of that string in
PcbNew which is not compatible with FreeBSD 11.1.

This commit eliminates the hard-coded assumption in PcbNew and reuses
the install path as known by CMake.

Fixes: lp:1777921
* https://bugs.launchpad.net/kicad/+bug/1777921

(cherry picked from commit dd3c24faf8)
2018-09-20 12:04:04 -07:00
Wayne Stambaugh 1a22918795 Tag version 6.0.0-rc1-dev. 2018-07-13 16:19:53 -04:00
Wayne Stambaugh 84427f463c Tag release 5.0.0. 2018-07-13 15:53:52 -04:00
Wayne Stambaugh 520c6116f5 Version 5.0.0-rc3-dev commit. 2018-06-30 11:16:42 -04:00
Wayne Stambaugh 66a489f6b6 Version 5.0.0-rc3 commit. 2018-06-30 11:02:38 -04:00
Seth Hillbrand e95d06e811 OCC: Fix issues for OpenCascade 7.3
OpenCascade 7.3 deprecates some TK libraries that were not required by
KiCad, therefore we should not include them in the compile.

Also correct missing compiles for STEP import/export induced by 584409b2e when using OCCT.  There is no effect on OCE to this change.
2018-06-12 10:03:13 -07:00
Wayne Stambaugh c49a4398a1 Set KiCad version to 5.0.0-rc2-unknown for next development cycle. 2018-05-20 21:24:18 -04:00
Wayne Stambaugh b4f9b5359d Set KiCad version to 5.0.0-rc2. 2018-05-20 21:20:28 -04:00
Seth Hillbrand 2bab30d9ac Allow Kicad to use OpenCascade
Adds the option of using OpenCascade not just the community edition.

Fixes: lp:1628950
* https://bugs.launchpad.net/kicad/+bug/1628950
2018-05-11 17:04:32 -07:00
Seth Hillbrand 2e0b75c058 Remove internal CheckCXXSymbolExists
Since Cmake 2.8.6, Cmake provides this macro.  Our use references
internal Cmake variables that have changes in Cmake 3.11.
2018-03-30 14:47:16 -07:00
Wayne Stambaugh 50608c19ff Tag beginning of 5.0.0-rc2 developemnt. 2018-02-24 19:51:04 -05:00
Wayne Stambaugh 42e07736a5 Set kicad version to 5.0.0-rc1 for v5 branch. 2018-02-24 16:14:48 -05:00
Wayne Stambaugh a2df82537b Change how version strings are generated.
Git is always used to generate the KiCad version string using the
command `git describe --dirty`.  This gives a more concise and
accurate version string than the previous method.  When git is not
available, the version string defaults to the value defined in
KiCadVersion.cmake.  It is imperative that moving forward that the
default version string be updated the commit following a git tag
so that when git is not available, the last known commit following
a git tag will at least give some usable information about which
development branch of KiCad was used for a build.
2018-02-16 11:45:58 -05:00
Chris Pavlina 87cc3ea445 Update message in Findngspice.cmake 2018-01-08 23:30:48 -07:00
jean-pierre charras 4e391ef21c Housekeeping: remove no more in use options. 2017-11-02 21:01:32 +01:00
Simon Richter d2860ee0ad Update FindGLEW.cmake 2017-07-28 11:30:22 +02:00
Kristoffer Ödmark 8590a22995 Cpp11 compability steps.
-Changed coding style to not have exception specifications.
-Changed autogenerated Lexer code to not have exception specifications.
2017-06-12 11:47:20 -04:00
Jan Mrázek ade263f30d Check required libraries in FindwxWidgets.cmake
Both official one and KiCad one version of FindwxWidgets.cmake do not check if
all the required components are part of the wxWidgets build. This couses trouble
on Ubuntu when user misses libwxgtk3.0-dev package - CMake succeeds, build does
not.

This fix was accepted also to the CMake 3.9 upstream
(https://gitlab.kitware.com/cmake/cmake/merge_requests/704).

Fixes: lp:1630020
* https://bugs.launchpad.net/kicad/+bug/1630020
2017-04-26 20:43:29 -04:00
Maciej Suminski 24a9003b5e Removed obsolete Shader.cmake script
Better way of including shader programs was introduced in 77f9cd0c
2017-03-04 11:48:37 +01:00
Simon Richter 78a5f450ce Copy and adapt FindCairo.cmake for Pixman 2017-02-01 19:22:47 -05:00
Tomasz Włostowski 90a39582b5 added missing FindPixman script 2016-12-12 16:45:52 +01:00
Wayne Stambaugh fd54d394bd Version string improvements.
Define empty string variable KICAD_BRANCH_NAME that can be used as an
optional version string element.  When git is used to build the version
string, this variable is set to the git branch name.  It can also be
defined at configuration time as an optional string appended to the
$KICAD_VERSION variable.

Define empty string variable KICAD_VERSION_EXTRA that can be set by
the user at configuration.

The variables KICAD_BRANCH_NAME and KICAD_VERSION_EXTRA are only
appended to KICAD_VERSION if they are set.  Otherwise, only KICAD_VERSION
is uses as the version string.

Update the developer building from source document to reflect the changes.
2016-11-25 09:09:10 -05:00
Chris Pavlina b9c62b658e Bring back KICAD_REPO_NAME 2016-11-12 16:16:35 -05:00
Chris Pavlina 7e3c0258aa Fix KICAD_BUILD_VERSION build option 2016-11-12 15:37:01 -05:00
Wayne Stambaugh 87eda6180d Allow the contents of KiCadVersion.cmake to override git version.
When the version string in KiCadVersion.cmake is set to something other
than the default "no-vcs-found", it ignores the git version even if a
.git folder exists in the source folder.
2016-10-14 09:43:38 -04:00
Wayne Stambaugh 03da56a9b5 Minor version string generation improvements.
Remove the KICAD_REPO_NAME option from the main cmake file and the
generated config.h file since it is no longer used.

Set the default branch name to "undefined" in CreateGitVersionHeader.cmake
instead of the KICAD_REPO_NAME option.

Remove generating KICAD_FULL_VERSION from CreateGitVersionHeader.cmake
and add it to WriteVersionHeader.cmake so that the default settings and
the new KiCadVersion.cmake definitions can be used to generate the full
version string as well.

Check to see if the branch name is set and only use the version to
generate the full version string.  This allows the use of the KiCad
version cmake file to create a version only string like "4.0.4" with
no trailing branch name.

Change build_version.cpp to use the full version string rather than
concatenating the version and branch strings.
2016-10-12 20:29:46 -04:00
Wayne Stambaugh b54166daa3 Improve version string generation for stable release source archives.
Add KiCadVersion.cmake to set the build version and branch name.

Update WriteVersionHeader.cmake to include KiCadVersion.cmake to set
the defaults in case no .git directory is found.
2016-10-12 16:24:14 -04:00
Chris Pavlina 245607d05c Fix version header rewrite (happened too often)
This commit also simplifies the rewrite logic slightly, removing the
regex parsing.

Bug introduced in:

    commit 47772e7ae3
    Author: Chris Pavlina <pavlina.chris@gmail.com>
    Date:   Sun Sep 25 10:28:50 2016 -0400

        cmake: rewrite version header when branch changes

        Before, only KICAD_BUILD_VERSION, which includes the hash but not the
        branch, was compared when deciding whether to regenerate
        kicad_build_version.h. This header also contains the branch name though,
        so we should compare both to address the case of two branches pointing
        at the same commit.
2016-09-27 11:40:12 -04:00
Chris Pavlina 47772e7ae3 cmake: rewrite version header when branch changes
Before, only KICAD_BUILD_VERSION, which includes the hash but not the
branch, was compared when deciding whether to regenerate
kicad_build_version.h. This header also contains the branch name though,
so we should compare both to address the case of two branches pointing
at the same commit.
2016-09-25 10:31:30 -04:00
Dick Hollenbeck 7311f07eaf SWIG Improvements
*) Extend SWIG support deeper into the BOARD class.
*) Move swig *.i files into a directory identified for SWIG, in preparation
   for a parallel universe involving Phoenix's SIP.
*) Move swig files which will be common to both eeschema and pcbnew into
   common/swig.
*) Sketch out a "common" python module, and plan on dovetailing that into a
   libkicad_shared.{dll,so}
*) Add common/swig/ki_exceptions.i and define a macro HANDLE_EXCEPTIONS()
   which is to be applied to any function which needs C++ to python
   exception translation.
*) Move the test for SWIG tool into top level CMakeLists.txt file for use
   in all python modules beyond pcbnew, i.e. eeschema and common.
*) Add SWIG_MODULE_pcbnew_EXTRA_DEPS which generates a better Makefile, one
   which rebuilds the swig generated *.cxx file when one of its dependencies
   change.
*) Re-architect the board.i file so that it can be split into multiple *.i
   files easily.
*) Make some KIWAY from python progress, in preparation for Modular KiCad
   phase III.
2016-09-20 11:59:43 -04:00
Nick Østergaard 881ebe59c5 Remove now obsolete bzr check 2016-09-15 08:33:17 -04:00
Wayne Stambaugh e7e165d68a Remove unused Bazaar and Subversion cmake files. 2016-09-14 19:45:32 -04:00