Commit Graph

32 Commits

Author SHA1 Message Date
Robert Taylor 5a669c4641 Fix Python linking issues 2023-02-21 16:10:55 +01:00
Jean-Paul Chaput 02777e127e Migration towards Python3, first stage: still based on C-Macros.
* New: Python/C++ API level:
  * Write a new C++/template wrapper to get rid of boost::python
  * The int & long Python type are now merged. So a C/C++ level,
    it became "PyLong_X" (remove "PyInt_X") and at Python code
    level, it became "int" (remove "long").
* Change: VLSISAPD finally defunct.
  * Configuration is now integrated as a Hurricane component,
    makes use of the new C++/template wrapper.
  * vlsisapd is now defunct. Keep it in the source for now as
    some remaining non essential code may have to be ported in
    the future.
* Note: Python code (copy of the migration howto):
  * New print function syntax print().
  * Changed "dict.has_key(k)" for "k" in dict.
  * Changed "except Exception, e" for "except Exception as e".
  * The division "/" is now the floating point division, even if
    both operand are integers. So 3/2 now gives 1.5 and no longer 1.
    The integer division is now "//" : 1 = 3//2. So have to carefully
    review the code to update. Most of the time we want to use "//".
    We must never change to float for long that, in fact, represents
    DbU (exposed as Python int type).
  * execfile() must be replaced by exec(open("file").read()).
  * iter().__next__() becomes iter(x).__next__().
  * __getslice__() has been removed, integrated to __getitem__().
  * The formating used for str(type(o)) has changed, so In Stratus,
    have to update them ("<class 'MyClass'>" instead of "MyClass").
  * the "types" module no longer supply values for default types
    like str (types.StringType) or list (types.StringType).
    Must use "isinstance()" where they were occuring.
  * Remove the 'L' to indicate "long integer" (like "12L"), now
    all Python integer are long.
* Change in bootstrap:
  * Ported Coriolis builder (ccb) to Python3.
  * Ported Coriolis socInstaller.py to Python3.
  * Note: In PyQt4+Python3, QVariant no longer exists. Use None or
    directly convert using the python syntax: bool(x), int(x), ...
    By default, it is a string (str).
* Note: PyQt4 bindings & Python3 under SL7.
  * In order to compile user's must upgrade to my own rebuild of
    PyQt 4 & 5 bindings 4.19.21-1.el7.soc.
* Bug: In cumulus/plugins.block.htree.HTree.splitNet(), set the root
    buffer of the H-Tree to the original signal (mainly: top clock).
      Strangely, it was only done when working in full chip mode.
2021-09-19 19:41:24 +02:00
Jean-Paul Chaput 837de500aa Compliance with Debian 10 Buster.
* Change: In all tools, FindTOOL.cmake, no longer use LIB_SUFFIX to
    search for tool libraries but try "lib64/" then "lib/".
* Change: In bootstrap/socInstaller.py, take Debian 10 into account.
* Change: In bootstrap/docker, move from Debian 9 to Debian 10.
2020-03-19 18:18:35 +01:00
Jean-Paul Chaput fcd6d69a2f Analog integration part II. Analog place & route (slicing tree).
* Change: In Hurricane::CellWidget, set the minimal size to 350 pixels
    to fit my normal DPI secondary screen...
* Change: In Hurricane::Error(), reactivate the backtrace generation by
    default. Seriously slow down the program each time an Error is to
    be constructed.
* Bug: In Analog::Device::preCreate(), check for NULL Technology before
    attempting to use it.
* Change: In Hurricane/Analog, remove all '*Arguments*' classes and their
    Python interface. It was an obsoleted way of passing devices parameters
    to the Python layout generators (located in Oroshi). Now we just get
    them straight from the Device with the getParamter() method.
* Change: In CRL::System CTOR, add Python pathes for Oroshi & Karakaze.
* Change: In Oroshi/Python/WIP_*.py layout generator scripts, remove
    all uses of the "Arguments". Directly access the parameters through
    the device itself. Make the checkCoherency() with identical arguments
    as of layout().
* New: Bora tool that performs analog place & route. Based on a slicing
    tree representation. It is the thesis work of Eric Lao.
      Code beautyfication and some programming cleanup.
* New: Karakaze tool, provide the Python base class AnalogDesign used
    to build an analog design. Create/configure devices and assemble
    them in a slicing tree.
* Change: In Unicorn/cgt.py, display the stack trace in case of an
    ImportError exception as well as for other exceptions.
      Add Bora to the set for included tool engines.
2018-10-18 18:10:01 +02:00
Jean-Paul Chaput 7231703f4f * All Tools:
- Change: Switch from "goodies" to "bootstrap".
2010-07-14 19:39:36 +00:00
Jean-Paul Chaput c35d8396a8 UNSTABLE. DO NOT UPDATE. 2010-07-13 11:07:08 +00:00
Jean-Paul Chaput fbd9aba2f5 * All tools:
- Library linking: there must not be "target_link_library()" for libraries,
        only when building binaries. Avoid clashes between static module
        or class variables, and strange reinitialisation of those variables.
    - Change: Boost is now always linked staticly.
  * ./hurricane/src/hurricane:
    - New: TextTranslator to allow translation to and from text & HTML.
    - Change: In Exception, make uses of TextTranslator to correctly display
        exception text when in graphic mode.
  * ./hurricane/src/isobar:
    - New: Script, small object to wrap around Python scripts.
2010-07-01 11:46:29 +00:00
Jean-Paul Chaput e51246d3c7 * ./hurricane:
- Change: When static linking is required, also switch Boost libraries in static
        mode. Automatically done is modules using FindHURRICANE through
        SET_LIB_LINK_MODE(). Note: FindBoost must be called *after* SET_LIB_LINK_MODE().
2010-05-31 12:27:50 +00:00
Jean-Paul Chaput 87d56783e8 * ./hurricane:
- Change: In FindHURRICANE.cmake, prepend ${DESTDIR} to the search pathes
        components (for use by packagers).
2010-05-22 13:46:56 +00:00
Jean-Paul Chaput b9a97023d5 * All tools:
- Change: Adds ${LIB_SUFFIX} to all library search paths.
2010-05-19 14:31:01 +00:00
Jean-Paul Chaput 4db3b0b3de * All tools:
- Change: adopt a tree layout compliant with the UNIX FHS.
        * includes under      TOP/include/coriolis2.
        * shared datas under  TOP/shared/coriolis2.
        * docs under          TOP/share/doc/coriolis2.
        * configuration under TOP/etc/coriolis2

  * ./crlcore:
    - Change: In Environment, comply to the new tree layout, search configuration
        files under TOP/etc/coriolis2/.

  * ./knik:
    - Change: In flute, comply to the new tree layout, get the "POW*.dat" files
        from TOP/share/coriolis2/flute-2.4.
2010-05-18 12:53:00 +00:00
Jean-Paul Chaput e29e1e9951 Adds -Wall to the C/C++ flags for any tool using Hurricane.
Sets through FindHURRICANE macro.
2010-05-14 12:28:12 +00:00
The Coriolis Project 1cfe0a54c9 Correct pathes detection. 2010-04-28 21:54:54 +00:00
The Coriolis Project 6e2abf7aa2 Correct project path settings. 2010-04-28 20:36:23 +00:00
Jean-Paul Chaput d10f443bf9 * All Tools:
- Change: <PROJECT>_SEARCH_PATH are put back into the *first* tool of
         a project.
     - Bug: In HURRICANE_CHECK_MACRO(), the quiet flag was not correctly
         implemented. User ARGV instead of argv (case sensitivity!).
2010-03-19 14:22:25 +00:00
Jean-Paul Chaput 836f546a46 * All Tools:
- Change: New structure for the installation & CMake system.
         * Tools are now grouped in "projects". There are three projects:
           1. - IO: Standalones parsers/drivers (IO_USER_TOP, IO_TOP).
           2. - Coriolis: Base & digital tools (CORIOLIS_USER_TOP, CORIOLIS_TOP).
           3. - Chams: Analogic tools (CHAMS_USER_TOP, CHAMS_TOP).
           Each *project* has a two "TOP" environement variables, for
         example: IO_TOP and IO_USER_TOP. Thoses variables are the only
         ones useds to locate the tool (CMake modules, headers & libraries).
           The local path always takes precedence over the global one.
           The localisation process occurs in each tool top CMakeLists.txt
         where the macro SETUP_PROJECT_PATH is to be defined. There is no
         way to put it in a shared includes file as it's the macro precisely
         used to locates the includes... You have to call the macro once for
         each project you wants to uses:
             SETUP_PROJECT_PATHS(IO)
             SETUP_PROJECT_PATHS(CORIOLIS)
         * In FindTOOL.cmake, supress the <TOOL>_DIR_SEARCH and uses the
         <PROJECT>_DIR_SEARCH instead (example: CORIOLIS_DIR_SEARCH).
         * buildCoriolis.py modificated according to the new "TOP" scheme.
2010-03-18 15:32:16 +00:00
Jean-Paul Chaput 822fd9ae23 Rename documentation of hviewer into viewer. 2010-03-15 14:05:45 +00:00
Jean-Paul Chaput 4449b76213 * ./hurricane/src/hurricane:
- Bug: In DebugSession, bad stacking/unstacking of debug levels (unapaired),
        and wrong value stacked sometimes.

   * All Hurricane/Coriolis tools:
     - Change: Simplify the CMakeLists,
2010-03-08 16:33:57 +00:00
Jean-Paul Chaput 8845533c25 * ./hurricane/src/hviewer :
- Bug: Bad detection of libraries in HURRICANE_CHECK_LIBRARY macro.
    - New feature : add a "selectable" characteric on drawable objects. Allows
        to selectively select objects through dragging. Note that it's implemented
        in term of BasicLayer & ExtensionGo. If an object (Component) has a Layer
        composed of more than one BasicLayer it will become selectable as soon as
        one of it's BasicLayer is selectable.
2008-12-12 13:28:19 +00:00
Jean-Paul Chaput 01ddcf4279 * ./hurricane/src/hviewer :
- New feature : first try at a more ergonomic interface. The "Controller",
        a simple Tabbed window for managing all settings.
          Reorganize the way things are selected (Nets, Area, single), aglomerated
        selection.
          Use a "logical" progression Netlist -> Selection -> Inspector.
    - In CellWiddget, new Selection managment mecanism to ensure persistent
        Selection across cell modifications.
          New signals/slots to manage Cell modification :
          a. - cellPreModificated() : must be launched *before* the Cell modification
               by the tool about to modify it.
          b. - cellPostModificated() : must be lauched *after* the Cell modification
          This mecanism may be amended to automatically fit with the UpdateSessions.  
    - Cleanup (part 1) : more consistent name for widgets, replace the 'H' prefix by
        a "Widget" suffix. Objects are modified by not filenames yet (due to svn not
        liking file renaming and modications at the same time).
    - Improved support for static building in CMakeList.txt.
2008-11-26 09:35:07 +00:00
Christophe Alexandre e370e8ac1c cmake FindHURRICANE macro now finds isobar library 2008-10-24 09:11:47 +00:00
Jean-Paul Chaput 7bce78379c * ./hurricane/src/hviewer :
- Bug : default argument to setWeight() sould be QFont::Normal and not "-1".
       Shows in Qt debug mode (catched by an assert).
   - Bug : SelectCommand now keep the Selection check button in sync.
   - Change : Palette doesn't show at start.

 * ./hurricane :
   - Now choice between static and dynamic linking. Note that thoses options are
       mutually exclusives.

 * ./coriolis/src/crlcore :
   - New choice between static and dynamic linking.
   - New feature : XmlParser optional warning when file not found (default is
       to warn).
   - New feature : now read environment from user's optional configuration file :
       ~/.environment.alliance.xml
   - Potential bug : when loading/parsing file, the XmlReader hangs if the opened
       file is a directory, and QFile allows directory opening :-(
2008-09-08 08:46:18 +00:00
The Coriolis Project d17ecda179 move hinspector to hviewer
to avoid cycles between libraries
2008-06-18 15:51:45 +00:00
The Coriolis Project 4fceb74ea3 remove doc compilation for the moment (not functionnal)
FindHURRICANE.cmake seems to work (finds hurricane includes and hviewer includes)
2008-05-22 11:41:35 +00:00
Christophe Alexandre e61c1264d7 return to previous version to search for graphical libraries 2008-05-22 11:36:13 +00:00
Jean-Paul Chaput 9bdf529dc2 * ./hurricane/src :
- Complete include re-organisation.
       include/hurricane/*.h            : kernel.
       include/hurricane/viewer/*.h     : hviewer.
       include/hurricane/inspector/*.h  : hinspector.
     Includes have been moved into subdirectories of .cpp files (as in
       crlcore).
   - Now you must include files like this :
       #include  <hurricane/Layer.h>
       #include  <hurricane/viewer/CellViewer.h>
       #include  <hurricane/inspector/HInspector.h>  
   - Suppressed viewer specific include path in FindHURRICANE.cmake.

 * ./crlcore/src/crlcore :
   - Adapted to new Hurricane include scheme. Corrected bugs in it's own
       include files (noticeably "Utilities.h").
2008-05-21 22:42:11 +00:00
The Coriolis Project 53af9ae3b1 small correction in cmake module 2008-05-16 16:26:56 +00:00
Christophe Alexandre 4e645a28aa introducing hinspector widget 2008-04-25 14:15:42 +00:00
The Coriolis Project b774770407 OpenUpdateSession() -> UpdateSession::open()
remove hurricane editor (QGraphicsView framework)
2008-04-14 14:31:33 +00:00
The Coriolis Project 9e9ad197d5 export cmake macros 2008-03-07 13:51:45 +00:00
Christophe Alexandre aa405b5147 installation again 2008-02-05 20:22:01 +00:00
The Coriolis Project 716aa724f7 compilation modulaire 2008-02-05 18:34:32 +00:00