From 4d36a84738e37b971366cc19e6b0be687b7efe46 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 29 Dec 2024 16:49:39 -0500 Subject: [PATCH] add check whether libcurl support was compiled into LAMMPS and geturl is functional --- tools/lammps-gui/lammpsgui.cpp | 16 ++++++++++++---- tools/lammps-gui/lammpswrapper.cpp | 9 +++++++++ tools/lammps-gui/lammpswrapper.h | 1 + 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/tools/lammps-gui/lammpsgui.cpp b/tools/lammps-gui/lammpsgui.cpp index 46a1828c30..0aab470c57 100644 --- a/tools/lammps-gui/lammpsgui.cpp +++ b/tools/lammps-gui/lammpsgui.cpp @@ -1995,6 +1995,16 @@ static const QString geturl = void LammpsGui::setup_tutorial(int tutno, const QString &dir, bool purgedir, bool getsolution) { + constexpr int BUFLEN = 1024; + char errorbuf[BUFLEN]; + + if (!lammps.config_has_curl_support()) { + QMessageBox::critical(this, "LAMMPS-GUI tutorial files download error", + "

LAMMPS must be compiled with libcurl to support " + "downloading files

"); + return; + } + QDir directory(dir); directory.cd(dir); @@ -2008,12 +2018,10 @@ void LammpsGui::setup_tutorial(int tutno, const QString &dir, bool purgedir, boo // download and process manifest for selected tutorial // must check for error after download, e.g. when there is no network. - lammps.command(geturl.arg(tutno).arg(".manifest").toStdString().c_str()); + lammps.command(geturl.arg(tutno).arg(".manifest")); if (lammps.has_error()) { - constexpr int BUFLEN = 1024; - char errorbuf[BUFLEN]; lammps.get_last_error_message(errorbuf, BUFLEN); - QMessageBox::critical(this, "LAMMPS-GUI download error", QString(errorbuf)); + QMessageBox::critical(this, "LAMMPS-GUI tutorial files download error", QString(errorbuf)); return; } diff --git a/tools/lammps-gui/lammpswrapper.cpp b/tools/lammps-gui/lammpswrapper.cpp index 70d271f547..072b1aaaf5 100644 --- a/tools/lammps-gui/lammpswrapper.cpp +++ b/tools/lammps-gui/lammpswrapper.cpp @@ -339,6 +339,15 @@ bool LammpsWrapper::config_accelerator(const char *package, const char *category #endif } +bool LammpsWrapper::config_has_curl_support() const +{ +#if defined(LAMMPS_GUI_USE_PLUGIN) + return ((liblammpsplugin_t *)plugin_handle)->config_has_curl_support() != 0; +#else + return lammps_config_has_curl_support() != 0; +#endif +} + bool LammpsWrapper::has_gpu_device() const { #if defined(LAMMPS_GUI_USE_PLUGIN) diff --git a/tools/lammps-gui/lammpswrapper.h b/tools/lammps-gui/lammpswrapper.h index c32b607c2b..77dad21269 100644 --- a/tools/lammps-gui/lammpswrapper.h +++ b/tools/lammps-gui/lammpswrapper.h @@ -62,6 +62,7 @@ public: bool config_accelerator(const char *package, const char *category, const char *setting) const; bool config_has_package(const char *pkg) const; + bool config_has_curl_support() const; bool has_gpu_device() const; bool load_lib(const char *lammpslib);