* 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. * ./crlcore: - Change: In System, static initialisation problem again, there seems to be a race between it and boost::filesystem, make the singleton creation "at first call" again. Triggers the System singleton creation in AllianceFramework to spare the user the need to explicitly doing it. - New: In Utilities, automatically adds the "site-packages" PYTHONPATH component, guessed from CORIOLIS_TOP.
This commit is contained in:
parent
fbd9aba2f5
commit
f901abe0ad
|
@ -41,6 +41,9 @@ SET(QT_USE_QTXML "true")
|
||||||
|
|
||||||
LIST(INSERT CMAKE_MODULE_PATH 0 "${CRLCORE_SOURCE_DIR}/cmake_modules/")
|
LIST(INSERT CMAKE_MODULE_PATH 0 "${CRLCORE_SOURCE_DIR}/cmake_modules/")
|
||||||
|
|
||||||
|
FIND_PACKAGE(LibXml2 REQUIRED)
|
||||||
|
FIND_PACKAGE(PythonLibs REQUIRED)
|
||||||
|
FIND_PACKAGE(PythonSitePackages REQUIRED)
|
||||||
FIND_PACKAGE(Qt4 REQUIRED) # find and setup Qt4 for this project
|
FIND_PACKAGE(Qt4 REQUIRED) # find and setup Qt4 for this project
|
||||||
FIND_PACKAGE(BISON REQUIRED)
|
FIND_PACKAGE(BISON REQUIRED)
|
||||||
FIND_PACKAGE(FLEX REQUIRED)
|
FIND_PACKAGE(FLEX REQUIRED)
|
||||||
|
@ -51,7 +54,7 @@ FIND_PACKAGE(HURRICANE REQUIRED)
|
||||||
INCLUDE(UseLATEX)
|
INCLUDE(UseLATEX)
|
||||||
|
|
||||||
SET_LIB_LINK_MODE()
|
SET_LIB_LINK_MODE()
|
||||||
FIND_PACKAGE(Boost 1.33.1 COMPONENTS program_options REQUIRED)
|
FIND_PACKAGE(Boost 1.33.1 COMPONENTS program_options filesystem REQUIRED)
|
||||||
|
|
||||||
STRING(REGEX MATCH "^/usr" IS_USR "$ENV{CORIOLIS_TOP}")
|
STRING(REGEX MATCH "^/usr" IS_USR "$ENV{CORIOLIS_TOP}")
|
||||||
STRING(REGEX MATCH "^/opt" IS_OPT "$ENV{CORIOLIS_TOP}")
|
STRING(REGEX MATCH "^/opt" IS_OPT "$ENV{CORIOLIS_TOP}")
|
||||||
|
|
|
@ -63,6 +63,9 @@ namespace CRL {
|
||||||
, _parentLibrary(NULL)
|
, _parentLibrary(NULL)
|
||||||
, _routingGauges()
|
, _routingGauges()
|
||||||
{
|
{
|
||||||
|
// Triggers System singleton loading.
|
||||||
|
System::get ();
|
||||||
|
|
||||||
DataBase* db = DataBase::getDB ();
|
DataBase* db = DataBase::getDB ();
|
||||||
if ( !db )
|
if ( !db )
|
||||||
db = DataBase::create ();
|
db = DataBase::create ();
|
||||||
|
|
|
@ -27,10 +27,12 @@
|
||||||
${HURRICANE_INCLUDE_DIR}
|
${HURRICANE_INCLUDE_DIR}
|
||||||
${CIF_INCLUDE_DIR}
|
${CIF_INCLUDE_DIR}
|
||||||
${CONFIGURATION_INCLUDE_DIR}
|
${CONFIGURATION_INCLUDE_DIR}
|
||||||
|
${PYTHON_INCLUDE_PATH}
|
||||||
)
|
)
|
||||||
|
|
||||||
add_definitions ( -DCORIOLIS_TOP="${CORIOLIS_TOP}"
|
add_definitions ( -DCORIOLIS_TOP="${CORIOLIS_TOP}"
|
||||||
-DSYS_CONF_DIR="${SYS_CONF_DIR}"
|
-DSYS_CONF_DIR="${SYS_CONF_DIR}"
|
||||||
|
-DPYTHON_SITE_PACKAGES="${PYTHON_SITE_PACKAGES}"
|
||||||
)
|
)
|
||||||
|
|
||||||
set ( includes crlcore/Utilities.h
|
set ( includes crlcore/Utilities.h
|
||||||
|
@ -239,14 +241,4 @@
|
||||||
${lefdef_cpps}
|
${lefdef_cpps}
|
||||||
${openaccess_cpps}
|
${openaccess_cpps}
|
||||||
)
|
)
|
||||||
target_link_libraries ( crlcore ${HURRICANE_LIBRARIES}
|
|
||||||
${HURRICANE_GRAPHICAL_LIBRARIES}
|
|
||||||
${QT_LIBRARIES}
|
|
||||||
${IO_LIBRARIES}
|
|
||||||
${LEFDEF_LIBRARIES}
|
|
||||||
${OA_LIBRARIES}
|
|
||||||
${AGDS_LIBRARY}
|
|
||||||
${CIF_LIBRARY}
|
|
||||||
${CONFIGURATION_LIBRARY}
|
|
||||||
)
|
|
||||||
install ( TARGETS crlcore DESTINATION lib${LIB_SUFFIX} )
|
install ( TARGETS crlcore DESTINATION lib${LIB_SUFFIX} )
|
||||||
|
|
|
@ -32,8 +32,9 @@
|
||||||
#include <boost/program_options.hpp>
|
#include <boost/program_options.hpp>
|
||||||
namespace boptions = boost::program_options;
|
namespace boptions = boost::program_options;
|
||||||
|
|
||||||
#include "hurricane/Warning.h"
|
|
||||||
#include "vlsisapd/configuration/Configuration.h"
|
#include "vlsisapd/configuration/Configuration.h"
|
||||||
|
#include "hurricane/Warning.h"
|
||||||
|
#include "hurricane/isobar/Script.h"
|
||||||
#include "crlcore/Utilities.h"
|
#include "crlcore/Utilities.h"
|
||||||
|
|
||||||
|
|
||||||
|
@ -199,12 +200,14 @@ namespace CRL {
|
||||||
// Class : "CRL::System".
|
// Class : "CRL::System".
|
||||||
|
|
||||||
|
|
||||||
System* System::_singleton = System::get();
|
System* System::_singleton = NULL; //System::get();
|
||||||
|
|
||||||
|
|
||||||
System::System ()
|
System::System ()
|
||||||
: _catchCore(true)
|
: _catchCore(true)
|
||||||
{
|
{
|
||||||
|
cerr << "Creating System singleton." << endl;
|
||||||
|
|
||||||
// Immediate setup to avoid some tiresome looping...
|
// Immediate setup to avoid some tiresome looping...
|
||||||
_singleton = this;
|
_singleton = this;
|
||||||
|
|
||||||
|
@ -223,17 +226,17 @@ namespace CRL {
|
||||||
// Environment variables reading.
|
// Environment variables reading.
|
||||||
boptions::options_description options ("Environment Variables");
|
boptions::options_description options ("Environment Variables");
|
||||||
options.add_options()
|
options.add_options()
|
||||||
( "coriolis_top", boptions::value<string>()
|
( "coriolis_top", boptions::value<string>()->default_value(CORIOLIS_TOP)
|
||||||
, "The root directory of the Coriolis installation tree." );
|
, "The root directory of the Coriolis installation tree." );
|
||||||
|
|
||||||
boptions::variables_map arguments;
|
boptions::variables_map arguments;
|
||||||
boptions::store ( boptions::parse_environment(options,environmentMapper), arguments );
|
boptions::store ( boptions::parse_environment(options,environmentMapper), arguments );
|
||||||
boptions::notify ( arguments );
|
boptions::notify ( arguments );
|
||||||
|
|
||||||
|
if ( bfs::path::default_name_check_writable() )
|
||||||
bfs::path::default_name_check ( bfs::portable_posix_name );
|
bfs::path::default_name_check ( bfs::portable_posix_name );
|
||||||
|
|
||||||
const string strSysConfDir = SYS_CONF_DIR;
|
bfs::path sysConfDir ( SYS_CONF_DIR );
|
||||||
bfs::path sysConfDir ( strSysConfDir );
|
|
||||||
if ( not sysConfDir.has_root_path() ) {
|
if ( not sysConfDir.has_root_path() ) {
|
||||||
if ( arguments.count("coriolis_top") ) {
|
if ( arguments.count("coriolis_top") ) {
|
||||||
sysConfDir = arguments["coriolis_top"].as<string>() / sysConfDir;
|
sysConfDir = arguments["coriolis_top"].as<string>() / sysConfDir;
|
||||||
|
@ -280,6 +283,11 @@ namespace CRL {
|
||||||
conf->readFromFile ( dotConfFile.string() );
|
conf->readFromFile ( dotConfFile.string() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bfs::path pythonSitePackages = PYTHON_SITE_PACKAGES;
|
||||||
|
pythonSitePackages = arguments["coriolis_top"].as<string>() / pythonSitePackages;
|
||||||
|
|
||||||
|
Isobar::Script::addPath ( pythonSitePackages.string() );
|
||||||
|
|
||||||
// Delayed printing, as we known only now whether VerboseLevel1 is requested.
|
// Delayed printing, as we known only now whether VerboseLevel1 is requested.
|
||||||
if ( cmess1.enabled() ) {
|
if ( cmess1.enabled() ) {
|
||||||
cmess1 << " o Reading Configuration. " << endl;
|
cmess1 << " o Reading Configuration. " << endl;
|
||||||
|
|
|
@ -20,11 +20,20 @@
|
||||||
|
|
||||||
add_executable ( cyclop ${cpps} ${MOCcpps} )
|
add_executable ( cyclop ${cpps} ${MOCcpps} )
|
||||||
target_link_libraries ( cyclop crlcore
|
target_link_libraries ( cyclop crlcore
|
||||||
|
${HURRICANE_PYTHON_LIBRARIES}
|
||||||
${HURRICANE_GRAPHICAL_LIBRARIES}
|
${HURRICANE_GRAPHICAL_LIBRARIES}
|
||||||
${HURRICANE_LIBRARIES}
|
${HURRICANE_LIBRARIES}
|
||||||
|
${CONFIGURATION_LIBRARY}
|
||||||
|
${AGDS_LIBRARY}
|
||||||
|
${CIF_LIBRARY}
|
||||||
${IO_LIBRARIES}
|
${IO_LIBRARIES}
|
||||||
${OA_LIBRARIES}
|
${OA_LIBRARIES}
|
||||||
|
${LEFDEF_LIBRARIES}
|
||||||
${QT_LIBRARIES}
|
${QT_LIBRARIES}
|
||||||
${Boost_LIBRARIES} )
|
${Boost_LIBRARIES}
|
||||||
|
${LIBXML2_LIBRARIES}
|
||||||
|
${PYTHON_LIBRARIES}
|
||||||
|
-lutil
|
||||||
|
)
|
||||||
install ( TARGETS cyclop DESTINATION bin )
|
install ( TARGETS cyclop DESTINATION bin )
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,10 @@
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
#include <boost/program_options.hpp>
|
#include <boost/program_options.hpp>
|
||||||
namespace poptions = boost::program_options;
|
namespace boptions = boost::program_options;
|
||||||
|
|
||||||
|
#include <boost/filesystem/operations.hpp>
|
||||||
|
namespace bfs = boost::filesystem;
|
||||||
|
|
||||||
#include <QtGui>
|
#include <QtGui>
|
||||||
#if (QT_VERSION >= QT_VERSION_CHECK(4,5,0)) and not defined (__APPLE__)
|
#if (QT_VERSION >= QT_VERSION_CHECK(4,5,0)) and not defined (__APPLE__)
|
||||||
|
@ -93,35 +96,41 @@ namespace {
|
||||||
|
|
||||||
int main ( int argc, char *argv[] )
|
int main ( int argc, char *argv[] )
|
||||||
{
|
{
|
||||||
|
|
||||||
int returnCode = 0;
|
int returnCode = 0;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
bfs::path::default_name_check ( bfs::portable_posix_name );
|
||||||
|
|
||||||
unsigned int traceLevel;
|
unsigned int traceLevel;
|
||||||
bool verbose1;
|
bool verbose1;
|
||||||
bool verbose2;
|
bool verbose2;
|
||||||
bool coreDump;
|
bool coreDump;
|
||||||
bool textMode;
|
bool textMode;
|
||||||
|
|
||||||
poptions::options_description options ("Command line arguments & options");
|
boptions::options_description options ("Command line arguments & options");
|
||||||
options.add_options()
|
options.add_options()
|
||||||
( "help,h" , "Print this help." )
|
( "help,h" , "Print this help." )
|
||||||
( "verbose,v" , poptions::bool_switch(&verbose1)->default_value(false)
|
( "verbose,v" , boptions::bool_switch(&verbose1)->default_value(false)
|
||||||
, "First level of verbosity.")
|
, "First level of verbosity.")
|
||||||
( "very-verbose,V", poptions::bool_switch(&verbose2)->default_value(false)
|
( "very-verbose,V", boptions::bool_switch(&verbose2)->default_value(false)
|
||||||
, "Second level of verbosity.")
|
, "Second level of verbosity.")
|
||||||
( "core-dump,D" , poptions::bool_switch(&coreDump)->default_value(false)
|
( "core-dump,D" , boptions::bool_switch(&coreDump)->default_value(false)
|
||||||
, "Enable core dumping.")
|
, "Enable core dumping.")
|
||||||
( "text,t" , poptions::bool_switch(&textMode)->default_value(false)
|
( "text,t" , boptions::bool_switch(&textMode)->default_value(false)
|
||||||
, "Run in pure text mode.")
|
, "Run in pure text mode.")
|
||||||
( "trace-level,l" , poptions::value<unsigned int>(&traceLevel)->default_value(1000)
|
( "trace-level,l" , boptions::value<unsigned int>(&traceLevel)->default_value(1000)
|
||||||
, "Set the level of trace, trace messages with a level superior to "
|
, "Set the level of trace, trace messages with a level superior to "
|
||||||
"<arg> will be printed on <stderr>." )
|
"<arg> will be printed on <stderr>." )
|
||||||
( "cell,c" , poptions::value<string>()
|
( "cell,c" , boptions::value<string>()
|
||||||
, "The name of the cell to load, whithout extension." );
|
, "The name of the cell to load, whithout extension." );
|
||||||
|
|
||||||
poptions::variables_map arguments;
|
boptions::variables_map arguments;
|
||||||
poptions::store ( poptions::parse_command_line(argc,argv,options), arguments );
|
boptions::store ( boptions::parse_command_line(argc,argv,options), arguments );
|
||||||
poptions::notify ( arguments );
|
boptions::notify ( arguments );
|
||||||
|
|
||||||
|
bfs::path userConfFile = "ma/configuration";
|
||||||
|
cerr << "Mark:" << userConfFile.string() << endl;
|
||||||
|
|
||||||
if ( arguments.count("help") ) {
|
if ( arguments.count("help") ) {
|
||||||
cout << options << endl;
|
cout << options << endl;
|
||||||
|
@ -223,12 +232,16 @@ int main ( int argc, char *argv[] )
|
||||||
returnCode = qa->exec();
|
returnCode = qa->exec();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch ( poptions::error& e ) {
|
catch ( Error& e ) {
|
||||||
|
cerr << e.what() << endl;
|
||||||
|
exit ( 1 );
|
||||||
|
}
|
||||||
|
catch ( boptions::error& e ) {
|
||||||
cerr << "[ERROR] " << e.what() << endl;
|
cerr << "[ERROR] " << e.what() << endl;
|
||||||
exit ( 1 );
|
exit ( 1 );
|
||||||
}
|
}
|
||||||
catch ( Error& e ) {
|
catch ( exception& e ) {
|
||||||
cerr << e.what() << endl;
|
cerr << "[ERROR] " << e.what() << endl;
|
||||||
exit ( 1 );
|
exit ( 1 );
|
||||||
}
|
}
|
||||||
catch ( ... ) {
|
catch ( ... ) {
|
||||||
|
|
|
@ -11,9 +11,18 @@
|
||||||
|
|
||||||
add_executable ( cx2y ${cpps} )
|
add_executable ( cx2y ${cpps} )
|
||||||
target_link_libraries ( cx2y crlcore
|
target_link_libraries ( cx2y crlcore
|
||||||
|
${HURRICANE_PYTHON_LIBRARIES}
|
||||||
${HURRICANE_GRAPHICAL_LIBRARIES}
|
${HURRICANE_GRAPHICAL_LIBRARIES}
|
||||||
${HURRICANE_LIBRARIES}
|
${HURRICANE_LIBRARIES}
|
||||||
|
${CONFIGURATION_LIBRARY}
|
||||||
|
${AGDS_LIBRARY}
|
||||||
|
${CIF_LIBRARY}
|
||||||
${OA_LIBRARIES}
|
${OA_LIBRARIES}
|
||||||
${QT_LIBRARIES}
|
${QT_LIBRARIES}
|
||||||
${Boost_LIBRARIES} )
|
${LEFDEF_LIBRARIES}
|
||||||
|
${Boost_LIBRARIES}
|
||||||
|
${LIBXML2_LIBRARIES}
|
||||||
|
${PYTHON_LIBRARIES}
|
||||||
|
-lutil
|
||||||
|
)
|
||||||
install ( TARGETS cx2y DESTINATION bin )
|
install ( TARGETS cx2y DESTINATION bin )
|
||||||
|
|
Loading…
Reference in New Issue