2008-02-05 12:34:32 -06:00
|
|
|
# - Find the Hurricane includes and libraries.
|
|
|
|
# The following variables are set if Hurricane is found. If HURRICANE is not
|
2008-02-05 14:22:01 -06:00
|
|
|
# found, HURRICANE_FOUND is set to false.
|
2008-02-05 12:34:32 -06:00
|
|
|
# HURRICANE_FOUND - True when the Hurricane include directory is found.
|
2008-02-05 14:22:01 -06:00
|
|
|
# HURRICANE_INCLUDE_DIR - the path to where the Hurricane include files are.
|
|
|
|
# HURRICANE_LIBRARIES - The path to where the Hurricane library files are.
|
2008-02-05 12:34:32 -06:00
|
|
|
|
|
|
|
|
2008-09-08 03:46:18 -05:00
|
|
|
SET(HURRICANE_INCLUDE_PATH_DESCRIPTION "The directory containing the Hurricane include files. E.g /usr/local/include or /asim/coriolis/include")
|
|
|
|
SET(HURRICANE_LIBRARY_PATH_DESCRIPTION "The directory containing the Hurricane library files. E.g /usr/local/lib or /asim/coriolis/lib")
|
|
|
|
SET(HURRICANE_DIR_MESSAGE "Set the HURRICANE_INCLUDE_DIR cmake cache entry to the ${HURRICANE_INCLUDE_PATH_DESCRIPTION}")
|
2008-02-05 12:34:32 -06:00
|
|
|
|
|
|
|
# don't even bother under WIN32
|
|
|
|
IF(UNIX)
|
2010-03-19 09:22:25 -05:00
|
|
|
SETUP_SEARCH_DIR(CORIOLIS)
|
2010-04-28 16:54:54 -05:00
|
|
|
|
2008-02-05 12:34:32 -06:00
|
|
|
#
|
|
|
|
# Look for an installation.
|
|
|
|
#
|
2008-05-22 06:41:35 -05:00
|
|
|
FIND_PATH(HURRICANE_INCLUDE_PATH NAMES hurricane/Cell.h PATHS
|
2008-02-05 12:34:32 -06:00
|
|
|
# Look in other places.
|
2010-03-18 10:32:16 -05:00
|
|
|
${CORIOLIS_DIR_SEARCH}
|
2010-05-18 07:53:00 -05:00
|
|
|
PATH_SUFFIXES include/coriolis2 include
|
2008-02-05 12:34:32 -06:00
|
|
|
# Help the user find it if we cannot.
|
2008-09-08 03:46:18 -05:00
|
|
|
DOC "${HURRICANE_INCLUDE_PATH_DESCRIPTION}"
|
2008-02-05 12:34:32 -06:00
|
|
|
)
|
|
|
|
|
|
|
|
FIND_LIBRARY(HURRICANE_LIBRARY_PATH
|
|
|
|
NAMES hurricane
|
2010-03-18 10:32:16 -05:00
|
|
|
PATHS ${CORIOLIS_DIR_SEARCH}
|
2020-03-19 12:18:35 -05:00
|
|
|
PATH_SUFFIXES lib64 lib
|
2008-02-05 12:34:32 -06:00
|
|
|
# Help the user find it if we cannot.
|
2008-09-08 03:46:18 -05:00
|
|
|
DOC "${HURRICANE_LIBRARY_PATH_DESCRIPTION}"
|
|
|
|
)
|
|
|
|
|
2018-10-18 11:10:01 -05:00
|
|
|
FIND_PATH(HURRICANE_ANALOG_INCLUDE_PATH
|
|
|
|
NAMES hurricane/analog/Device.h
|
|
|
|
PATHS ${CORIOLIS_DIR_SEARCH}
|
|
|
|
PATH_SUFFIXES include/coriolis2 include
|
|
|
|
# Help the user find it if we cannot.
|
|
|
|
DOC "${HURRICANE_LIBRARY_PATH_DESCRIPTION}"
|
|
|
|
)
|
|
|
|
|
|
|
|
FIND_LIBRARY(HURRICANE_ANALOG_LIBRARY_PATH
|
|
|
|
NAMES analog
|
|
|
|
PATHS ${CORIOLIS_DIR_SEARCH}
|
2020-03-19 12:18:35 -05:00
|
|
|
PATH_SUFFIXES lib64 lib
|
2018-10-18 11:10:01 -05:00
|
|
|
# Help the user find it if we cannot.
|
|
|
|
DOC "${HURRICANE_LIBRARY_PATH_DESCRIPTION}"
|
|
|
|
)
|
|
|
|
|
2010-07-14 14:39:36 -05:00
|
|
|
FIND_PATH(HURRICANE_PYTHON_INCLUDE_PATH
|
|
|
|
NAMES hurricane/isobar/PyCell.h
|
2010-03-18 10:32:16 -05:00
|
|
|
PATHS ${CORIOLIS_DIR_SEARCH}
|
2010-05-18 07:53:00 -05:00
|
|
|
PATH_SUFFIXES include/coriolis2 include
|
2008-05-22 06:36:13 -05:00
|
|
|
# Help the user find it if we cannot.
|
2008-09-08 03:46:18 -05:00
|
|
|
DOC "${HURRICANE_LIBRARY_PATH_DESCRIPTION}"
|
2008-05-22 06:36:13 -05:00
|
|
|
)
|
|
|
|
|
2010-07-14 14:39:36 -05:00
|
|
|
FIND_LIBRARY(HURRICANE_PYTHON_LIBRARY_PATH
|
|
|
|
NAMES isobar
|
2010-03-18 10:32:16 -05:00
|
|
|
PATHS ${CORIOLIS_DIR_SEARCH}
|
2020-03-19 12:18:35 -05:00
|
|
|
PATH_SUFFIXES lib64 lib
|
2008-05-22 06:36:13 -05:00
|
|
|
# Help the user find it if we cannot.
|
2008-09-08 03:46:18 -05:00
|
|
|
DOC "${HURRICANE_LIBRARY_PATH_DESCRIPTION}"
|
|
|
|
)
|
|
|
|
|
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 12:41:24 -05:00
|
|
|
FIND_PATH(HURRICANE_PYTHON_NEW_INCLUDE_PATH
|
|
|
|
NAMES hurricane/configuration/PyTypeManager.h
|
|
|
|
PATHS ${CORIOLIS_DIR_SEARCH}
|
|
|
|
PATH_SUFFIXES include/coriolis2 include
|
|
|
|
# Help the user find it if we cannot.
|
|
|
|
DOC "${HURRICANE_LIBRARY_PATH_DESCRIPTION}"
|
|
|
|
)
|
|
|
|
|
|
|
|
FIND_LIBRARY(HURRICANE_PYTHON_NEW_LIBRARY_PATH
|
|
|
|
NAMES pytypemanager
|
|
|
|
PATHS ${CORIOLIS_DIR_SEARCH}
|
|
|
|
PATH_SUFFIXES lib64 lib
|
|
|
|
# Help the user find it if we cannot.
|
|
|
|
DOC "${HURRICANE_LIBRARY_PATH_DESCRIPTION}"
|
|
|
|
)
|
|
|
|
|
|
|
|
FIND_PATH(HURRICANE_UTILITIES_INCLUDE_PATH
|
|
|
|
NAMES hurricane/utilities/Path.h
|
|
|
|
PATHS ${CORIOLIS_DIR_SEARCH}
|
|
|
|
PATH_SUFFIXES include/coriolis2 include
|
|
|
|
# Help the user find it if we cannot.
|
|
|
|
DOC "${HURRICANE_LIBRARY_PATH_DESCRIPTION}"
|
|
|
|
)
|
|
|
|
|
|
|
|
FIND_LIBRARY(HURRICANE_UTILITIES_LIBRARY_PATH
|
|
|
|
NAMES utils
|
|
|
|
PATHS ${CORIOLIS_DIR_SEARCH}
|
|
|
|
PATH_SUFFIXES lib64 lib
|
|
|
|
# Help the user find it if we cannot.
|
|
|
|
DOC "${HURRICANE_LIBRARY_PATH_DESCRIPTION}"
|
|
|
|
)
|
|
|
|
|
|
|
|
FIND_PATH(HURRICANE_CONFIGURATION_INCLUDE_PATH
|
|
|
|
NAMES hurricane/configuration/Configuration.h
|
|
|
|
PATHS ${CORIOLIS_DIR_SEARCH}
|
|
|
|
PATH_SUFFIXES include/coriolis2 include
|
|
|
|
# Help the user find it if we cannot.
|
|
|
|
DOC "${HURRICANE_LIBRARY_PATH_DESCRIPTION}"
|
|
|
|
)
|
|
|
|
|
|
|
|
FIND_LIBRARY(HURRICANE_CONFIGURATION_LIBRARY_PATH
|
|
|
|
NAMES configuration
|
|
|
|
PATHS ${CORIOLIS_DIR_SEARCH}
|
|
|
|
PATH_SUFFIXES lib64 lib
|
|
|
|
# Help the user find it if we cannot.
|
|
|
|
DOC "${HURRICANE_LIBRARY_PATH_DESCRIPTION}"
|
|
|
|
)
|
|
|
|
|
2010-07-14 14:39:36 -05:00
|
|
|
FIND_PATH(HURRICANE_VIEWER_INCLUDE_PATH
|
|
|
|
NAMES hurricane/viewer/CellWidget.h
|
2010-03-18 10:32:16 -05:00
|
|
|
PATHS ${CORIOLIS_DIR_SEARCH}
|
2010-05-18 07:53:00 -05:00
|
|
|
PATH_SUFFIXES include/coriolis2 include
|
2008-10-24 04:11:47 -05:00
|
|
|
# Help the user find it if we cannot.
|
|
|
|
DOC "${HURRICANE_LIBRARY_PATH_DESCRIPTION}"
|
|
|
|
)
|
|
|
|
|
2010-07-14 14:39:36 -05:00
|
|
|
FIND_LIBRARY(HURRICANE_VIEWER_LIBRARY_PATH
|
|
|
|
NAMES viewer
|
2010-03-18 10:32:16 -05:00
|
|
|
PATHS ${CORIOLIS_DIR_SEARCH}
|
2020-03-19 12:18:35 -05:00
|
|
|
PATH_SUFFIXES lib64 lib
|
2008-10-24 04:11:47 -05:00
|
|
|
# Help the user find it if we cannot.
|
|
|
|
DOC "${HURRICANE_LIBRARY_PATH_DESCRIPTION}"
|
|
|
|
)
|
|
|
|
|
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 12:41:24 -05:00
|
|
|
SET_LIBRARIES_PATH(HURRICANE HURRICANE_CONFIGURATION)
|
|
|
|
SET_LIBRARIES_PATH(HURRICANE HURRICANE_UTILITIES)
|
|
|
|
SET_LIBRARIES_PATH(HURRICANE HURRICANE)
|
|
|
|
SET_LIBRARIES_PATH(HURRICANE_ANALOG HURRICANE_ANALOG)
|
|
|
|
SET_LIBRARIES_PATH(HURRICANE_PYTHON HURRICANE_PYTHON)
|
|
|
|
SET_LIBRARIES_PATH(HURRICANE_PYTHON_NEW HURRICANE_PYTHON_NEW)
|
|
|
|
SET_LIBRARIES_PATH(HURRICANE_GRAPHICAL HURRICANE_VIEWER)
|
2008-11-26 03:35:07 -06:00
|
|
|
|
2022-12-01 16:32:30 -06:00
|
|
|
set(HURRICANE_PYTHON_INTERFACE_LINK_LIBRARIES "${Boost_LIBRARIES} ${BZIP2_LIBRARIES} ${LIBBFD_LIBRARIES}" )
|
|
|
|
|
|
|
|
|
2008-12-12 07:28:19 -06:00
|
|
|
HURRICANE_CHECK_LIBRARIES(HURRICANE )
|
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 12:41:24 -05:00
|
|
|
HURRICANE_CHECK_LIBRARIES(HURRICANE_PYTHON_NEW ${HURRICANE_FIND_REQUIRED})
|
|
|
|
HURRICANE_CHECK_LIBRARIES(HURRICANE_PYTHON ${HURRICANE_FIND_REQUIRED})
|
|
|
|
HURRICANE_CHECK_LIBRARIES(HURRICANE_ANALOG ${HURRICANE_FIND_REQUIRED})
|
|
|
|
HURRICANE_CHECK_LIBRARIES(HURRICANE_GRAPHICAL ${HURRICANE_FIND_REQUIRED})
|
|
|
|
|
|
|
|
message("HURRICANE_LIBRARIES=${HURRICANE_LIBRARIES}")
|
2008-02-05 12:34:32 -06:00
|
|
|
|
|
|
|
ENDIF(UNIX)
|