Commit Graph

656 Commits

Author SHA1 Message Date
Seth Hillbrand 365f9224e7 CMake: Fix OCE/OCC swap
unset() needs to remove the cached variable to get rid of the implicit
version
2019-11-16 10:02:55 -08:00
jean-pierre charras c5290de6ec housekeeping:
Remove not used files:
- markdown2html is not used (we are using "Sundown" tool)
- newstroke_font_without_CJK.cpp is removed.
Due to code optimization the full font works fine without memory issues
-fix also a few very minor compil warnings
2019-11-16 09:39:36 +01:00
jean-pierre charras 34b26a0ac7 Add KICAD_USE_FONT_REDUCED_SET (default OFF) to build options.
It allow using the previous font set without CJK.
The new font (with CJK) is very large (10x), and can create (on Opengl) out of memory issues
with some graphic cards.
2019-10-07 09:50:24 +02:00
Wayne Stambaugh d837a212aa Bump Boost version to 1.59. 2019-10-03 14:53:27 -04:00
jean-pierre charras 49dbc37277 Fix a few issues related to help files in html or markdown.
Fix *.cmake scripts that dropped the semicolon in strings during conversion.
Move markdown2html in a separate library.
2019-10-01 17:11:39 +02:00
Seth Hillbrand 0b80c00678 Add Valgrind stack instrumentation
Our coroutine system can make debugging memory issues harder by not
following a standard stack allocation system.  We can get around this by
using valgrind's built-in stack instrumentation.  Each coroutine
registers a stack allocation allowing memcheck to recognize when
accesses are bounded.
2019-08-10 08:28:25 -07:00
jean-pierre charras 38fc51c3b6 CMakeLists.txt: add compil option KICAD_STDLIB_LIGHT_DEBUG, useful when KICAD_STDLIB_DEBUG cannot be used.
KICAD_STDLIB_DEBUG option generate intrusive tests and asserts, and on Windows, generate crashed not captured by GDB.
KICAD_STDLIB_LIGHT_DEBUG generate less intrusive tests and asserts.
it adds only -Wp,-D_GLIBCXX_ASSERTIONS and that generate less asserts.

Add also the new build options in dialog about.
2019-08-07 14:51:28 +02:00
Seth Hillbrand 5aa48e523d C++14: Remove libglm version hold
We can now accept all versions of libglm >= 0.9.5.1 in the master
branch.
2019-08-06 18:43:45 -07:00
Seth Hillbrand 7ed4d11f0c cmake: Add options for debugging
This adds std library assertions and address sanitizer options.

They are not yet enabled by default for debug builds as they are not
compatible with our inline assembler
2019-08-06 15:28:26 -07:00
Simon Richter a1f16f3681 Adapt CMake 3.0 compatibility code for C++14 2019-07-17 18:27:59 -07:00
Simon Richter e5463b5455 Define compiler flags for MSVC
Defines:
 - inhibit generation of #pragma comment(lib, ...) from boost
 - inhibit warnings about "unsafe" containers
 - inhibit warnings about "unsafe" C functions
 - inhibit warnings about "deprecated" POSIX functions
 - suppress min/max macros from windows.h

Flags:
 - source and execution charsets are UTF-8
 - suppress warnings about throw() not being fully supported in the compiler
 - suppress warnings about values being explicitly cast to bool
 - enable string pooling
 - enable unreferenced code removal
 - enable COMDAT folding
 - generate PDB debug information
2019-07-17 08:10:47 -04:00
Simon Richter cf4393091a Set _USE_MATH_DEFINES on Windows
All compilers need this in standards-compliant mode.
2019-07-17 08:10:47 -04:00
Seth Hillbrand 044b4a6d4c Bump C++ version to c++14
This is a provisional bump.  If supported platforms
(http://kicad-pcb.org/help/system-requirements/#_specific_system_requirements)
experience issues with this version we will revert back to c++11.

No code that requires c++14 will be committed yet.
2019-07-10 20:03:48 -07:00
Ian McInerney 42e14b5a4e Cleanup cmake python dependency handling to catch errors
* Changed the KICAD_SCRIPTING flag to be a global disable, so it
  will disable all other scripting flags when set to OFF
* Added version testing with the wxPython flags to ensure the
  proper version is found for the flags provided
2019-06-27 13:31:20 -04:00
Seth Hillbrand ffc1b6406f Remove last vestiges of WX_GRAPHICS_CONTEXT 2019-06-18 11:15:05 -07:00
jean-pierre charras b5cf03f5ad Remove boost::regex from required BOOST components, because now replaced by std::regex is used. 2019-06-18 08:22:05 +02:00
Seth Hillbrand ca12ce6f14 CMake: Bump version
Updates the minimum version to 3.0.2
2019-06-14 10:56:45 -07:00
Seth Hillbrand e52afd93a3 Remove Legacy options for overlay/context
These options were used to support the legacy canvas when drawing on
MacOS and GTK3.  With the move to 100% GAL, they are extraneous.  This
moves all DC over to "COPY" as we only use this for printing support in
Eeschema at the moment, so there is a single draw command (no erasing)
for the canvas.
2019-06-12 06:01:03 -07:00
Tomasz Włostowski 37e057173c CMakeLists: temporarily disable --no-undefined which breaks builds with ASan 2019-05-22 16:37:16 +02: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
John Beard 03214b5dea Sexpr/QA: Split out the sexpr classes into a reusable lib and test
The SEXPR class is a useful general-purpose S-Expression library
class and can (maybe) be used else where. It also should get
test coverage, as even if noone else uses it, it's critical for the
kicad2step exporter.

Also add some test coverage for some kicad2step routines. For now,
they're not useful outside kicad2step, but they are at least a useful
reference for S-Expression parsing.
2019-04-17 10:52:56 +01:00
jean-pierre charras ead5bfe64b Add option to build QA test suite (this option is on by default.
KICAD_BUILD_QA_TESTS=OFF skips the QA test suite build.
This is useful for daily work on Kicad. It spares compil and link time.
2019-04-16 18:40:56 +02:00
Seth Hillbrand 257d9b5fe9 Allow setting the kicad config dir
This allows setting the config dir at build time, providing packagers a
method of controlling where the configuration files are placed.

Fixes: lp:1780601
* https://bugs.launchpad.net/kicad/+bug/1780601
2019-04-08 12:33:49 -07:00
Jon Evans 83c7e7fc65 New connectivity algorithm and bus upgrades
Bus upgrades: core new connectivity code

Bus upgrades: eeschema integration and modifications

Bus upgrades: eeschema dialogs

Bus upgrades: netlist export

Bus upgrades: file format changes
2019-03-31 19:53:41 -04:00
Seth Hillbrand 5619cc41f9 Remove Bsymbolic linker flag
Bsymbolic prevents DSO exceptions from being handled by the calling
application.  This was added when some toolchains did not fully support
the -fhidden-visibility setting.  Every platform now support it, so we
can remove the hammer.

See https://bugs.launchpad.net/kicad/+bug/1322354 for original details
2019-03-16 20:37:14 -07:00
Seth Hillbrand 6eb84e42f2 cmake: Remove invalid clang syntax
Clang compiler uses the same syntax for sending flags to the linker as
gcc.  If we use -XLinker, we can't use comma-separated options but
there appears to be no reason to anyway.  Removes extra warning quieting
that was added for compiling Boost in tree.
2019-03-07 13:59:18 -08:00
Seth Hillbrand 81a5bd977b Force overlay when building GTK3
GTK3 does not provide the XOR method.  We need to force the overlay to
draw items in Page Layout editor when moving/dragging
2019-02-25 14:14:44 -08:00
Thomas Pointhuber bb7c889551 Fix check for incompatible glm version in cmake
Build fails on GCC, but not with Clang. Modify the check to only catch the
cases where GLM does not work for sure.

Reference: lp:1804030
* https://bugs.launchpad.net/kicad/+bug/1804030
2019-01-09 09:24:49 -05:00
Seth Hillbrand e8333633fe GAL: Add antialiasing options to Cairo
Cairo supports antialiasing when rendering but can be slow when set to
sub-pixel mode.  This bumps the minimum version of Cairo to 1.12
(available in 14.04 LTS as well as mingw) to support three antialias
settings (fast, good, best) that offer speed/appearance tradeoffs.

This can provide a higher-quality eeschema render as it works on a
per-element basis as opposed to the OpenGL per-screen antialias.
2019-01-04 13:39:56 -08:00
Seth Hillbrand 968ea983aa GLM: Check for incompatible glm version in cmake
GLM version 0.9.9.3 has a C++11 error that causes issues for KiCad.
Earlier version function as expected.  Since GLM is header-only, forcing
the version during compilation is sufficient to ensure that the
executable functions correctly.

Fixes: lp:1804030
* https://bugs.launchpad.net/kicad/+bug/1804030
2018-12-14 16:29:18 -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
jean-pierre charras 95bc4f74c5 Windows compil option: always define UNICODE and_UNICODE needed by Kicad that uses unicode. 2018-11-06 18:15:52 +01:00
Maciej Suminski b7b9cccffc Moved wxPython/Phoenix detection to a separate CMake module 2018-11-02 11:28:30 +01:00
Maciej Suminski 23e574fbcd Remove a redundant semicolon in Python path configuration command 2018-11-02 10:40:05 +01:00
Maciej Suminski 179c46ce49 Handle another type of wxPython/Phoenix version string
Fixes: lp:1801109
* https://bugs.launchpad.net/kicad/+bug/1801109
2018-11-02 09:42:08 +01:00
Seth Hillbrand 672e98bd89 Phoenix: Fix wxwidget version
Phoenix reports version 4.x but wxWidgets do not follow this version.
Phoenix also does not have or require the wxPython.h file.

Fixes: lp:1801109
* https://bugs.launchpad.net/kicad/+bug/1801109
2018-11-01 08:49:51 -07:00
jean-pierre charras ad99983672 Windows build: link gdiplus library on all Windows targets, not only mingw. 2018-11-01 16:03:21 +01:00
jean-pierre charras 8be3471ba2 Windows specific: define GDI_PLUS_LIBRARIES even if USE_WX_GRAPHICS_CONTEXT is not used.
Because the cairo printing system uses gdiplus library, GDI_PLUS_LIBRARIES must be always defined
2018-11-01 08:38:23 +01:00
Maciej Suminski 38f94483f4 Warn the user about wxWidgets/Python toolkit mismatch instead of overriding the setting 2018-10-31 19:17:30 +01:00
Maciej Suminski 948f28ebcc Enforce the same toolkit version for wxWidgets and wxPython libraries
Fixes: lp:1747677
* https://bugs.launchpad.net/kicad/+bug/1747677

Fixes: lp:1783634
* https://bugs.launchpad.net/kicad/+bug/1783634
2018-10-31 19:17:30 +01:00
Wayne Stambaugh 9519de8ab2 Check for wxPython.h when wxPython scripting is enabled.
Fixes lp:1785663

https://bugs.launchpad.net/kicad/+bug/1785663
2018-10-31 10:15:32 +01:00
Thomas Pointhuber 0e0b4d52a2 Add initial support for Phoenix (new wxPython binding)
Based on the work of @mmccoo:
https://kicad.mmccoo.com/2017/11/23/learnings-from-moving-kicad-to-wxpython-4-0/
and this additional patchset to remove wxpy_api.h dependency:
http://mmccoo.com/random/0001-Remove-dependence-on-pywx_api.h.patch

Please note CreatePythonShellWindow changed quite a lot. Throughful testing
should be made for the old as well as new wxPython version on all platforms
2018-10-26 13:21:11 +02:00
Seth Hillbrand 40c70dd008 Prevent excess precision errors on 32-bit builds
The compile flag -ffloat-store requires floating point values to be
stored in memory rather than in registers to prevent errors when two
numbers are compared that were stored in different locations.
2018-10-23 15:27:58 -07:00
Wayne Stambaugh 8a251163dc Revert "Turn off compiler extensions"
The compiler option caused build failures on msys2.

This reverts commit 2c22bb1a60.
2018-10-19 18:19:45 -04:00
Simon Richter cc0489f6b5 Disallow variable length arrays
This is a gcc/clang extension, not standard C++
2018-10-19 10:25:32 -07:00
Simon Richter 2c22bb1a60 Turn off compiler extensions
We want to be somewhat standards compliant if we can.
2018-10-19 10:25:05 -07: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 86ecb9fe30 Fix cmake script for PythonLibs 2018-10-19 09:59:06 +02:00
Thomas Pointhuber 7548a3b1bf Add KICAD_SCRIPTING_PYTHON3 flag to about dialog and doc 2018-10-19 09:59:05 +02:00
Thomas Pointhuber 1a11480bfd Add cmake flag to switch to python3 build 2018-10-19 09:59:05 +02:00
Thomas Pointhuber de7b362695 Rewrite some code to work on Python 2.7 and 3+ 2018-10-19 09:59:03 +02:00
Seth Hillbrand f8784f30a8 Removing OpenMP
This commit finishes the removal of OpenMP from the KiCad codebase.
Removed in this commit are the OpenMP calls in 3d-viewer and
qa/polygon_triangulation as well as all references in CMakeLists.txt

std::thread is used instead for multithreaded computation
2018-09-21 12:44:20 -07:00
Damian Wrobel f85b1479aa Fix setting default cmake build type
Changes: Sets default cmake build type before
calling project(). Current version seems to follow
https://cmake.org/pipermail/cmake/2008-September/023808.html
however, it seems to miss the comment that:
"definition of CMAKE_BUILD_TYPE occurs in the PROJECT() command"
which means that setting cmake build type should happend prior
to calling PROJECT().

Fixes: lp:1785719
* https://bugs.launchpad.net/kicad/+bug/1785719
2018-09-05 08:12:03 -04:00
Wayne Stambaugh f52da8ed96 Pcbnew: enable scripting action menu build option by default.
Fixes lp:1783690

https://bugs.launchpad.net/kicad/+bug/1783690
2018-08-21 12:54:13 -04:00
Maciej Suminski 01925fd6a7 Changed the OpenGL CMake preference to LEGACY
Certain distribution does not handle GLVND well, as the result the
accelerated canvas is not enabled. For the time being it is better to
keep using the legacy preference.

Thanks to Aurelio Lucchesi for investigating the cause.

Fixes: lp:1781581
* https://bugs.launchpad.net/kicad/+bug/1781581
2018-08-17 10:03:59 +02:00
jean-pierre charras 9a6fe2b8cd CMakeLists.txt: add a option (BUILD_SMALL_DEBUG_FILES, default off) to create smaller binaries in debug mode.
It forces link option -g1 instead og -g3 which allows basic debug.

This is especially useful on Mingw because binaries in debug build are very large:
_pcbnew.kiface: 1.25 Gb, small file option: 65Mb
2018-07-28 10:38:00 +02:00
John Beard 2e977ec369 Enable CTest tests and add qa_geometry as a test
This allows the use of `make test` or `ctest` to run all registered
tests.

The ChamferFillet/Fillet test is disabled for now as it fails.
2018-07-27 08:57:19 -04:00
Maciej Suminski 944d22c08a Fix detection of wxWidgets toolkit
wxWidgets_CONFIG_OPTIONS can be utilised to explicitly select GTK2 or GTK3. It
must be evaluated when querying the toolkit to avoid a mismatch between the
version actually used and the version KiCad assumes to be used.

Reapplied the original version. The previous patch has been modified
under an invalid assumption of being incompatible with msys2.
2018-07-27 09:08:42 +02:00
Marcus A 31f77fc040 Fix detection of wxWidgets toolkit
wxWidgets_CONFIG_OPTIONS can be utilised to explicitly select GTK2 or GTK3. It
must be evaluated when querying the toolkit to avoid a mismatch between the
version actually used and the version KiCad assumes to be used.
2018-07-26 17:23:28 +02:00
Marcus A d5f81c7255 Fix some typos in CMakeLists.txt 2018-07-26 16:47:52 +02:00
Marcus A 0dcc26f866 Update description of build options
Commit 93683d0021 changed the default build
options but did not update their description.
2018-07-26 16:47:52 +02:00
jean-pierre charras 72d1597201 DXF import: add import of DXF splines that are converted to Bezier curves.
Fix also a lot of bugs related to Bezier curves (S_CURVE shape in DRAW_SEGMENT class) in Pcbnew code.
Add missing code to handle these Bezier curves
2018-07-22 18:39:47 +02:00
Maciej Suminski 850aac5ec5 Set OpenGL_GL_PREFERENCE for CMake 3.11+ 2018-06-11 10:27:49 +02:00
Jean-Samuel Reynaud d4393b2813 Fix incorrect Eeschema BOM plugins install path on Linux.
Fixes lp:1697041

https://bugs.launchpad.net/kicad/+bug/1697041
2018-06-01 14:09:08 -04:00
Seth Hillbrand 584409b2ef Make OpenCascade more secondary
The opencascade patch intrusively checked against libraries but broke
some build scripts.  This restores the default cmake OCE behavior that was
changed by 2bab30d9a and makes the OpenCascade search truly secondary.
2018-05-15 06:40:25 -07: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
Wayne Stambaugh 5d71153eab Fix macos build bug caused by commit 2f5fdcf3. 2018-04-30 15:47:50 -04:00
Simon Richter 2f5fdcf329 Don't reference CMAKE_INSTALL_PREFIX in installation paths
This is substituted at configuration time, creating an absolute path, which
breaks overriding CMAKE_INSTALL_PREFIX at installation time, breaking the
workflow for installation using GNU stow.
2018-04-30 10:32:15 -04:00
Seth Hillbrand b46fc7fe9c Adding option for Cmake-based DISTCC/CCACHE 2018-04-16 16:28:15 -07:00
Ievgenii Meshcheriakov 89bf02adb7 Define GLM_FORCE_CTOR_INIT during build
This ensures that GLM objects are still initialized correctly when new
version of this library are used (after 0.9.9-a2).

This also fixes display corruption in 3D-viewer with Raytracer.

Fixes: lp:1762379
* https://bugs.launchpad.net/kicad/+bug/1762379
2018-04-13 14:45:16 +02:00
Jon Evans b813eac254 Omit unnecessary scripts directory from MacOS build output 2018-03-30 22:56:51 -04:00
Bernhard Stegmaier 8f42e128da Fix missing C++-11 compiler flags when building on macOS with non-Xcode clang 2018-03-04 15:00:43 -05:00
Maciej Suminski fad0452c0e Fix builds with scripting disabled
Fixes: lp:1750853
* https://bugs.launchpad.net/kicad/+bug/1750853
2018-02-21 17:46:57 +01:00
Maciej Suminski dd04bcbcbf Make the wxWidgets toolkit test Linux specific
Other platforms (Windows, macOS) have only one base toolkit,
so there is no mismatch risk.
2018-02-21 11:44:32 +01:00
Maciej Suminski 1013f81608 Fix wxWidgets toolkit detection for msys2 builds 2018-02-20 20:33:02 +01:00
Maciej Suminski 792e9015ac CMakeLists: compare wxWidgets and wxPython toolkits
Having wxWidgets and wxPython build using different toolkits leads
to an unusable build. KiCad executables are linked against wxWidgets
shared libraries, which will be in conflict with wxPython ones that
are loaded at runtime. We cannot easily solve it, so at least warn
the users about expected problems.

More information:
https://forum.kicad.info/t/9493
https://bugs.launchpad.net/kicad/+bug/1746753
2018-02-20 17:51:50 +01:00
Maciej Suminski c3197a5906 CMakeLists: detect gtk3 using wx-config 2018-02-17 21:00:16 +01:00
Maciej Suminski 4561b2cba9 GTK3: Display a warning and enable wxGraphicsContext 2018-02-08 11:07:25 +01:00
Wayne Stambaugh 93683d0021 Enable all build configuration options ready for stable 5 release.
Enable Python scripting, OCE, and spice build configuration options.

Update compiling.md to reflect new option settings.
2017-12-29 17:38:42 -05:00
Tomasz Włostowski 8df299a6bc pcbnew: Optimized zone filling algorithm: code cleanup 2017-12-05 14:54:57 +01:00
Tomasz Włostowski 316ddadec1 pcbnew: Optimized zone filling algorithm. 2017-12-05 14:54:57 +01:00
Nick ?stergaard c74437a44e Remove unused custom cmake target
This target seems to only create empty makefiles, tested on linux. And I
can not find any references to it in any of the current CMakeLists. Lets
remove it.
2017-12-03 18:21:40 -05:00
Marvin Schmidt c21a2a8a55 build: Don't install *.bat scripts on Unix 2017-11-09 19:52:17 +01:00
Marvin Schmidt 8a62aeb18d build: Remove dead code 2017-11-09 19:52:17 +01:00
Marvin Schmidt f9516cb48c build: Use CMAKE_INSTALL_DATADIR 2017-11-09 19:52:17 +01:00
Marvin Schmidt b6c3d4eb32 build: Don't install INSTALL.txt 2017-11-09 19:52:17 +01:00
jean-pierre charras 4e391ef21c Housekeeping: remove no more in use options. 2017-11-02 21:01:32 +01:00
jean-pierre charras e2d3fcec02 Add support for custom pad shape. Full support in DRC and PnS.
add option to use shape or convex hull as clearance area in zones.
simplify code to handle clearance area
2017-09-19 09:02:53 +02:00
Lubomir Rintel 862711b71a Add AppStream metadata
This will ensure KiCad will be easily installable from the app stores such
as GNOME Software.

The screenshots probably need a better home. Not that it would matter
too much -- the Linux distributions do cache them with their feeds, so
the app store applications don't access them from this source directly.

Screenshots from the web [1] can't be used since they are too large for
use in the app store application. :(

[1] http://kicad-pcb.org/discover/screenshots/

Fixes lp:1323789

https://bugs.launchpad.net/kicad/+bug/1323789
2017-04-27 19:00:38 -04:00
Vlad Ivanov 1e25c47362 cmake: use GNUInstallDirs to obtain lib/lib64 path
Fixes lp:1679795

https://bugs.launchpad.net/kicad/+bug/1679795
2017-04-10 16:21:50 -04:00
jean-pierre charras c9ff885c1d Cmakelists: remove no longer used boost libraries from required boost components lists 2017-04-07 16:57:17 +02:00
Wayne Stambaugh 9c2ebf32f1 Initial symbol library table implementation prep work.
Add loading symbol library table code to schematic PROJECT object.

Fix minor issues with loading global symbol library table.

Add default symbol library path environment variable to the environment
variable list and change the variable name to KICAD_SYMBOL_DIR.

Add code to SCH_SCREENS to test if all library nicknames of the symbol
library IDs are empty.

Remove unnecessary KICAD_USE_SCH_IO_MANAGER build option.
2017-03-31 16:29:34 -04:00
Chris Pavlina 849b3c2a4b Add footprint select dropdown to component chooser, serious refactoring
- DIALOG_CHOOSE_COMPONENT has footprint select widget
- FOOTPRINT_SELECT_WIDGET
- FOOTPRINT_CHOICE widget (customized wxComboCtrl)
- FOOTPRINT_FILTER class
- FOOTPRINT_INFO rework:
    - FOOTPRINT_ASYNC_LOADER to load without freezing UI
    - Rewrite loader threads as queue-driven thread pool
    - Make FOOTPRINT_INFO available via kiway
- FP_LIB_TABLE::PrefetchLib
- Access to global fp-lib-table via kiway
- SYNC_QUEUE threadsafe queue template
- Remove KICAD_FOOTPRINT_SELECTOR build option
2017-03-24 09:20:27 -04:00
Tomasz Włostowski eedf7cb243 Switched coroutine library from Boost libcotext to custom libcontext.
Fixes lp:1658249

https://bugs.launchpad.net/kicad/+bug/1658249
2017-03-07 11:45:29 -05:00
jean-pierre charras e7e972804a Make show/hide icons in menus a run time option, instead of compil option. 2017-03-02 15:45:54 +01:00
Simon Richter 986c92f880 Remove unnecessary double define
CMake already sets NDEBUG by default for Release builds, no need to duplicate this.
2017-02-23 14:54:11 -05:00
jean-pierre charras 11dcb76fc9 Add -Wshadow compil option, if exists to warn about shadowed variables.
Swig auto generated .cxx file has a lot of shadowed variables, so this option cannot be used to compil all files.
2017-02-23 13:17:23 +01:00
Chris Pavlina 2632b1d1a0 Revamp component chooser and add footprint preview
This commit brings several changes:

- Add a footprint preview pane to the eeschema component selector
- Upgrade component list to wxTreeListCtrl
- Factor out wxTreeListCtrl subclass TWO_COLUMN_TREE_LIST which
  patches a column size bug
- Linkify datasheet URL in info pane
2017-02-18 21:39:55 -05:00
Simon Richter 632cce7aa7 Reduce minimum required Pixman version
The newest version is 0.34. 1.0 doesn't exist, this only worked because
there is no actual version test.
2017-02-01 19:22:36 -05:00
Jean-Samuel Reynaud 5ef3e5a15d Pcbnew: Add ACTION_PLUGINS class. It allows loading python scripts in footprint editor and run them from the Tools/External Plugins menu
This plugin mechanism is enabled only if option -DKICAD_SCRIPTING_ACTION_MENU=ON (it is off by default)
It imply -DKICAD_SCRIPTING=0N
This is currently for testing purposes only for developers, not yet for users.
2017-01-23 13:27:49 +01:00
Tomasz Włostowski da28e163d2 Optimizations/fixes to the VIEW/GAL classes:
- much faster Cairo rendering (outperforms legacy)
- improvements in VIEW update handling
- fixed issue with grid rendering in flip view mode
2016-12-12 16:45:52 +01: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
decimad 4248a7ffce remove boost::thread dependency 2016-10-09 10:33:52 -04:00
John Beard 6504b7b55c Disable -Wsuggest-override for scripting files, but not other files
This allows the warning to be active for code which would benefit from
it, but not spew hundreds of warnings for code over which KiCad does not
have control of the override specifiers.
2016-10-05 10:43:56 -04:00
jean-pierre charras c9fec4a4ed Do not use -Wsuggest-override option if KICAD_SCRIPTING is enabled because it creates too many useless warnings when compiling pcbnewPYTHON_wrap.cxx 2016-09-30 18:38:23 +02:00
Simon Richter ff41c8f7cb Warn about missing override specifiers, if supported (gcc 5.1, clang 3.5) 2016-09-25 13:59:41 -04:00
Dick Hollenbeck 45f6f8b305 Remove experimental code added during swig work. 2016-09-22 10:51:29 -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
Niki Guldbrand c689c8cc3f Remove redundant data in defines.
* Using CMAKE_INSTALL_PREFIX in KICAD_* install paths is redundant,
  because they are allready relative to CMAKE_INSTALL_PREFIX when no
  absolute path is given.
  Using an absolute path makes it harder to change the install
  path on the fly, without either rebuilding, or manually editing
  CMakeCache.txt

Signed-off-by: Niki Guldbrand <niki.guldbrand@gmail.com>
2016-09-16 09:09:56 -04:00
José Ignacio Romero 83ed3c933e Add KICAD_INSTALL_DEMOS CMake option
It is ON by default, determines wether to install the bundled demos
and examples.
2016-09-14 19:57:35 -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
Nick Østergaard caafcde585 Add KICAD_ prefix to build switches
KICAD_ prefix was added to the USE_OCE and USE_SCH_IO_MANAGER build
switches together with a small description to the devdocs from
compiling.md.
2016-09-05 08:46:01 -04:00
Nick Østergaard c784d45ed7 Add new development build swtiches to version info
Add:
* KICAD_USE_SCH_IO_MANAGER
* KICAD_USE_OCE
2016-09-04 19:13:05 -04:00
Cirilo Bernardo b656a8180a Added 3D plugin for OCE; this plugin is activated by -DUSE_OCE=ON 2016-08-22 15:50:38 +10:00
Maciej Suminski 497b2a9442 CMake module for libngspice 2016-08-12 15:56:51 +02:00
Maciej Suminski 6d7a7a3233 KICAD_SPICE CMake flag 2016-08-11 14:42:13 +02:00
Tomasz Wlostowski 095af6e77a wip 2016-08-11 14:41:01 +02:00
Tomasz Wlostowski 2dd53b6a43 spice wip 2016-08-11 14:40:57 +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
Simon Wells 236f5369ef CMake: remove Curl dependency when github plugin build is disabled. 2016-06-27 09:10:28 -04:00
Chris Pavlina c13f80bb49 Remove unneeded compile option KICAD_KEEPCASE
Libraries have been 100% case-sensitive for a while now; there is no longer a
need to keep this option around. This will change nothing except for any
stragglers still manually specifying this old option.
2016-06-10 23:15:02 -04:00
José Ignacio Romero 2b00008109 Remove mimelnk files
Mimelnk files are not used by anything since KDE 3. Clean this up to
reduce confusion.
2016-05-30 08:33:19 -04:00
jean-pierre charras d18cdf1c53 merge 3d_initial_merge branch 2016-04-05 19:56:01 +02:00
Simon Richter 2d4845ddae Enable C++11 support. 2016-03-21 11:11:29 -04:00
Cirilo Bernardo d0a2080823 Merge with main branch r6601 2016-03-01 11:44:15 +11:00
Bernhard Stegmaier 5b0a250609 Fix compilation and install for OSX plus general code cleanup 2016-03-01 10:08:19 +11:00
Simon Wells 4d2a05856f Minor CMake configuration file fixes.
* Move add_directory()s in main CMakeList.txt after all find_package()
  macros are run so all flags in the main CMakeList.txt are propagated
  to the sub-folder CMakeList.txt files.
* Remove commented out include of config.h
* Make the link maps only build on linux as -${TO_LINKER},-cref
  -${TO_LINKER},-Map=blah just gives warnings on osx w/ clang
* Make the link maps only build with flag -DKICAD_MAKE_LINK_MAPS is
  defined during CMake configuration as they are highly specific.
* Moved the code for setting link maps into the main CMakeList.txt
  file to avoid duplication.
* Removed -D__ASSERTMACRO__ from osx as its no longer needed
* Removed a couple of other OSX only things that wouldn't work anyway
* Moved set (BU_CHMOD_BUNDLE_ITEMS) to the main CMakeList.txt as
  otherwise it would only work for the KiCad build not the other
  applications
* Made KICAD_SCRIPTING_MODULES enable KICAD_SCRIPTING as currently if
  you have modules enabled without the scripting base it will on build.
  This could be changed to a fatal error saying you need to also enable
  scripting but it seems unnecessary.
* Removed duplication of pcbnew.py install code under modules and
  scripting since you can't have modules without scripting now
2016-02-29 14:08:03 -05:00
Cirilo Bernardo 217a5f39e1 Resync with main branch r6449 2016-01-12 10:36:31 +11:00
jean-pierre charras 74b629fa19 Fix issues I created in rev 6442 (no issue on msys2/gcc5.3, but issues on Kubuntu 14.04/ gcc 4.8). I'll find a better fix later. 2016-01-11 10:13:13 +01:00
jean-pierre charras 41db57c5f0 pcbnew.py: fix error "NameError: name 'UNDEFINED_LAYER' is not defined" when running pcbnew/wxPython, which prevents from openning the Python console.
CMakeLists.txt: remove no more used boost libs, and add missing coroutine lib in list.
Fix 2 minor compil warnings.
2016-01-11 09:26:55 +01:00
Bernhard Stegmaier 7e2af163dd Silence unused-local-typedef warnings when building with clang 2016-01-10 11:17:06 -05:00
Cirilo Bernardo 43c2c7223b Sync with main branch r6421 2016-01-05 16:37:52 +11:00
Bernhard Stegmaier 8c78bd5fd8 OSX: legacy canvas rendering speed improvements.
* Enables USE_WX_GRAPHICS_CONTEXT for OSX by default.  This shouldn¡¯t be a
  major change because it seems to get used on OSX behind the scenes anyway.
  As a side effect, this might improve behavior with anti-aliasing because
  KiCad shifts drawing by (0.5, 0.5) into the middle of the virtual pixels so
  things may be less blurry.  It will still build without enabling
  USE_WX_GRAPHICS_CONTEXT, but the optimizations obviously won¡¯t be used.
* The optimizations currently only are effective when USE_WX_GRAPHICS_CONTEXT
  is enabled and OSX.  They might be also good for other platforms using
  USE_WX_GRAPHICS_CONTEXT because it aggregates some drawing primitives using
  paths wxGraphicsContext provides.
* It adds some #ifdefs for disabling the wxGraphicsContext stuff when
  USE_WX_GRAPHICS_CONTEXT isn¡¯t enabled.  If you hate #ifdefs, this also
  could be dropped but then it will always check if wxGraphicsContext can be
  applied.
2016-01-04 15:13:10 -05:00
Wayne Stambaugh c68790751a Developer documentation and other minor fixes.
* Update the developer road map document.
* Update the compiling KiCad from source document to reflect recent build
  changes.
* Change Cairo library version to 1.8.8 to fix build issues on CentOS 6.
2016-01-04 10:23:28 -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
Cirilo Bernardo 07bd4cbc04 + Resync with main r6397
+ Work in progress: VRML parser
2015-12-22 11:08:39 +11:00
Mark Roszko e47bc6883d Replace the avhttp library used by the github plugin with libcurl. 2015-12-21 15:30:33 -05:00
Cirilo Bernardo 1940bd71e4 Resync with main branch + fix MSWin build (accidental inclusion of dlfcn.h) 2015-12-15 10:56:11 +11:00
Cirilo Bernardo a2fe783f53 Finished refactor and introduction of generic Plugin scheme 2015-12-14 14:51:28 +11:00
Simon Richter 7cbf8a0bda CMake: remove older GCC optimization settings since boost::polygon is no longer used. 2015-12-12 14:56:55 -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 e872585105 CMake: move find OpenMP so it can be found for all compilers not just GCC. 2015-12-09 15:53:52 -05:00
Cirilo Bernardo 41025154a6 Synced to main branch 2015-12-09 19:51:45 +11:00
unknown 77bc1a2dd1 Fix typo in CMakeLists.txt ( in CMake function for position independent code). 2015-12-09 09:03:59 +01:00
Cirilo Bernardo 2ba7c05cbf Resync with main branch and fixed to work with new symbol visibility rules 2015-12-09 09:52:02 +11: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
Maciej Suminski 231eaecf34 Removed the included GLM library, switched to the system one. 2015-12-08 10:56:53 +01:00
Mario Luzeiro 69cc788e8e + Removed glm source from kicad tree (Maciej / Cirilo)
+ Added renderer for 3D model preview (Mario)
+ Added 3d_cache including name resolver and modifications to 3D model dialogs (Cirilo)
2015-12-08 18:31:57 +11: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 7995f0e7de Fix KIWAY_PLAYER::ShowModal: the top level windows children of the KIWAY_PLAYER Modal frame are now enabled (previously were disabled). It fix some issues for instance with the aui toolbar when moved, and the dialog open when starting the footprint wizard frame. Perhaps also explains a few other bugs in modal mode.
footprint wizard frame: now shows messages from footprints python scripts. Especially usefull when a parameter is incorrect. Fix also an other issue (IO exception error) with some python scripts when they are usin a  print command to output messages (now they use the new message window.
2015-09-05 16:47:16 +02:00
Jan Dubiec e173023e27 Prevent wxWidgets_CONFIG_OPTIONS specified on the command line from being overwritten. (fixes lp:1472919) 2015-07-21 09:14:38 -04:00
jean-pierre charras d7f4c76682 build process on mingw/msys2: force usage of a response file at archive/link stage to avoid truncation of the command line when the list of modules to archive/link is very long (happens for eeschema and pcbnew). 2015-07-12 11:01:40 +02: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 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
Wayne Stambaugh f97191b050 Fix some more OSX bundle issues due to CvPcb changes. 2015-06-11 16:42:48 -04:00
Wayne Stambaugh 1617957ef4 Fix broken build configuration dependency due to CvPcb new executable no longer being built. 2015-06-08 15:37:48 -04:00
Dick Hollenbeck 8fb520249e Use KiwayExpress messaging for CvPcb footprint assignment instead of *.cmp file.
* Remove global s_NetObjectslist.
* Separate out non-owning version of NETLIST_OBJECTS_LIST into NETLIST_OBJECTS.
* Fix double free pertaining to ~NETLIST_READER().
* Remove all file-io from CvPCB.
* Remove exe launcher cvpcb, retain only cvpcb.kiface, since cvpcb.kiface has no file i/o.
* Add void CVPCB_MAINFRAME::KiwayMailIn( KIWAY_EXPRESS& mail ) and teach it to use old
  netlist loading code with a STRING_LINE_READER LINE_READER.
* Fix BEGIN_EVENT_TABLE( CVPCB_MAINFRAME, KIWAY_PLAYER )
2015-06-07 14:18:45 -04:00
Maciej Suminski 18fa766f53 Updated OS X pinch-to-zoom patch. 2015-05-21 23:29:26 +02:00
Garth Corral 6eaf029a0e Pinch to zoom for OS X. 2015-05-21 22:54:29 +02:00
Simon Richter 3efa8347a3 Move feature check before dependent tests
The GCC/LLVM specific handling for adding -fvisibility options is later in
this file, so these options would only be added on the second invocation
without clearing the cache.
2015-05-01 23:48:47 +02: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
Maciej Suminski 7f1ea9e54d New Footprint Library Wizard. 2015-03-30 18:42:39 +02:00
Brian Sidebotham d5e70c93d9 * Make sure MinGW uses ANSI C99/C++ stdio snprintf 2015-02-23 21:08:11 +00: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
jean-pierre charras 1ed8cdf63a Pcbnew build: Set KICAD_USE_WEBKIT option default value to OFF. There are 3 reasons:
* Using a Web navigator embedded in Kicad can create security issues in Kicad.
* The web kit is not always easily available on Linux.
* There is now a tool in kicad fp lib wizard  to list and select the .pretty libs available on Github Kicad repo (When the kicad plugin is selected, this tool can download and make a local copy of these libs)
However, using -D KICAD_USE_WEBKIT=ON when invoking  cmake still build the embedded web viewer.
2015-02-06 11:49:09 +01:00
jean-pierre charras ac539b9578 Minor and very minors fixes: move -DKICAD_USE_WEBKIT definition to the main CMakeLists.txt. Remove duplicate semi-colon at end of some lines. 2015-01-17 09:01:16 +01:00
Wayne Stambaugh 02d89ad0a9 Fix a CMake 3.1 policy violation warning in CMakeLists.txt. 2014-12-29 13:06:09 -05:00
jean-pierre charras 9ba847c848 Disable webkit when BUILD_GITHUB_PLUGIN is off 2014-12-23 14:50:42 +01:00
jean-pierre charras bc230f7650 Code cleaning: move class PAGE_INFO from common.h to class_page_info.h;
Fix issue when using a page layout file in project folder: eeschema and Pcbnew did not use it, unless using an absolute path.
Now, if the file path is nor absolute, it is seen as relative to the project (which is the expected behavior)
fp lib wizard: when pcbnew id compiled with USE_GITHUB_PLUGIN=OFF, the github plugin option is no more accessible (and the web viewer no more used).
2014-12-23 14:01:59 +01: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 e4a74213e4 Add wizard to fp lib dialog to easily add entries to this table. 2014-12-21 15:13:14 +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
Alexander Golubev 1aec1f5985 An ugly if condition replaced with a CACHE'd cmake variable in CMakeList.txt. 2014-11-12 21:09:47 -05:00
Alexander Golubev 483a7b2747 A small cmake enhancement:
An ugly if-condition replaced with a CACHE'd cmake variable.
2014-11-05 19:39:36 +03:00
Wayne Stambaugh 0561940db0 Fix CMake warning caused by removal of boost dependency when not actually building boost from source. 2014-10-31 17:22:37 -04: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
Wayne Stambaugh e273a48ddc Remove old build configuration since kiway is now the only way to build kicad. 2014-10-26 15:54:48 -04:00
Wayne Stambaugh b7f890adb3 Fix parallel build bugs.
* Make all files generated by make_lexer() dependencies of thier respective build targets.
* Make building Boost a dependency for all libraries.
* Remove duplicate make_lexer() call for Specctra lexer files.
2014-10-22 19:25:59 -04:00
Wayne Stambaugh fa9f2f0439 Fix MSYS2 build configuration issues. 2014-10-19 14:36:41 -04:00
Bernhard Stegmaier f06bfe6d70 Commit the rest of the OSX build fixes missed in the previous commit. 2014-10-17 13:45:33 -04:00
Berhnard Stegmaier b8d1789a22 OSX build fixes and improvements.
* Fix creation of single app bundle with respect to scripting support.
* Cleanup scripting search paths for OSX.
* Fix some small CMake bugs from previous OSX build change.
* Optimize bundle file structure to be consistent with Apple specs.
* Add helper script for compiling wxWidgets and wxPython
* Update OSX build instructions.
2014-10-08 14:41:36 -04:00
Wayne Stambaugh 99f30c9d38 Road map and Doxygen work.
* Remove obsolete settings from Doxygen configuration file.
* Fix some Doxygen warnings.
* Add the board edge segment snapping to developers road map.
* Fix some coding style issues in CMakeLists.txt
2014-10-05 21:18:24 -04:00
Bernhard Stegmaier 8b3c14c08b OSX build improvements.
* Compile all binaries into a single application bundle.
* Use CMake BundleUtilities to make application bundle relocatable.
* Restructure build output to directly create an image file.
* Fix default search paths.
* Set KIGITHUB environment variable.
* Added patch to fix wxWidgets so names for OSX.
2014-10-02 19:03:52 -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
jean-pierre charras 93a3d4cb28 Eeschema: back to KICAD_KEEPCASE option, to find parts in lib, when using case sensitive option (default).
Schematic component properties dialog: add 2 helper buttons to manage the chip name (name of the corresponding part in lib)
- a browse button to chose an other chip name
- a test button, to know if the part exists. If not existing, list the parts found when searching using a case insensitive comparison.
2014-09-17 18:04:04 +02:00
jean-pierre charras 1edd8c8ac8 Eeschema: remove the compil option KICAD_KEEPCASE. Eeschema is now always case sensitive when seraching components in libs.
However to be compatible with old versions of Eeschema, when a search in library fails, a case insensitive search is made.
Therefore, this version should be compatible with sch files created by previous Eeschema versions compiled with KICAD_KEEPCASE = OFF
2014-09-14 17:43:18 +02:00
Brian Sidebotham edb7cd60e5 * Fix error in BZR5125 - removed check for wxWidgets AUI library 2014-09-09 19:18:54 +01:00
Lorenzo Marcantonio c5681a3278 Backed out assembly plot patch 2014-09-09 18:55:27 +02:00
Dick Hollenbeck 431675933a remove global g_UserLibDirBuffer which was a project specific global, and no longer used with FP_LIB_TABLE support. 2014-06-03 10:59:52 -05:00
unknown 764c18bde1 OSX install script fixes. 2014-05-29 20:35:49 +02:00
Dick Hollenbeck e585f2d205 A hopeful fix for bug lp:1322354 2014-05-27 23:33:00 -05:00
Dick Hollenbeck f7c1372d58 set( wxWidgets_CONFIG_OPTIONS --static=no ) for platforms using wx-config 2014-05-21 08:36:59 -05:00
Wayne Stambaugh 4e9582c3ab Add road map to developer's documentation.
- Create KiCad road map document.
- Add road map to developer's documentation.
- A separate road map build command to CMake so the road map can be built
  separately for use in websites.
- Update .bzrignore to ignore road map files generated by Doxygen.
2014-05-18 19:37:45 -04:00
Maciej Suminski c3b448b633 Upstream merge. 2014-05-01 15:55:50 +02:00
Dick Hollenbeck 1e68c5f8b3 comment fix, simplified unhandled IO_ERROR exception report in single_top.cpp. 2014-04-24 12:25:57 -05:00
Maciej Suminski e7ea0480e4 Upstream merge. 2014-04-16 11:26:41 +02:00
Dick Hollenbeck d053e5615b More migration towards single process, extend PROJECT::Config*() in proper direction, cleanups. 2014-04-07 23:55:53 -05:00
Maciej Suminski 23392ce8c9 Upstream merge. 2014-04-02 15:38:59 +02:00
Wayne Stambaugh 4eec9fd013 Fix OpenMP link error on MinGW. 2014-03-31 22:38:19 -04:00
Dick Hollenbeck 8fc1e38271 Enable GITHUB as default, include typeinfo into kiway_holder.cpp 2014-03-21 07:20:54 -05: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 ec5a767542 [MacOSX] New OSX enviroment seems to be more picky about options, this fixes the linker part 2014-03-14 00:44:46 +01:00
Maciej Suminski 5ed0980dd5 Merged upstream. 2014-03-06 09:42:16 +01:00
Nick Ostergaard bcf970e6b2 Remove duplicate comments from CMakeList.txt. 2014-02-23 20:02:41 -05:00
Blair Bonnett 64da190e37 Build documentation updates and comment spelling fixes. 2014-02-22 18:17:36 -05:00
Maciej Suminski 151826b206 Upstream merge. 2014-02-21 11:05:28 +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 1c5a997f82 [MacOSX] Reorg and preparation to include scripts into Bundles 2014-02-14 22:09:48 +01:00
Miguel Angel Ajo 4da4a558a9 Enforces python2.6 / 2.7, thanks to orsonmmz 2014-02-12 22:17:19 +01:00
Marco Serantoni 73898d5954 [MacOSX] Refines in building system, now bundles lib migration supports symbolic links 2014-02-12 00:13:14 +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
jean-pierre charras 6a9771f24b main CMakeLists: build lib-wxpython only if KICAD_SCRIPTING_WXPYTHON is ON 2014-02-08 08:42:41 +01:00
Marco Serantoni a2483d48f3 [MacOSX] Fixing qa, thanks Miguel Angel for the feedback 2014-02-08 00:40:11 +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
Maciej Suminski 25dfbcd39f Upstream merged. 2014-02-07 09:52:47 +01:00
Maciej Suminski 468e14f003 Merged ratsnest_threadsafe branch. 2014-02-05 11:55:04 +01:00
Cirilo Bernardo fbe8484225 Apply IDF tools patch from Cirilo Bernardo 2014-02-05 10:27:21 +01:00
Dick Hollenbeck 33e26b278d KIWAY in progress... 2014-02-03 13:26:18 -06:00
Dick Hollenbeck 4f26386e8d Initial KIWAY (modular-kicad) work. Various tweeks. 2014-02-03 09:10:37 -06:00
Miguel Angel Ajo 15bfac3f4e Moved QA to root. 2014-02-02 22:50:45 +01:00
Carl Poirier 1490099ddd Parallelized the RN_DATA::Recalculate() function. 2014-01-31 18:27:06 +01:00
Dick Hollenbeck 2ac58935b5 Make option KICAD_KEEPCASE actually functional for Eeschema, and make the setting default ON.
The desire is to migrate designs *away from* case independence, and to create
designs which use literally (case specific) interpreted component names. But for
backwards compatibility, you may turn OFF this option if you really must.
(Remember that with KiCad using text data files, typically you would be better
off simply doctoring those files into a case literal state with a text editor
and move forward into the brave new world of case specificity. Also, BOM
generators may not work properly when you have this option turned OFF, the xml
export's referential integrity is broken on library part name. Hence the default
is ON now, as of 29-Jan-2014.
2014-01-29 12:02:02 -06:00
Marco Serantoni 786bb81c4d [MacOSX] KICAD_BUILD_DYNAMIC stabilized and almost working 2014-01-27 23:24:04 +01:00
Marco Serantoni 179bb920b8 [MacOSX] adding multiprocess building and initial support for KICAD_BUILD_DYNAMIC 2014-01-26 14:09:36 +01:00
jean-pierre charras f7ca6e4bf9 add patch from Cirilo Bernardo, and minor fixes. 2014-01-25 13:23:29 +01:00
Marco Serantoni dc2592238e [MacOSX] Adding wx-widgets building with patches for OSX preparing for dynamic.. 2014-01-24 22:09:31 +01:00
Dick Hollenbeck d11d92504a tugs and bugs 2014-01-21 00:59:32 -06:00
Dick Hollenbeck a3211b2b9e disable deprecation warnings in Debug build, change message in fp_lib_table.cpp 2014-01-18 03:04:12 -06:00
Dick Hollenbeck a8bc07c832 Add KICAD_REPO_NAME to the about dialog and build_version.cpp 2014-01-08 08:47:39 -06:00
Dick Hollenbeck a2a723ddf6 Fix option description, add mark_as_advanced(), and add a comment to KICAD_SKIP_BOOST 2014-01-07 20:00:47 -06:00
Maciej Sumiński c1e68436f1 Remove assembly language files, and make building Boost optional.
https://lists.launchpad.net/kicad-developers/msg11965.html
2014-01-07 19:52:19 -06:00
Marco Serantoni 290a60a462 [MacOSX] Fixing STL && single processor building in pixman 2014-01-07 00:20:52 +01:00
Marco Serantoni 2d53c8eef5 [MacOSX] disable -fvisibility due compiler blames.. 2013-12-31 11:42:25 +01:00
Dick Hollenbeck f9ab5d2c61 Add -fvisibility options to significantly reduce binary sizes.
Switch to boost::context for all platforms, almost.
Please try your platform by commenting out fcontext.s in common/CMakeLists.txt.
2013-12-30 11:53:12 -06:00
Marco Serantoni ea4bec99d0 [MacOSX]/All purpose - Support for static linking 2013-12-30 01:27:03 +01:00
Dick Hollenbeck 81ef4cd422 add mime type application/x-pcbnew-pcb, extend Desktop Exec to support a file to open on command line 2013-12-24 13:07:17 -06:00
Marco Serantoni 2441a7a046 [MacOSX] Treats LLVM as GCC + adds support for boost multiple processor(ppc/intel) and address(32/64 bit) 2013-12-22 15:55:05 +01:00
Dick Hollenbeck 7ba078b620 remove USE_FP_LIB_TABLE code, make it the norm. Add lazy loading support to FOOTPRINT_INFO. 2013-12-12 10:01:03 -06:00
Wayne Stambaugh 8316477638 Enable building the footprint library table as the default. 2013-12-08 09:06:55 -05:00
Dick Hollenbeck 81bdafcf55 *) update scripts/kicad-install.sh to use Github plugin for system footprints.
*) Add scripts/library-repos-install.sh for downloading *.pretty libraries and possibly using them.
*) Remove template/fp-* files, they are now at https://github.com/KiCad/kicad-library/template/*
   so they can be maintained by the library team.  However note that it is possible to break
   kicad-install.sh with uncoordinated changes to that github repo.

It is best to delete your ~/kicad_sources/kicad-lib.bzr directory before running kicad-install.sh
at this or any newer version relative to an older library repo.
2013-12-02 12:21:06 -06:00
Dick Hollenbeck 7cf3467851 Show the "Description" field from fp-lib-table in pcbnew's module editor 'set current library' dialog. 2013-11-18 10:04:23 -06:00
Dick Hollenbeck c1429f2824 Allowing pre-setting CMAKE_CXX_FLAGS on first CMake invocation 2013-11-15 08:10:29 -06:00
jean-pierre charras 5cea94089a All: under mingw32+msys: fix an issue when using Cmake version >= 2.8.5 which uses by default a response file.
This response file is not expanded under mingw3 2 (mingw/gcc bug?), and the list of include paths, found in this file, is not taken in account.
Now, under mingw32+msys, when not cross-compiling, the response file is disabled.
Cvpcb, Pcbnew: fix a list of libs  which should be added only when cross-compiling:
Previously, they were always added, which creates an issue with mingw/msy/ gcc  2.8.
Now they are added only when cross-compiling (this issue was noticeable only with msys+mingw version  2.8)
2013-11-10 20:15:09 +01:00
Dick Hollenbeck 9b3d826bc1 switch to static linking of libstdc++ on windows 2013-11-07 08:26:32 -06:00
jean-pierre charras 99b640584f page layout editor: Add missing Info.plist for OSX.
Mingw, all: remove static link of libgcc, which can create issues when using dll version of wxWidgets.
Therefore libgcc_s_dw2-1.dll should be in the paths for executables.
2013-11-06 08:33:49 +01:00
Orson 28b9317640 Fix redraw issue in modedit a modview, with GAL 2013-11-01 13:56:20 +01:00