Commit Graph

394 Commits

Author SHA1 Message Date
Simon Richter bed70339b8 Remove own copy of FindOpenSSL.cmake 2019-07-17 08:10:47 -04:00
Simon Richter c8c3e1f96a Fix build order for generated headers and sources
This changes make_lexer() so that it no longer generates a custom target
but instead attaches the generated files to an existing one (so the first
argument now is the name of an existing library or executable, and it needs
to come after the add_library/add_executable call).

The generated source is no longer listed in the project sources, as it is
added by the function. The files are generated in the build tree rather
than the source tree, and the directory is added to the include path for
the respective project as well as exported to projects linking against it.

Generated files in subdirectories are somewhat supported, but need to be
referenced with the same name as they were generated (i.e. including the
subdirectory name).

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

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

Fixes: lp:1833851
* https://bugs.launchpad.net/kicad/+bug/1833851
2019-07-03 09:36:40 -04:00
jean-pierre charras 8d84e22f31 Functions.cmake: add missing dependency to *.keywords.
Due to this missing dependency, when a xxx.keyword file was modified, the files built from it were not rebuilt
2019-06-26 19:25:24 +02:00
Seth Hillbrand e6e4000863 CMake: Add generated lexer files to clean list
When running make clean, we'd like to remove all generated files
including the lexer files to allow for a fresh rebuild
2019-06-18 06:22:18 -07:00
Seth Hillbrand 8112a8ade1 cmake: Further petting dependencies
eeschema cpp files consume generated header files that have targets in
the common directory, so no dependencies get created from eeschema.  We
add the dependencies in common to force the setting through libraries.

Fixes: lp:1831643
* https://bugs.launchpad.net/kicad/+bug/1831643
2019-06-13 06:51:52 -07:00
Seth Hillbrand 720889edd0 CMake: Another go at linear dependencies
This simplifies the linear dependencies for custom targets.  Should be
single shot for make this time.

Fixes: lp:1831643
* https://bugs.launchpad.net/kicad/+bug/1831643
2019-06-10 14:47:14 -07:00
jean-pierre charras 074ebe0e2b Pl_editor: fix missing switch to "C" locale when saving selected items in clipboard.
It was only noticeable in countries using a comma as floating point separator.

Fixes: lp:1832211
https://bugs.launchpad.net/kicad/+bug/1832211
2019-06-10 11:55:52 +02:00
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
Chris Pavlina 7318238daa Update version string formatting after git migration
It is no longer necessary (or sensible) to include a simulated bzr
revision number, and we can reliably get a branch name now. Therefore,
the new version strings look like:

(2016-08-26 revision 67230ac)-master
 |                   |        |
 |                   |        branch name, "HEAD" if not on a branch,
 |                   |          or "unknown" if no .git present
 |                   |
 |                   abbreviated commit hash, or no-git if no .git
 |                     present
 |
 date of commit, or date of build if no .git present

Signed-off-by: Chris Pavlina <pavlina.chris@gmail.com>
2016-09-09 20:19:54 -04:00
Maciej Suminski 30e3097484 Findngspice.cmake: Refined build instructions 2016-08-22 16:08:45 +02:00
Maciej Suminski cf537023c9 Findngspice: add a message explaining the current libngspice status 2016-08-22 14:39:35 +02:00
Simon Richter bfb6e0bbb2 Convert remaining occurences of stri[n]cmp to str[n]casecmp.
This also reverses the substitution logic if strcasecmp is missing (config.h.cmake)
2016-08-16 10:27:09 +02:00
jean-pierre charras 00b9ac7cc3 Findngspice.cmake: add missing search paths for ngspice default install on Windows. 2016-08-15 15:27:24 +02:00
Maciej Suminski 6e4d6c445c Add NGSPICE_ROOT_DIR parameter for libngspice CMake script 2016-08-15 14:39:26 +02:00
Maciej Suminski 497b2a9442 CMake module for libngspice 2016-08-12 15:56:51 +02:00
Wayne Stambaugh 4ed346ea64 Eeschema: initial schematic I/O plugin.
* Factor out PROPERTIES object from the PCB plugin code and move it into
  common so it can be used by both the Pcbnew and Eeschema plugins.

* Add schematic I/O plugin manager for loading and saving schematic and
  component library files.

* Add initial attempt at a parser for current schematic file format.  This
  parser will be infinitely more strict than the current parser which is very
  forgiving in what it parses.

* Make minor changes to the base bitmap class to support the new parser.

* Add find root sheet support to sheet object to allow fetching the root
  sheet from any sheet in the stack.
2016-07-06 05:22:56 -04:00
Wayne Stambaugh df99b4068d Update stable release 5 road map.
* Remove tasks that are not going to be completed by FOSDEM 2017 release
  (hopefully) announcement.

* Update item task lists to reflects changes discussed at CERN meeting.

* Update item status to reflect the current state of the tasks.

* Add a few new changes that are slated for release.

* Revise the generic road map by deleting complete items and adding new items
  discussed at CERN meeting.

* Remove unused definition from config.h.cmake.
2016-07-05 10:06:23 -04:00
Simon Richter ea6ef51649 CMake: add FindSWIG.cmake from CMake 3.5 for swig 3.0 support.
* The FindSWIG.cmake shipped with CMake 3.0 does not yet look for the
  "cmake3.0" binary, this was added shortly after the 3.0 release.

* This file can be removed once the minimum CMake version is 3.1 or greater.
2016-06-30 11:03:09 -04:00
Simon Richter 4ee956d77a FindwxWidgets.cmake: Remove extra newline 2016-02-15 18:50:49 +01:00
Simon Richter ff99b51b7d FindwxWidgets.cmake: Report failure of wx-config when looking for components 2016-02-15 18:50:49 +01:00
Simon Richter 4c29843813 FindwxWidgets.cmake: Use ENV foo rather than ENV{foo} 2016-02-15 18:50:49 +01:00
Simon Richter 9d08d93c26 FindwxWidgets.cmake: Add comment describing code block 2016-02-15 18:50:49 +01:00
Simon Richter 380bb37931 FindwxWidgets.cmake: Reformat documentation 2016-02-15 18:50:49 +01:00
Simon Richter c109abb87e FindwxWidgets.cmake: Do not explicitly declare FOUND_VAR, unnecessary 2016-02-15 18:50:49 +01:00
Simon Richter 801611fad8 FindwxWidgets.cmake: Drop nonsensical assignment
No idea where that came from, but it is almost certainly an error.
2016-02-15 18:50:48 +01:00
Simon Richter f7d8a412cf FindwxWidgets.cmake: Determine version even when not asked to 2016-02-15 18:50:48 +01:00
Simon Richter 029a3ba61e FindwxWidgets.cmake: Improve regex for version number matches 2016-02-15 18:50:48 +01:00
Simon Richter 2f1bbdc0f3 FindwxWidgets.cmake: Simplify MATCHES
Arbitrary characters at beginning and end of the line are implicitly allowed anyway
2016-02-15 18:50:48 +01:00
Simon Richter ea4c8c546f FindwxWidgets.cmake: Expect directory layout for MSVC 64 bit
On 64 bit MSVC, the DLLs and import libraries are placed in a directory
called vc_x64, to allow parallel installation of 32 and 64 bit wxWidgets.
2016-02-15 18:50:48 +01:00
Simon Richter 51a1588456 FindwxWidgets.cmake: documentation for variables 2016-02-15 18:50:48 +01:00
Simon Richter bbd0c539e9 FindwxWidgets.cmake: Look for versioned wx-config scripts 2016-02-15 18:50:48 +01:00
Simon Richter bc480a010b FindwxWidgets.cmake: Fix indentation 2016-02-15 18:50:48 +01:00
Simon Richter 38359272c4 FindwxWidgets.cmake: Show line number in debug output 2016-02-15 18:50:48 +01:00
Simon Richter 9ff394e72a FindwxWidgets.cmake: Treat CygWin as unix rather than undefined 2016-02-15 18:50:48 +01:00
Simon Richter b66a584a8a FindwxWidgets.cmake: Use lowercase for CMake builtins 2016-02-15 18:50:48 +01:00
Simon Richter 6a7fa8950c FindwxWidgets.cmake: Use uppercase for macro names 2016-02-15 18:50:47 +01:00
Simon Richter 78a0316a08 FindwxWidgets.cmake: Use uppercase for DBG_MSG macro 2016-02-15 18:50:47 +01:00
Simon Richter b7adcb3728 FindwxWidgets.cmake: drop a few dbg_msg invocations 2016-02-15 18:48:40 +01:00
Simon Richter 86d072b5d1 FindwxWidgets.cmake: Remove arguments from else() and end*()
To reduce differences with upstream FindwxWidgets.cmake, use their style of
ending blocks.
2016-02-15 18:48:40 +01:00
Wayne Stambaugh f15af3ac8d Restore FindOpenSSL.cmake, the cmake version does not work on MinGW. 2016-01-14 10:31:59 -05:00
Wayne Stambaugh 99ba5259a6 Undo commit r6456 which completely breaks building on MSYS2/MingGW. 2016-01-12 21:50:18 -05:00
Simon Richter b09c88042b Synchronize FindwxWidgets.cmake with CMake project 2016-01-12 20:33:13 -05:00
Simon Wells 9362a6ec24 Update FindwxWidgets.cmake to new version without -isystem
See: https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4d05f195
2016-01-11 17:15:48 -05:00
Chris Pavlina 020ba521df Remove FindOpenSSL.cmake (not used since removing avhttp) 2016-01-10 19:47:30 -05:00
Wayne Stambaugh ff924f6983 Remove download_avhttp.cmake and avhttp source archive. 2016-01-03 18:55:42 -05:00
Wayne Stambaugh c751bf60bc Remove Boost library building and other build improvements.
* Remove download and build Boost from source and all CMake boost source build
  dependencies.
* Make FindCairo.cmake use pkg-config when it's available not just all
  platforms except windows.
* Add version checking to FindCairo.cmake.
* Change find GML version to 0.9.5.1 which is the current version in Ubuntu
  14.04 LTS.
* Update required Cairo version to 1.12.1.
2016-01-03 15:33:09 -05:00
Wayne Stambaugh 204f025ff4 Build configuration fixes.
* Fix broken include path in FindGLM.cmake ( credit Cirilo Bernardo ).
* Fix if()/endif() warning in FindGLM.cmake.
* Remove trailing white space in FindGLM.cmake.
* Fix bug introduced in r6363 that inadvertently made OpenMP a required
  dependency instead of an optional dependency.
* Remove quiet flag for FindOpenMP to report findings.
2015-12-10 11:35:43 -05:00
Simon Richter 32d4dae5ef CMake: use CMake's position independent code handling.
* Bump minimum CMake revision to 2.8.12.  The CMake position independent code
  handling was introduced in CMake 2.8.9 but 2.8.12 is current version in
  Ubuntu 14.04 LTS which is a very popular distro.
* CMake provides a simple declarative statement to enable PIC, so no compiler
  dependent handling is required.
* There is also no need to tell Boost to build with -fPIC, their build system
  is smart enough.
2015-12-08 09:17:23 -05:00
jean-pierre charras 256e47c00f Commit missing file FindGLM.cmake 2015-12-08 11:52:09 +01:00
Simon Richter 2869c9f49a CMake: use visibility definitions in provided by CMake when available.
CMake 3.0 defines two new variables:

 * CMAKE_CXX_VISIBILITY_PRESET and
 * CMAKE_VISIBILITY_INLINES_HIDDEN

to control whether symbols not explicitly tagged for export are implicitly
exported.  Because only version 3.3 and later also applies that to static
libraries when in 3.3 mode, compatibility code is added as well.

When the minimum required version is bumped to 3.3, this code becomes
obsolete and a warning is displayed that the compatibility code should be
removed as well.
2015-12-07 16:46:18 -05:00
Wayne Stambaugh b04f18b245 CMake: remove OpenSSL download and build dependency code.
* Removed some left over OSX_DEP_BUILDER code missed in my previous commit.
2015-12-03 10:59:02 -05:00
Wayne Stambaugh 6f5a49bb60 Remove OSX dependency builder code from CMake files.
* Remove USE_OSX_DEPS_BUILDER option.
* Remove all download_foo.cmake files used by the OSX dependency builder.
2015-12-01 09:44:40 -05:00
jean-pierre charras 9dc5bc4c66 Rename the automatically generated version.h to kicad_build_version.h as a workaround to an issue in msys2: for a very obscure reason, version.h was added as dependency to most of .cpp files. 2015-11-24 11:05:34 +01:00
Wayne Stambaugh 463b8b4127 Revert changes to CreateGitVersionHeader.cmake that were causing configuration issues. 2015-09-14 08:45:25 -04:00
Joseph Chen c890abe08a Improve git generated KiCad version string. 2015-09-13 14:04:40 -04:00
Nick Østergaard af1f3c9b49 Add git build version header support.
* Add CreateGitVersionHeader.cmake to extract git version information to create the kicad version
  header.
* Add check for .git folder in source path to trigger git version CMake macro.
2015-07-12 20:06:50 -04:00
Wayne Stambaugh 5ddc9b378b Correctly fix version header generation to be rebuilt during make.
* Use CMake add_custom_target() to run WriteVersionHeader.cmake as a command.
* Modify WriteVersionHeader.cmake to be run as a command instead of a macro.
* Add version header creation as a CMake common library build dependency.
* Add cached CMake variable KICAD_BUILD_VERSION when build version is defined during
  configuration.
2015-07-10 14:47:59 -04:00
Wayne Stambaugh 94ad141570 Actually remove file CMakeModules/version.h.cmake forgotten in previous commit. 2015-07-05 15:27:00 -04:00
Wayne Stambaugh 9d69b73b85 Minor version string generation changes.
* Fix CMake macro create_bzr_version_header to always update version.h file whenever a repo change
  is found.  Running `make rebuild_cache is no longer required.
* Add new CMake function for writing version.h file.
* Always use version.h file for build version string instead of meaningless hard coded date.
* Only use bzr version string when build version is not defined at configuration time for stable release
  version strings.
* Minor cleanup of FindBazaar.cmake.
* Remove unnecessary version.h.cmake file.
2015-07-05 15:24:34 -04:00
Nicolas PLANEL 9349158d02 Add missing CXX check : HAVE_STRCASECMP, HAVE_STRNCASECMP on string.h
This issue appear with clang++ -O1 -fsanitize=address compiler
2015-06-11 22:14:05 -04:00
Simon Richter 89699a193a Fix typo in FindOpenSSL.cmake 2015-04-29 12:50:16 -04:00
Wayne Stambaugh 4274f2d5d5 Fix config.h default data install path assignment during configuration.
* Remove redundant definition of KICAD_DATA_PATH since DEFAULT_INSTALL_PATH
  was already defined.
* Use DEFAULT_INSTALL_PATH as the substitution for the default environment
  variable paths.
* Add option to define DEFAULT_INSTALL_PATH during CMake configuration with
  fall back to CMAKE_INSTALL_PREFIX if not not defined.
* Developer note: this change is primarily for package builders where
  CMAKE_INSTALL_PATH is the path where the package builder temporarily
  installs the build output before creating the package.  When building
  packages, DEFAULT_INSTALL_PATH should be set to the path where the
  package will be installed by default.
2015-04-08 13:27:04 -04:00
unknown b3b791961a coverity common folder fixes (mainly not initialized members). 2015-03-11 17:04:20 +01:00
Wayne Stambaugh d13912c26a Fix bug in gEDA footprint library parser and OpenSSL version CMake file. (fixes lp:1427917)
* Fixed incorrect parameter ordering in gEDA footprint library parser
  which read drill diameter, pad clearance and solder mask clearance.
* Fix FindOpenSSL.cmake version detect bug which was exposed by OpenSSL
  version 1.0.2.
2015-03-04 14:46:06 -05:00
Bernhard Stegmaier 30acc07e11 Default path fixes and remove old to find 3D model path code.
* Fix default KISYSMOD/KISYS3DMOD (#ifdef typo) for OSX builds.
* Remove setting KIGITHUB from kicad/pcbnew Info.plist in favor of hardcoded default
  setting for OSX builds.
* Remove now unneeded Set3DShapesDefaultPath() and other small things.
2015-02-27 08:34:02 -05:00
Wayne Stambaugh 04c55f0956 wxPython configuration fixes.
* Add support for setting python site package path to PYTHON_SITE_PACKAGE_PATH.
* Move configure_file() so WXPYTHON_VERSION is already initialized before creating
  config.h (Duh!).
* Add status message to indicate the version of wxPython found.
2015-02-18 20:47:34 -05:00
Wayne Stambaugh 69553d6fa3 wxPython find and version loading fixes. (fixes lp:1408060)
* Add test to CMakeLists.txt to verify wxPython is installed when
  KICAD_SCRIPTING_WXPYTHON=ON.
* Add test to make sure wxPython version major and minor numbers match
  the version of wxWidgets found.
* Add code to set the correct version of wxPython to the python scripting
  initialization code.
* Minor code simplification in Pcbnew KIFACE main window creation.
2015-02-14 19:23:54 -05:00
Wayne Stambaugh bd199b894e Set default footprint library table and 3D model library environment variables. 2015-02-03 15:42:33 -05:00
jean-pierre charras 8412f2ad4e ModEdit: add a settings menu option(and the corresponding dialog) to set default values used when creating a footprint or add graphic items to a footprint being edited.
These settings are now not common to the board editor, because the footprint editor can be run outside the board editor.
download_boost.cmake: ignore  .htm* files when installing boost. They are not used, and often have a very very long (and stupid) name which sometimes creates issues.
2015-01-30 19:42:46 +01:00
Wayne Stambaugh 4a95880be9 Fix FindOpenSSL.cmake version string regex breakage in OpenSSL 1.0.2. 2015-01-27 09:24:46 -05:00
Wayne Stambaugh 7ec906a373 Fix variable naming bug causing the bzr version to be dropped in FindBazaar.cmake. 2015-01-16 09:14:51 -05:00
Wayne Stambaugh 614c8e45c8 Fix paths and hints variable naming bug in FindOpenSSL.cmake. 2014-12-30 14:20:33 -05:00
jean-pierre charras 9b7ef20be9 Fix install issue after removing freeroute.jnl, now useless because freeroute is no more accessible via the web.
(Kicad is still able to run freeroute if freeroute.jar is accessible)
add wxWidgets-3.0.2 folder detection in FindwxWidgets.cmake
2014-12-22 12:55:33 +01:00
jean-pierre charras 7231dd362c FindwxWidgets.cmake: fix missing webview library name in library list to analyze. this fixes missing symbols issue in winbuilder. 2014-12-22 10:31:45 +01:00
Bernhard Stegmaier b495ad0374 OSX build fixes.
* Make defintion of OSX build target a requirement.
* Update OSX build documenation to reflect build changes.
* Update OSX build script to reflect build changes.
2014-11-28 12:34:00 -05:00
Maciej Suminski 030e4795f0 Added an additional search path for GLEW (closing bug report 1247910). 2014-11-14 09:30:52 +01:00
Wayne Stambaugh 03d50b2213 Change Windows install tree to match Linux install tree.
* Move all Windows install subfolders from ${CMAKE_INSTALL_PREFIX}/share/ to
  ${CMAKE_INSTALL_PREFIX}/share/kicad/.
* Remove unused define DEFAULT_FP_LIB_PATH from build configuration.
* Remove Boost target when skipping internal Boost build.
* Update INSTALL.txt to reflect install tree changes.
2014-10-31 16:44:09 -04:00
Brian Sidebotham e4a5f2482e * Fix FindPythonLibs to search /include/ for Python.h 2014-10-25 21:56:44 +01:00
Wayne Stambaugh d3b4d535a1 Fix build issues on MinGW when finding OpenSSL.
* Add FindOpenSSL.cmake from CMake 3.0.2.
* Change MinGW find library to find libssl and libcrypto as well as libeay32 and ssleay32.  Apparently
 at some point OpenSSL changed the library file names for MinGW.
* Stop find_library() from looking in system paths and returning the actual DLLs rather than the link
  libraries.
2014-10-24 17:06:50 -04:00
Wayne Stambaugh 3ee0c98c9f Restore custom FindPythonLibs.cmake with improvements to fix MSYS2 bug. 2014-10-24 11:28:07 -04:00
Wayne Stambaugh fa9f2f0439 Fix MSYS2 build configuration issues. 2014-10-19 14:36:41 -04:00
Wayne Stambaugh 716613b7da Actually make FindPythonInterp.cmake use correct FindPackageHandleStandardArgs.cmake. 2014-10-11 17:50:18 -04:00
Wayne Stambaugh 655703ccc8 CMake housekeeping.
* Remove CMakeParseArguments.cmake to use the version that ships with CMake.
* Remove FindPackageHandleStandardArgs.cmake to use the version that ships
  with CMake.
* Remove FindPythonLibs.cmake to use the version that ships with CMake.
* Edit FindPythonInterp.cmake to use the stock CMake version of
  FindPackageHandleStandardArgs.cmake since the local version was removed.
2014-10-11 17:22:50 -04:00
Wayne Stambaugh 21ca86573f Fix a minor bug in FindwxWidgets.cmake version.h path search. 2014-09-30 18:43:20 -04:00
Wayne Stambaugh 92d141a846 Fix FindPackageHandleStandardArgs.cmake for differences between CMake 2 and 3. 2014-09-26 21:08:44 -04:00
Wayne Stambaugh 5598113a45 Minor build bug fixes.
* Remove ${CMAKE_CURRENT_LIST_DIR} copied FindPackageHandleStandardArgs.cmake.
* Comment out debug messages in FindwxWidgets.cmake.
2014-09-26 20:28:12 -04:00
Wayne Stambaugh ed19967099 Force wxWidgets to version 3.0.0 or later and OSX build fixes.
* Add version detection to FindwxWidgets.cmake
* Convert commands and macro names to lower case in FindwxWidgets.cmake.
* Use find_package_handle_standard_args() to handle version comparison.
* Update FindPackageHandleStandardArgs.cmake from CMake 3.0.2 to get the
  latest bug fixes.
* Add an option to ignore building every OSX dependency from source and
  use find_package() the way it is supposed to work unless the developer
  specifically requests building everything from source.
2014-09-26 17:52:56 -04:00
Wayne Stambaugh a27845e948 Fix MinGW 64 bit build buigs.
* Patch Boost interlocked.hpp from version 1.56.
* Fix segfault in Eeschema when auto save event occurs before root sheet is initialized.
* Add assertion when SCH_SHEET_PATH::BuildSheetList is called with NULL pointer.
2014-08-23 11:22:50 -04:00
Wayne Stambaugh 547524cd0a Fix bug in FindwxWidgets.cmake.
* Fix C flag parser when there is more than one flag defined after includes when
   wx-config --cflags is called.
2014-08-22 16:40:17 -04:00
jean-pierre charras 834699accb Pcbnew: fix bug #1313076 (Filled Zones on technical layers) does not show up on 3D rendering 2014-04-27 13:30:45 +02:00
Dick Hollenbeck 61fe97e666 the boost site is getting slower, somebody might need supply a better host and offer bandwidth there for downloading the boost tar. 2014-04-23 08:53:07 -05:00
jean-pierre charras 229613ef26 Cmakefiles: do not create map file on Windows, because creating map file generates hundred of useless wranings.
In PATCH_COMMAND, use patch instead of bzr patch if patch or patch.exe is found (mandatory to use msys2 because bzr patch does not work when using msys2)
2014-04-03 13:55:02 +02:00
Marco Serantoni 1c232f5608 [MacOSX] Support for kiface in bundles, workaround for some cairo issues 2014-03-22 12:35:33 +01:00
Dick Hollenbeck 6bfff89fe5 merge tip in, resolve. 2014-03-20 01:24:33 -05:00
Dick Hollenbeck 2c67c3ff80 * KIWAY Milestone A): Make major modules into DLL/DSOs.
!   The initial testing of this commit should be done using a Debug build so that
    all the wxASSERT()s are enabled.  Also, be sure and keep enabled the
    USE_KIWAY_DLLs option.  The tree won't likely build without it.  Turning it
    off is senseless anyways.  If you want stable code, go back to a prior version,
    the one tagged with "stable".

*   Relocate all functionality out of the wxApp derivative into more finely
    targeted purposes:
    a) DLL/DSO specific
    b) PROJECT specific
    c) EXE or process specific
    d) configuration file specific data
    e) configuration file manipulations functions.

    All of this functionality was blended into an extremely large wxApp derivative
    and that was incompatible with the desire to support multiple concurrently
    loaded DLL/DSO's ("KIFACE")s and multiple concurrently open projects.
    An amazing amount of organization come from simply sorting each bit of
    functionality into the proper box.

*   Switch to wxConfigBase from wxConfig everywhere except instantiation.
*   Add classes KIWAY, KIFACE, KIFACE_I, SEARCH_STACK, PGM_BASE, PGM_KICAD,
    PGM_SINGLE_TOP,
*   Remove "Return" prefix on many function names.
*   Remove obvious comments from CMakeLists.txt files, and from else() and endif()s.
*   Fix building boost for use in a DSO on linux.
*   Remove some of the assumptions in the CMakeLists.txt files that windows had
    to be the host platform when building windows binaries.
*   Reduce the number of wxStrings being constructed at program load time via
    static construction.
*   Pass wxConfigBase* to all SaveSettings() and LoadSettings() functions so that
    these functions are useful even when the wxConfigBase comes from another
    source, as is the case in the KICAD_MANAGER_FRAME.
*   Move the setting of the KIPRJMOD environment variable into class PROJECT,
    so that it can be moved into a project variable soon, and out of FP_LIB_TABLE.
*   Add the KIWAY_PLAYER which is associated with a particular PROJECT, and all
    its child wxFrames and wxDialogs now have a Kiway() member function which
    returns a KIWAY& that that window tree branch is in support of.  This is like
    wxWindows DNA in that child windows get this member with proper value at time
    of construction.
*   Anticipate some of the needs for milestones B) and C) and make code
    adjustments now in an effort to reduce work in those milestones.
*   No testing has been done for python scripting, since milestone C) has that
    being largely reworked and re-thought-out.
2014-03-19 19:42:08 -05:00
Marco Serantoni dcea11e5cb [MacOSX] New OSX build enviroment now supported 2014-03-14 02:07:44 +01:00
Marco Serantoni 932c92af55 [MacOSX] New reorg for building system, typos and path refines 2014-02-19 22:39:21 +01:00
Marco Serantoni 2acaa2871d [MacOSX] Fixing build system, sorry guys, refining build system and make building smoother. 2014-02-08 16:15:06 +01:00
Marco Serantoni bbff6c0d30 [MacOSX] Adding patches for wxPython && http://trac.wxwidgets.org/ticket/15957 2014-02-07 23:00:19 +01:00
Marco Serantoni eb34364d89 [MacOSX] Automating building for OSX with KICAD_SCRIPTING, see Documentation/compiling/mac-osx.txt 2014-02-07 19:53:54 +01:00
Dick Hollenbeck 33e26b278d KIWAY in progress... 2014-02-03 13:26:18 -06:00