towards a first functionnal run
This commit is contained in:
parent
be5efacffd
commit
751425c2d1
|
@ -6,7 +6,8 @@ SET(CMAKE_MODULE_PATH "$ENV{HURRICANE_TOP}/share/cmake_modules/")
|
||||||
|
|
||||||
FIND_PACKAGE(BISON REQUIRED)
|
FIND_PACKAGE(BISON REQUIRED)
|
||||||
FIND_PACKAGE(FLEX REQUIRED)
|
FIND_PACKAGE(FLEX REQUIRED)
|
||||||
find_package(HURRICANE REQUIRED)
|
FIND_PACKAGE(HURRICANE REQUIRED)
|
||||||
|
FIND_PACKAGE(CORIOLIS REQUIRED)
|
||||||
#FIND_PACKAGE(Doxygen)
|
#FIND_PACKAGE(Doxygen)
|
||||||
|
|
||||||
ADD_SUBDIRECTORY(src)
|
ADD_SUBDIRECTORY(src)
|
||||||
|
|
|
@ -147,16 +147,14 @@ static char* GetPattern(const string& str, const char* pattern)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
static void CalculateRdsUnit()
|
static void CalculateRdsUnit() {
|
||||||
// ***************************
|
|
||||||
{
|
|
||||||
using Hurricane::Error;
|
using Hurricane::Error;
|
||||||
|
|
||||||
const char * rdsfilename = getenv("RDS_TECHNO_NAME");
|
const char * rdsfilename = getenv("RDS_TECHNO_NAME");
|
||||||
FILE * rdstechnofile;
|
FILE * rdstechnofile;
|
||||||
|
|
||||||
if(!rdsfilename) {
|
if(!rdsfilename) {
|
||||||
throw Error("Can't not find macro RDS_TECHNO_FILE");
|
throw Error("Cannot find macro RDS_TECHNO_NAME");
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !(rdstechnofile = fopen(rdsfilename, "r")) ) {
|
if( !(rdstechnofile = fopen(rdsfilename, "r")) ) {
|
||||||
|
|
|
@ -4,3 +4,5 @@ ${CHAMSIN_SOURCE_DIR}/src/analogic)
|
||||||
ADD_LIBRARY(device SHARED Device.cpp TrMos.cpp TrMos_PlaceRoute.cpp)
|
ADD_LIBRARY(device SHARED Device.cpp TrMos.cpp TrMos_PlaceRoute.cpp)
|
||||||
|
|
||||||
TARGET_LINK_LIBRARIES(device analogic dtr hurricane)
|
TARGET_LINK_LIBRARIES(device analogic dtr hurricane)
|
||||||
|
|
||||||
|
INSTALL(TARGETS device DESTINATION /lib)
|
||||||
|
|
|
@ -75,9 +75,7 @@ void Device::_PreDelete()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Device::_PostCreate()
|
void Device::_PostCreate() {
|
||||||
// *******************************
|
|
||||||
{
|
|
||||||
Inherit::_PostCreate();
|
Inherit::_PostCreate();
|
||||||
|
|
||||||
//CDataBase* database = GetCDataBase();
|
//CDataBase* database = GetCDataBase();
|
||||||
|
@ -91,7 +89,6 @@ void Device::_PostCreate()
|
||||||
// Create GenericDtrAccess and DtrAccess
|
// Create GenericDtrAccess and DtrAccess
|
||||||
// *************************************
|
// *************************************
|
||||||
GenericDtrAccess::Instance(DtrAccess::Instance());
|
GenericDtrAccess::Instance(DtrAccess::Instance());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,6 @@ namespace Hurricane {
|
||||||
class Record;
|
class Record;
|
||||||
class Point;
|
class Point;
|
||||||
class Transformation;
|
class Transformation;
|
||||||
// class Transformation::Orientation;
|
|
||||||
class Instance;
|
class Instance;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -34,11 +33,9 @@ using Hurricane::Name;
|
||||||
using Hurricane::Record;
|
using Hurricane::Record;
|
||||||
using Hurricane::Point;
|
using Hurricane::Point;
|
||||||
using Hurricane::Transformation;
|
using Hurricane::Transformation;
|
||||||
//using Hurricane::Transformation::Orientation;
|
|
||||||
using Hurricane::Instance;
|
using Hurricane::Instance;
|
||||||
|
|
||||||
class Device : public Cell {
|
class Device : public Cell {
|
||||||
// *************************
|
|
||||||
|
|
||||||
# if !defined(__DOXYGEN_PROCESSOR__)
|
# if !defined(__DOXYGEN_PROCESSOR__)
|
||||||
// Types
|
// Types
|
||||||
|
@ -46,7 +43,7 @@ class Device : public Cell {
|
||||||
public : typedef Cell Inherit;
|
public : typedef Cell Inherit;
|
||||||
|
|
||||||
// Attributes
|
// Attributes
|
||||||
// *******************
|
// **********
|
||||||
|
|
||||||
|
|
||||||
// Constructors
|
// Constructors
|
||||||
|
|
|
@ -25,27 +25,23 @@ namespace DEVICE{
|
||||||
// TrMos implementation
|
// TrMos implementation
|
||||||
// ****************************************************************************************************
|
// ****************************************************************************************************
|
||||||
|
|
||||||
TrMos::TrMos(Library* library, const Name& name)
|
TrMos::TrMos(Library* library, const Name& name):
|
||||||
// **************************************************************************
|
Inherit(library, name),
|
||||||
: Inherit(library, name),
|
_type('N'),
|
||||||
_type('N'),
|
_isBsConnected(false),
|
||||||
_isBsConnected(false),
|
_m(1),
|
||||||
_m(1),
|
_sourceIsFirst(true),
|
||||||
_sourceIsFirst(true),
|
_hasDummy(false),
|
||||||
_hasDummy(false),
|
_hasRing(true),
|
||||||
_hasRing(true),
|
_tr1(NULL),
|
||||||
_tr1(NULL),
|
_capaRouting(0)
|
||||||
_capaRouting(0)
|
{}
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
TrMos* TrMos::Create(Library* library, const Name & name)
|
TrMos* TrMos::Create(Library* library, const Name & name) {
|
||||||
// **************************************************************************
|
TrMos* trmos= new TrMos(library, name);
|
||||||
{
|
trmos->_PostCreate();
|
||||||
TrMos* trmos= new TrMos(library, name);
|
return trmos;
|
||||||
trmos->_PostCreate();
|
|
||||||
return trmos;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -67,9 +63,7 @@ void TrMos::_PreDelete()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void TrMos::_PostCreate()
|
void TrMos::_PostCreate() {
|
||||||
// *******************************
|
|
||||||
{
|
|
||||||
Inherit::_PostCreate();
|
Inherit::_PostCreate();
|
||||||
|
|
||||||
// do something.
|
// do something.
|
||||||
|
@ -95,9 +89,7 @@ void TrMos::_PostCreate()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Transistors TrMos::GetTransistors() const
|
Transistors TrMos::GetTransistors() const {
|
||||||
// **************************************
|
|
||||||
{
|
|
||||||
return GetCollection(_transistorList);
|
return GetCollection(_transistorList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -106,8 +98,8 @@ void TrMos::Create(const char type, const bool isbsconnected)
|
||||||
// **********************************************************
|
// **********************************************************
|
||||||
{
|
{
|
||||||
if( _tr1 ) {
|
if( _tr1 ) {
|
||||||
throw Error("Can't Create Logical View of TrMos " + GetString(GetName()) + " : "
|
throw Error("Can't Create Logical View of TrMos " + GetString(GetName()) +
|
||||||
+ "it has already been created");
|
" : " + "it has already been created");
|
||||||
}
|
}
|
||||||
|
|
||||||
if( (type!=TRANSN) && (type!=TRANSP)) {
|
if( (type!=TRANSN) && (type!=TRANSP)) {
|
||||||
|
@ -142,10 +134,9 @@ void TrMos::Create(const char type, const bool isbsconnected)
|
||||||
// ****************************************************
|
// ****************************************************
|
||||||
|
|
||||||
_tr1 = MetaTransistor::Create(library, Name( GetString(GetName())+"_Mos1" ), _type);
|
_tr1 = MetaTransistor::Create(library, Name( GetString(GetName())+"_Mos1" ), _type);
|
||||||
Instance * instance = Instance::Create(this
|
Instance * instance = Instance::Create(this,
|
||||||
, Name("Ins_" + GetString(_tr1->GetName()))
|
Name("Ins_" + GetString(_tr1->GetName())),
|
||||||
, _tr1
|
_tr1);
|
||||||
);
|
|
||||||
|
|
||||||
instance->GetPlug(_tr1->GetNet(Name("DRAIN")))->SetNet(drain);
|
instance->GetPlug(_tr1->GetNet(Name("DRAIN")))->SetNet(drain);
|
||||||
instance->GetPlug(_tr1->GetNet(Name("SOURCE")))->SetNet(source);
|
instance->GetPlug(_tr1->GetNet(Name("SOURCE")))->SetNet(source);
|
||||||
|
@ -165,8 +156,8 @@ void TrMos::Generate(const unsigned m, const bool sourceisfirst, const bool hasr
|
||||||
// *********************************************************************************
|
// *********************************************************************************
|
||||||
{
|
{
|
||||||
if( !_tr1 ) {
|
if( !_tr1 ) {
|
||||||
throw Error("Can't Create Physical View for " + GetString(this)
|
throw Error("Can't Create Physical View for " + GetString(this) +
|
||||||
+ " : " + "Logical view has't been created yet.");
|
" : " + "Logical view has't been created yet.");
|
||||||
}
|
}
|
||||||
|
|
||||||
// if( !(_transistorList.empty()) ) {
|
// if( !(_transistorList.empty()) ) {
|
||||||
|
@ -177,16 +168,16 @@ void TrMos::Generate(const unsigned m, const bool sourceisfirst, const bool hasr
|
||||||
// Check out param of realization.
|
// Check out param of realization.
|
||||||
// *******************************
|
// *******************************
|
||||||
if( m <= 0 )
|
if( m <= 0 )
|
||||||
throw Error("Can't generate for " + GetString(this) + " : m " + GetString(m)
|
throw Error("Can't generate for " + GetString(this) + " : m "
|
||||||
+ " is invalid.");
|
+ GetString(m) + " is invalid.");
|
||||||
|
|
||||||
if(nbsourcecolumn<1)
|
if(nbsourcecolumn<1)
|
||||||
throw Error("Can't generate for " + GetString(this) + " : nbsourcecolumn "
|
throw Error("Can't generate for " + GetString(this)
|
||||||
+ GetString(nbsourcecolumn) + " is invalid.");
|
+ " : nbsourcecolumn " + GetString(nbsourcecolumn) + " is invalid.");
|
||||||
|
|
||||||
if(nbdraincolumn<1)
|
if(nbdraincolumn<1)
|
||||||
throw Error("Can't generate for" + GetString(this) + " : nbdraincolumn "
|
throw Error("Can't generate for" + GetString(this) + " : nbdraincolumn "
|
||||||
+ GetString(nbdraincolumn) + " is invalid.");
|
+ GetString(nbdraincolumn) + " is invalid.");
|
||||||
|
|
||||||
|
|
||||||
if(!(_transistorList.empty())) {
|
if(!(_transistorList.empty())) {
|
||||||
|
@ -201,10 +192,9 @@ void TrMos::Generate(const unsigned m, const bool sourceisfirst, const bool hasr
|
||||||
// *****************************************
|
// *****************************************
|
||||||
Library * library = GetLibrary();
|
Library * library = GetLibrary();
|
||||||
|
|
||||||
cout << ts << "################################################################" <<endl
|
cout << ts << "################################################################" << endl <<
|
||||||
<< ts << "#### BEGIN AUTOGENERATON FOR " + _GetTypeName() + " " + GetString(GetName()) + " #####" <<endl
|
ts << "#### BEGIN AUTOGENERATON FOR " + _GetTypeName() + " " + GetString(GetName()) + " #####" << endl <<
|
||||||
<< ts << "################################################################" <<endl
|
ts << "################################################################" << endl << endl;
|
||||||
<< endl;
|
|
||||||
|
|
||||||
// OpenUpdateSession();
|
// OpenUpdateSession();
|
||||||
|
|
||||||
|
@ -222,10 +212,9 @@ void TrMos::Generate(const unsigned m, const bool sourceisfirst, const bool hasr
|
||||||
_tr1->SetM(_m);
|
_tr1->SetM(_m);
|
||||||
|
|
||||||
for(unsigned i=0; i<m; i++){
|
for(unsigned i=0; i<m; i++){
|
||||||
Transistor* finger = Transistor::Create(library
|
Transistor* finger = Transistor::Create(library,
|
||||||
, GetString(_tr1->GetName()) + "_Finger_" + GetString(i)
|
GetString(_tr1->GetName()) + "_Finger_" + GetString(i),
|
||||||
, _type
|
_type);
|
||||||
);
|
|
||||||
|
|
||||||
_transistorList.push_back(finger);
|
_transistorList.push_back(finger);
|
||||||
Instance::Create(_tr1, Name("Ins_" + GetString(finger->GetName())), finger);
|
Instance::Create(_tr1, Name("Ins_" + GetString(finger->GetName())), finger);
|
||||||
|
@ -235,8 +224,7 @@ void TrMos::Generate(const unsigned m, const bool sourceisfirst, const bool hasr
|
||||||
|
|
||||||
cout << "*** Stage 1 : CreateLayout of " + GetString(this) + " finish ***" <<endl;
|
cout << "*** Stage 1 : CreateLayout of " + GetString(this) + " finish ***" <<endl;
|
||||||
cout << ts << GetString(_tr1) + " 's M is " + GetString(_tr1->GetM()) + ".\n"
|
cout << ts << GetString(_tr1) + " 's M is " + GetString(_tr1->GetM()) + ".\n"
|
||||||
<< ts << GetString(_m) + " Transistors are created.\n"
|
<< ts << GetString(_m) + " Transistors are created.\n" <<endl;
|
||||||
<<endl;
|
|
||||||
|
|
||||||
END_IF
|
END_IF
|
||||||
|
|
||||||
|
|
|
@ -32,3 +32,5 @@ ADD_LIBRARY(dtr SHARED
|
||||||
${DST_SRCS}
|
${DST_SRCS}
|
||||||
DtrAccess.cpp
|
DtrAccess.cpp
|
||||||
GenericDtrAccess.cpp)
|
GenericDtrAccess.cpp)
|
||||||
|
|
||||||
|
INSTALL(TARGETS dtr DESTINATION /lib)
|
||||||
|
|
|
@ -34,9 +34,7 @@ DtrAccess::DtrAccess()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
DtrAccess * DtrAccess::Create()
|
DtrAccess * DtrAccess::Create() {
|
||||||
// *****************************
|
|
||||||
{
|
|
||||||
DtrAccess * dtraccess = new DtrAccess();
|
DtrAccess * dtraccess = new DtrAccess();
|
||||||
|
|
||||||
dtraccess->_PostCreate();
|
dtraccess->_PostCreate();
|
||||||
|
@ -45,43 +43,43 @@ DtrAccess * DtrAccess::Create()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void DtrAccess::_PostCreate()
|
void DtrAccess::_PostCreate() {
|
||||||
// **************************
|
const char* dtrFileName = getenv("DTR_FILE");
|
||||||
{
|
if(!dtrFileName) {
|
||||||
const char * dtrfilename = getenv("DTR_FILE");
|
|
||||||
if(!dtrfilename) {
|
|
||||||
throw Error("Can't not get Macro DTR_FILE.");
|
throw Error("Can't not get Macro DTR_FILE.");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Use API of DtrParser for get technology informations
|
// Use API of DtrParser for get technology informations
|
||||||
// ****************************************************
|
// ****************************************************
|
||||||
ParseDtr(dtrfilename, this);
|
ParseDtr(dtrFileName, this);
|
||||||
|
|
||||||
// Traduit Micro to RdsUnit
|
// Traduit Micro to RdsUnit
|
||||||
// ************************
|
// ************************
|
||||||
map<string, list<double> >::iterator it_rulemap = _label2ruleMap.begin(),
|
for (Label2RuleMap::iterator lrmit = _label2ruleMap.begin();
|
||||||
it_end_rulemap = _label2ruleMap.end();
|
lrmit != _label2ruleMap.end();
|
||||||
|
++lrmit) {
|
||||||
while(it_rulemap!=it_end_rulemap) {
|
for (list<double>::iterator ldit = lrmit->second.begin();
|
||||||
|
ldit != lrmit->second.end();
|
||||||
list<double>::iterator m = ((*it_rulemap).second).begin()
|
++ldit) {
|
||||||
, n = ((*it_rulemap).second).end();
|
_label2RdsRuleMap[lrmit->first].push_back(ConvertRealToRdsUnit(*ldit));
|
||||||
|
}
|
||||||
while(m!=n) {
|
|
||||||
_label2RdsRuleMap[(*it_rulemap).first].push_back(ConvertRealToRdsUnit(*m));
|
|
||||||
m++;
|
|
||||||
}
|
|
||||||
it_rulemap++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get Objet Layer from Technology with its name.
|
// Get Objet Layer from Technology with its name.
|
||||||
// **********************************************
|
// **********************************************
|
||||||
|
|
||||||
DataBase * db = GetDataBase();
|
DataBase* db = GetDataBase();
|
||||||
|
|
||||||
if(!db) throw Error("In GetV1Trans::Generate : can't find DataBase.");
|
if(!db) {
|
||||||
|
throw Error("In GetV1Trans::Generate : can't find DataBase.");
|
||||||
|
}
|
||||||
|
|
||||||
|
Technology* tech = db->GetTechnology();
|
||||||
|
|
||||||
|
if (!tech) {
|
||||||
|
throw Error("In GetV1Trans::Generate : can't find Technology.");
|
||||||
|
}
|
||||||
|
|
||||||
Technology * tech = db->GetTechnology();
|
|
||||||
|
|
||||||
map<string, list<string> >::iterator it_layermap = _label2layerNameMap.begin(),
|
map<string, list<string> >::iterator it_layermap = _label2layerNameMap.begin(),
|
||||||
it_end_layermap = _label2layerNameMap.end();
|
it_end_layermap = _label2layerNameMap.end();
|
||||||
|
@ -109,9 +107,7 @@ void DtrAccess::_PostCreate()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
DtrAccess * DtrAccess::Instance()
|
DtrAccess * DtrAccess::Instance() {
|
||||||
// *****************************
|
|
||||||
{
|
|
||||||
// User or environnement supplies this at startup
|
// User or environnement supplies this at startup
|
||||||
// **********************************************
|
// **********************************************
|
||||||
const char * singleton_name = getenv("DTRACCESS_SINGLETON");
|
const char * singleton_name = getenv("DTRACCESS_SINGLETON");
|
||||||
|
@ -120,14 +116,12 @@ DtrAccess * DtrAccess::Instance()
|
||||||
if(!_instance) {
|
if(!_instance) {
|
||||||
_instance = DtrAccess::Create();
|
_instance = DtrAccess::Create();
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if(!_instance){
|
if(!_instance){
|
||||||
if( !(_instance=LookUp(string(singleton_name))) ) // if singleton hasn't been registered
|
if( !(_instance=LookUp(string(singleton_name))) ) // if singleton hasn't been registered
|
||||||
_instance = DtrAccess::Create();
|
_instance = DtrAccess::Create();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return _instance;
|
return _instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,24 +16,21 @@
|
||||||
namespace Hurricane {
|
namespace Hurricane {
|
||||||
|
|
||||||
class DtrAccess {
|
class DtrAccess {
|
||||||
// **************
|
|
||||||
|
|
||||||
// Types
|
|
||||||
// *****
|
|
||||||
|
|
||||||
# if !defined(__DOXYGEN_PROCESSOR__)
|
# if !defined(__DOXYGEN_PROCESSOR__)
|
||||||
// Attributes
|
// Attributes
|
||||||
// **********
|
// **********
|
||||||
private : static DtrAccess * _instance;
|
private: typedef map<string, list<double> > Label2RuleMap;
|
||||||
|
private: static DtrAccess * _instance;
|
||||||
|
|
||||||
private : map<string, list<double> > _label2ruleMap;
|
private: Label2RuleMap _label2ruleMap;
|
||||||
private : map<string, list<string> > _label2layerNameMap;
|
private: map<string, list<string> > _label2layerNameMap;
|
||||||
private : map<string, list<double> > _label2electricalMap;
|
private: map<string, list<double> > _label2electricalMap;
|
||||||
private : map<string, int> _label2modellingMap;
|
private: map<string, int> _label2modellingMap;
|
||||||
private : map<string, double> _label2simplecapamimMap;
|
private: map<string, double> _label2simplecapamimMap;
|
||||||
|
|
||||||
private : map<string, list<long> > _label2RdsRuleMap;
|
private: map<string, list<long> > _label2RdsRuleMap;
|
||||||
private : map<string, list<Layer*> > _label2layerMap;
|
private: map<string, list<Layer*> > _label2layerMap;
|
||||||
|
|
||||||
|
|
||||||
// For reusability of software
|
// For reusability of software
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
|
|
||||||
#include "DtrAccess.h"
|
#include "DtrAccess.h"
|
||||||
#include "GenericDtrAccess.h"
|
#include "GenericDtrAccess.h"
|
||||||
//#include "DtrAccess.h"
|
|
||||||
|
|
||||||
BEGIN_NAMESPACE_HURRICANE
|
BEGIN_NAMESPACE_HURRICANE
|
||||||
|
|
||||||
|
|
|
@ -1,17 +1,29 @@
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
#include "DataBase.h"
|
|
||||||
#include "Library.h"
|
#include "Library.h"
|
||||||
USING_NAMESPACE_HURRICANE
|
#include "Warning.h"
|
||||||
|
using namespace H;
|
||||||
|
|
||||||
|
#include "crlcore/CDataBase.h"
|
||||||
|
using namespace CRL;
|
||||||
|
|
||||||
#include "TrMos.h"
|
#include "TrMos.h"
|
||||||
using namespace DEVICE;
|
using namespace DEVICE;
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
cout << "simple analogic test" << endl;
|
try {
|
||||||
DataBase* db = DataBase::Create();
|
cout << "simple analogic test" << endl;
|
||||||
Library* rootLibrary = Library::Create(db, Name("RootLibrary"));
|
CDataBase* db = CDataBase::Create();
|
||||||
Library* workLibrary = Library::Create(rootLibrary, Name("WorkLibrary"));
|
Library* workLibrary = Library::Create(db->GetRootLibrary(), Name("WorkLibrary"));
|
||||||
TrMos* trmos = TrMos::Create(workLibrary, Name("MosTr"));
|
TrMos* trmos = TrMos::Create(workLibrary, Name("MosTr"));
|
||||||
return 1;
|
exit(0);
|
||||||
|
} catch (Hurricane::Warning& w) {
|
||||||
|
cerr << w.What() << endl;
|
||||||
|
} catch (Hurricane::Error& e) {
|
||||||
|
cerr << e.What() << endl;
|
||||||
|
exit (1);
|
||||||
|
} catch (...) {
|
||||||
|
cout << "Abnormal termination\n" << endl;
|
||||||
|
exit(2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
INCLUDE_DIRECTORIES(${HURRICANE_INCLUDE_DIR}
|
INCLUDE_DIRECTORIES(${HURRICANE_INCLUDE_DIR} ${CORIOLIS_INCLUDE_DIR}
|
||||||
${CHAMSIN_SOURCE_DIR}/src/analogic ${CHAMSIN_SOURCE_DIR}/src/device)
|
${CHAMSIN_SOURCE_DIR}/src/analogic ${CHAMSIN_SOURCE_DIR}/src/device)
|
||||||
|
|
||||||
ADD_EXECUTABLE(atest AnalogicTest.cpp)
|
ADD_EXECUTABLE(atest AnalogicTest.cpp)
|
||||||
|
|
||||||
TARGET_LINK_LIBRARIES(atest analogic device ${HURRICANE_LIBRARIES})
|
TARGET_LINK_LIBRARIES(atest analogic device ${HURRICANE_LIBRARIES}
|
||||||
|
${CORIOLIS_LIBRARIES})
|
||||||
|
|
||||||
|
INSTALL(TARGETS atest DESTINATION /bin)
|
||||||
|
|
Loading…
Reference in New Issue