Commit Graph

79 Commits

Author SHA1 Message Date
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
Dick Hollenbeck 4f26386e8d Initial KIWAY (modular-kicad) work. Various tweeks. 2014-02-03 09:10:37 -06:00
Dick Hollenbeck edc5783411 file maintenance, update some scripts 2014-01-09 09:01:59 -06:00
Povilas Kanapickas 7f12513c7e Remove some uses of using namespace std. 2013-12-13 10:27:30 -06:00
Dick Hollenbeck a93637b14f remove -std=c++0x compiler option since nobody is ready for it, and accordingly back into auto_ptr from unique_ptr 2012-11-15 10:04:10 -06:00
Dick Hollenbeck 9bbff22d96 1) Switch to boost hashtable support from wx macros which did not handle std::string.
This required the additional compiler command line option "-std=c++0x".

2) Switch to unique_ptr from auto_ptr which is C++ deprecated.

3) Change to new English layer names per mailing list discussion, see class_board.cpp.

4) When saving to *.kicad_pcb or *.kicad_mod, identify opportunities to use wildcard
   layer sets, for pads so far.

5) Switch to two std::string hashtables in pcb_parser.cpp, away from one wxString based one
   for layer names and layer sets mapping. One hashtable holds the mask, the other the index.
   Layer sets are only in the mask table.

6) Move "LOCALE_IO toggle" into PCB_IO::Format() since it is a public API function and
   caller should find it as convenient as possible to use.  LOCALE_IO should handle
   nesting OK in the case where public Format() is called from one of the Footprint*()
   functions.

7) Drop support for "export module to new library".  Creating new libraries will have to
   be handled in concert with library table entries, and we've talked recently about
   creating a better footprint library manager, one that resides in a DLL/DSO.  So
   this kind of functionality needs to be handled in there in the near future.

8) Change name of exported PCB_IO module/footprint to *.kicad_mod and not *.emp.
2012-11-14 01:15:59 -06:00
Dick Hollenbeck b8a0ab4c52 switch to <> for includes from "" per conversation with Jean-Pierre and Wayne, adjust search paths 2012-01-22 22:33:36 -06:00
Dick Hollenbeck 311a8186ff sweet editor, compiler warning 2011-11-08 15:14:39 -06:00
Dick Hollenbeck ed2141a6d6 Change various KiCad case utilization to precisely "KiCad" 2011-11-04 10:53:37 -05:00
Dick Hollenbeck 9bf1f390b2 sweet editor now shows GAL canvas 2011-11-01 03:05:56 -05:00
Dick Hollenbeck 0ee7234cf9 sweet editor work 2011-10-30 00:02:23 -05:00
Dick Hollenbeck c5f24127a2 sweet editor using GAL, links but does not work 2011-10-19 23:08:15 -05:00
Dick Hollenbeck d7fd8f178f formatting 2011-08-27 18:31:17 -05:00
Dick Hollenbeck e737a308db fill out more SWEET "inherits" support 2011-06-26 18:35:44 -05:00
Dick Hollenbeck 1a8e45104a sweet would not compile using mingw because of clash on POINT name 2011-05-02 08:37:16 -05:00
Dick Hollenbeck 5679e675d2 1) make PART::Format() omit any defaults for conciseness.
2) switch spec format to *.fodt, and edit it, mentioning lots of defaults.

3) Code pin_merge, but did not test it.
2011-04-18 01:26:00 -05:00
Dick Hollenbeck 88118b7523 update documentation on pin_merge 2011-04-11 08:23:29 -05:00
Dick Hollenbeck b07fa2bfb8 more free SWEET software 2011-04-10 22:36:37 -05:00
Dick Hollenbeck f3a923d478 buglets 2011-04-04 09:31:43 -05:00
Dick Hollenbeck 5dc3cf9816 more free sweet work 2011-04-03 13:24:45 -05:00
Dick Hollenbeck 39194ef669 more free software, Format()ing works now, only a few more items to Parse() 2011-04-02 19:36:10 -05:00
Dick Hollenbeck 115d1adbeb more sweet parser & beginnings of Format()ing 2011-03-28 00:02:59 -05:00
Dick Hollenbeck 5b0e60e663 more free software, sweet parser nearing completion 2011-03-27 01:07:25 -05:00
Dick Hollenbeck 6407751741 revised bug fix 2011-03-22 13:29:26 -05:00
Dick Hollenbeck 73985ecab1 doc tweaks 2011-03-21 13:08:15 -05:00
Dick Hollenbeck a2359ebc51 more free software 2011-03-20 11:37:35 -05:00
Dick Hollenbeck fa37d84030 sweet parsing of pins started 2011-03-19 20:59:17 -05:00
Dick Hollenbeck bd7e8e53a5 more sweet parsing 2011-02-27 23:45:58 -06:00
Dick Hollenbeck 03495698cf much more of sweet parser 2011-02-27 02:16:05 -06:00
Dick Hollenbeck 558af6d764 add EscapedUTF8() and revise ReadDelimitedText() to complement it 2011-02-26 23:43:19 -06:00
Dick Hollenbeck f8263c0e62 sweet parser work 2011-02-14 00:39:51 -06:00
Dick Hollenbeck 2cda6f4b4f early work on DLL exports for sweet lib, stop using <cstdio> which mingw seems not to like cuz snprintf() 2011-02-03 20:40:47 -06:00
Dick Hollenbeck f92d697278 add sweet C++ test program 2011-02-03 13:18:28 -06:00
Dick Hollenbeck 1ae44d090a work around 8 bit wxString B.S. 2011-02-02 13:41:35 -06:00
Dick Hollenbeck 6be7640c41 fix minor /new compile error, swig warnings 2011-01-21 01:21:19 -06:00
Dick Hollenbeck e849da1862 add sweet.i and some minor 'using' declarations 2011-01-17 11:37:18 -06:00
Dick Hollenbeck 2f211c6b9d ++all:
* TokenList2DsnLexer.cmake now wraps each token enum in its own namespace. It
    also no longer setup of the "using" directive in the header file, which was
    bad behavior.  C++ enum values will have name collisions unless the enums
    themselves are different namespaces.
++new:
  * Sweet library is now a DSO/DLL.
  * Brought in SWIG to do a wrap of the Sweet DSO/DLL for unit testing
    and scripting.  The SWIG DSO/DLLs are built separate from the Sweet DSO/DLL
    and are also optional.
2011-01-17 11:26:19 -06:00
Marco Mattila e79b596308 Add FILTER_READER class. Introduce FILE_LINE_READER into pcbnew. 2011-01-14 19:43:30 +02:00
Dick Hollenbeck 2dd1287141 filter_reader.cpp 2011-01-11 22:51:29 -06:00
Dick Hollenbeck 9f9e7fd5c1 Enhance DIR_LIB_SOURCE:ReadPart() and GetRevisions() to work in the un versioned mode. 2011-01-09 07:35:13 -06:00
Dick Hollenbeck 62a4072c92 minor bugs 2011-01-05 15:13:47 -06:00
Dick Hollenbeck 4a5c1e8d50 doc fixes 2011-01-04 12:53:11 -06:00
Dick Hollenbeck 26be6d0152 committed 2011-01-03 23:20:27 -06:00
Dick Hollenbeck 41637b3678 commit 2011-01-03 11:47:08 -06:00
Dick Hollenbeck b942ebdc69 /new Miracles 2011-01-03 00:33:26 -06:00
Dick Hollenbeck 92c69a9c96 fix a conceptual problem 2011-01-01 17:06:39 -06:00
Dick Hollenbeck e5dfd601da changes 2011-01-01 16:56:43 -06:00
Dick Hollenbeck 84ed5f501d ++new:
* Added the basic structure to the Sweet parser in sch_part.cpp.
  * Got inheritence working off of the 'extends' keyword and PART::inherit()
  * Tossed the units support out of sweet.keywords, since we agreed to go dimensionless.
++richio:
  * Added the problemInputLine support to PARSE_ERROR, so UI can show the
    offending line of bytes.  Yes bytes, not even guaranteed to be characters.
2011-01-01 16:56:07 -06:00
Dick Hollenbeck f127cb8dc7 from 12-Dec-2010 Sweet Spec 2010-12-31 01:56:46 -06:00
Dick Hollenbeck dbb2dd7127 from 12-Dec-2010 Sweet Spec 2010-12-31 01:56:24 -06:00