CMake GUI: Add --browse-manual argument

This commit is contained in:
Kyle Edwards
2020-10-23 12:47:56 -04:00
parent 8d6a0b9364
commit ef03124237
3 changed files with 26 additions and 14 deletions

View File

@@ -11,6 +11,7 @@ Synopsis
cmake-gui [<options>]
cmake-gui [<options>] {<path-to-source> | <path-to-existing-build>}
cmake-gui [<options>] -S <path-to-source> -B <path-to-build>
cmake-gui [<options>] --browse-manual
Description
===========
@@ -40,6 +41,9 @@ Options
Name of the preset to use from the project's
:manual:`presets <cmake-presets(7)>` files, if it has them.
``--browse-manual``
Open the CMake reference manual in a browser and immediately exit.
.. include:: OPTIONS_HELP.txt
See Also

View File

@@ -32,7 +32,8 @@ static const char* cmDocumentationUsage[][2] = {
" cmake-gui [options]\n"
" cmake-gui [options] <path-to-source>\n"
" cmake-gui [options] <path-to-existing-build>\n"
" cmake-gui [options] -S <path-to-source> -B <path-to-build>\n" },
" cmake-gui [options] -S <path-to-source> -B <path-to-build>\n"
" cmake-gui [options] --browse-manual\n" },
{ nullptr, nullptr }
};
@@ -56,6 +57,7 @@ Q_IMPORT_PLUGIN(QWindowsVistaStylePlugin);
int CMakeGUIExec(CMakeSetupDialog* window);
void SetupDefaultQSettings();
void OpenReferenceManual();
int main(int argc, char** argv)
{
@@ -193,6 +195,9 @@ int main(int argc, char** argv)
return 1;
}
presetName = preset.toLocal8Bit().data();
} else if (arg == "--browse-manual") {
OpenReferenceManual();
return 0;
}
}
if (!sourceDirectory.empty() &&

View File

@@ -43,6 +43,21 @@
#include "RegexExplorer.h"
#include "WarningMessagesDialog.h"
void OpenReferenceManual()
{
QString urlFormat("https://cmake.org/cmake/help/v%1.%2/");
QUrl url(urlFormat.arg(QString::number(cmVersion::GetMajorVersion()),
QString::number(cmVersion::GetMinorVersion())));
if (!cmSystemTools::GetHTMLDoc().empty()) {
url = QUrl::fromLocalFile(
QDir(QString::fromLocal8Bit(cmSystemTools::GetHTMLDoc().data()))
.filePath("index.html"));
}
QDesktopServices::openUrl(url);
}
namespace {
const QString PRESETS_DISABLED_TOOLTIP =
"This option is disabled because there are no available presets in "
@@ -194,19 +209,7 @@ CMakeSetupDialog::CMakeSetupDialog()
QObject::connect(a, &QAction::triggered, this, &CMakeSetupDialog::doHelp);
a->setShortcut(QKeySequence::HelpContents);
a = HelpMenu->addAction(tr("CMake Reference Manual"));
QObject::connect(a, &QAction::triggered, this, []() {
QString urlFormat("https://cmake.org/cmake/help/v%1.%2/");
QUrl url(urlFormat.arg(QString::number(cmVersion::GetMajorVersion()),
QString::number(cmVersion::GetMinorVersion())));
if (!cmSystemTools::GetHTMLDoc().empty()) {
url = QUrl::fromLocalFile(
QDir(QString::fromLocal8Bit(cmSystemTools::GetHTMLDoc().data()))
.filePath("index.html"));
}
QDesktopServices::openUrl(url);
});
QObject::connect(a, &QAction::triggered, this, OpenReferenceManual);
a = HelpMenu->addAction(tr("About"));
QObject::connect(a, &QAction::triggered, this, &CMakeSetupDialog::doAbout);