ENH: support specifying build or source directory at command line.
This commit is contained in:
parent
073b109508
commit
47c53e867f
|
@ -16,6 +16,8 @@
|
||||||
=========================================================================*/
|
=========================================================================*/
|
||||||
#include "QCMake.h" // include to disable MS warnings
|
#include "QCMake.h" // include to disable MS warnings
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
|
#include <QFileInfo>
|
||||||
|
#include <QDir>
|
||||||
|
|
||||||
#include "CMakeSetupDialog.h"
|
#include "CMakeSetupDialog.h"
|
||||||
|
|
||||||
|
@ -26,11 +28,26 @@ int main(int argc, char** argv)
|
||||||
app.setOrganizationName("Kitware");
|
app.setOrganizationName("Kitware");
|
||||||
app.setWindowIcon(QIcon(":/Icons/CMakeSetup.png"));
|
app.setWindowIcon(QIcon(":/Icons/CMakeSetup.png"));
|
||||||
|
|
||||||
// TODO handle CMake args
|
|
||||||
|
|
||||||
CMakeSetupDialog dialog;
|
CMakeSetupDialog dialog;
|
||||||
dialog.setWindowTitle("CMakeSetup");
|
dialog.setWindowTitle("CMakeSetup");
|
||||||
dialog.show();
|
dialog.show();
|
||||||
|
|
||||||
|
// for now: args support specifying build and/or source directory
|
||||||
|
QStringList args = app.arguments();
|
||||||
|
if(args.count() == 2)
|
||||||
|
{
|
||||||
|
QFileInfo buildFileInfo(args[1], "CMakeCache.txt");
|
||||||
|
QFileInfo srcFileInfo(args[1], "CMakeLists.txt");
|
||||||
|
if(buildFileInfo.exists())
|
||||||
|
{
|
||||||
|
dialog.setBinaryDirectory(buildFileInfo.absolutePath());
|
||||||
|
}
|
||||||
|
else if(srcFileInfo.exists())
|
||||||
|
{
|
||||||
|
dialog.setSourceDirectory(srcFileInfo.absolutePath());
|
||||||
|
dialog.setBinaryDirectory(QDir::currentPath());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return app.exec();
|
return app.exec();
|
||||||
}
|
}
|
||||||
|
|
|
@ -113,6 +113,10 @@ CMakeSetupDialog::CMakeSetupDialog()
|
||||||
this, SLOT(doHelp()));
|
this, SLOT(doHelp()));
|
||||||
|
|
||||||
this->setAcceptDrops(true);
|
this->setAcceptDrops(true);
|
||||||
|
|
||||||
|
// get the saved binary directories
|
||||||
|
QStringList buildPaths = this->loadBuildPaths();
|
||||||
|
this->BinaryDirectory->addItems(buildPaths);
|
||||||
|
|
||||||
// start the cmake worker thread
|
// start the cmake worker thread
|
||||||
this->CMakeThread = new QCMakeThread(this);
|
this->CMakeThread = new QCMakeThread(this);
|
||||||
|
@ -191,11 +195,6 @@ void CMakeSetupDialog::initialize()
|
||||||
QObject::connect(this->AddEntry, SIGNAL(clicked(bool)),
|
QObject::connect(this->AddEntry, SIGNAL(clicked(bool)),
|
||||||
this, SLOT(addCacheEntry()));
|
this, SLOT(addCacheEntry()));
|
||||||
|
|
||||||
// get the saved binary directories
|
|
||||||
QStringList buildPaths = this->loadBuildPaths();
|
|
||||||
this->BinaryDirectory->blockSignals(true);
|
|
||||||
this->BinaryDirectory->addItems(buildPaths);
|
|
||||||
this->BinaryDirectory->blockSignals(false);
|
|
||||||
|
|
||||||
if(!this->SourceDirectory->text().isEmpty() ||
|
if(!this->SourceDirectory->text().isEmpty() ||
|
||||||
!this->BinaryDirectory->lineEdit()->text().isEmpty())
|
!this->BinaryDirectory->lineEdit()->text().isEmpty())
|
||||||
|
|
Loading…
Reference in New Issue