@@ -338,13 +338,13 @@ QgsGrassModuleStandardOptions::QgsGrassModuleStandardOptions(
338
338
339
339
QProcess process ( this );
340
340
341
+ QProcessEnvironment environment = QProcessEnvironment::systemEnvironment ();
341
342
if ( mDirect )
342
343
{
343
344
// Set path to GRASS gis fake library
344
- QProcessEnvironment environment = QProcessEnvironment::systemEnvironment ();
345
345
346
346
QgsGrassModule::setDirectLibraryPath ( environment );
347
- environment.insert ( " QGIS_PREFIX " , QgsApplication::prefixPath () );
347
+ environment.insert ( " QGIS_PREFIX_PATH " , QgsApplication::prefixPath () );
348
348
// Window to avoid crash in G__gisinit
349
349
environment.insert ( " GRASS_REGION" , " west:0;south:0;east:1;north:1;cols:1;rows:1;proj:0;zone:0" );
350
350
process.setProcessEnvironment ( environment );
@@ -361,8 +361,11 @@ QgsGrassModuleStandardOptions::QgsGrassModuleStandardOptions(
361
361
|| ( process.exitCode () != 0 && process.exitCode () != 255 &&
362
362
( !cmd.endsWith ( " .py" ) || process.exitCode () != 1 ) ) )
363
363
{
364
+ QString pathVariable = QgsGrassModule::libraryPathVariable ();
364
365
QgsDebugMsg ( " process.exitCode() = " + QString::number ( process.exitCode () ) );
365
366
QString msg = tr ( " Cannot start module %1" ).arg ( mXName )
367
+ + " <br>" + pathVariable + " =" + environment.value ( pathVariable )
368
+ + " <br>QGIS_PREFIX_PATH=" + environment.value ( " QGIS_PREFIX_PATH" )
366
369
+ tr ( " <br>command: %1 %2<br>%3<br>%4" )
367
370
.arg ( cmd ).arg ( arguments.join ( " " ) )
368
371
.arg ( process.readAllStandardOutput ().constData () )
@@ -1996,18 +1999,26 @@ QDomNode QgsGrassModule::nodeByKey( QDomElement elem, QString key )
1996
1999
return QDomNode ();
1997
2000
}
1998
2001
2002
+ QString QgsGrassModule::libraryPathVariable ()
2003
+ {
2004
+ #ifdef Q_OS_WIN
2005
+ return " PATH" ;
2006
+ #elif defined(Q_OS_MAC)
2007
+ return " DYLD_LIBRARY_PATH" ;
2008
+ #else
2009
+ return " LD_LIBRARY_PATH" ;
2010
+ #endif
2011
+ }
2012
+
1999
2013
void QgsGrassModule::setDirectLibraryPath ( QProcessEnvironment & environment )
2000
2014
{
2001
- QString pathVariable;
2015
+ QString pathVariable = libraryPathVariable () ;
2002
2016
QString separator;
2003
2017
#ifdef Q_OS_WIN
2004
- pathVariable = " PATH" ;
2005
2018
separator = " ;" ;
2006
2019
#elif defined(Q_OS_MAC)
2007
- pathVariable = " DYLD_LIBRARY_PATH" ;
2008
2020
separator = " :" ;
2009
2021
#else
2010
- pathVariable = " LD_LIBRARY_PATH" ;
2011
2022
separator = " :" ;
2012
2023
#endif
2013
2024
QString lp = environment.value ( pathVariable );
0 commit comments