Skip to content

Commit 433a030

Browse files
Updated plugin template and building system to use new FEBioConfig.cmake
1 parent e7ce213 commit 433a030

10 files changed

Lines changed: 25 additions & 73 deletions

FEBioStudio/DlgCreatePlugin.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -174,8 +174,6 @@ void CDlgCreatePlugin::accept()
174174
config.headerTxt = pluginTemplate->m_header;
175175
config.sourceTxt = pluginTemplate->m_source;
176176
config.args = ui->opsPage->GetOptions();
177-
config.sdkInc = ui->m_wnd->GetSDKIncludePath();
178-
config.sdkLib = ui->m_wnd->GetSDKLibraryPath();
179177
config.febioLibs = febioLibs;
180178
config.headerFile = config.path + sep + config.className + ".h";
181179
config.sourceFile = config.path + sep + config.className + ".cpp";
@@ -258,8 +256,6 @@ void CDlgAddPluginClass::accept()
258256
config.headerTxt = pluginTemplate->m_header;
259257
config.sourceTxt = pluginTemplate->m_source;
260258
config.args = ui->opsPage->GetOptions();
261-
config.sdkInc = ui->m_wnd->GetSDKIncludePath();
262-
config.sdkLib = ui->m_wnd->GetSDKLibraryPath();
263259
config.febioLibs = QStringList() << "FECore" << "FEBioMech";
264260
config.headerFile = config.path + sep + config.className + ".h";
265261
config.sourceFile = config.path + sep + config.className + ".cpp";

FEBioStudio/DlgSettings.cpp

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1055,8 +1055,7 @@ CFEBioSettingsWidget::CFEBioSettingsWidget(QWidget* parent) : QWidget(parent)
10551055
layout->addLayout(pathLayout);
10561056

10571057
QFormLayout* f = new QFormLayout;
1058-
f->addRow("FEBio SDK Include path: ", m_sdkInc = new QLineEdit);
1059-
f->addRow("FEBio SDK Library path: ", m_sdkLib = new QLineEdit);
1058+
f->addRow("FEBio SDK path: ", m_sdkPath = new QLineEdit);
10601059
f->addRow("FEBio create plugin path:", m_pluginPath = new QLineEdit);
10611060
layout->addLayout(f);
10621061

@@ -1071,11 +1070,8 @@ QString CFEBioSettingsWidget::GetConfigFileName() { return m_configEdit->text();
10711070
void CFEBioSettingsWidget::SetLoadConfigFlag(bool b) { m_loadConfig->setChecked(b); }
10721071
void CFEBioSettingsWidget::SetConfigFileName(QString s) { m_configEdit->setText(s); }
10731072

1074-
QString CFEBioSettingsWidget::GetSDKIncludePath() const { return m_sdkInc->text(); }
1075-
void CFEBioSettingsWidget::SetSDKIncludePath(const QString& s) { m_sdkInc->setText(s); }
1076-
1077-
QString CFEBioSettingsWidget::GetSDKLibraryPath() const { return m_sdkLib->text(); }
1078-
void CFEBioSettingsWidget::SetSDKLibraryPath(const QString& s) { m_sdkLib->setText(s); }
1073+
QString CFEBioSettingsWidget::GetSDKPath() const { return m_sdkPath->text(); }
1074+
void CFEBioSettingsWidget::SetSDKPath(const QString& s) { m_sdkPath->setText(s); }
10791075

10801076
QString CFEBioSettingsWidget::GetCreatePluginPath() const { return m_pluginPath->text(); }
10811077
void CFEBioSettingsWidget::SetCreatePluginPath(const QString& s) { m_pluginPath->setText(s); }
@@ -1301,8 +1297,7 @@ void CDlgSettings::UpdateSettings()
13011297
ui->m_febio->SetLoadConfigFlag(m_pwnd->GetLoadConfigFlag());
13021298
ui->m_febio->SetConfigFileName(m_pwnd->GetConfigFileName());
13031299

1304-
ui->m_febio->SetSDKIncludePath(m_pwnd->GetSDKIncludePath());
1305-
ui->m_febio->SetSDKLibraryPath(m_pwnd->GetSDKLibraryPath());
1300+
ui->m_febio->SetSDKPath(m_pwnd->GetSDKPath());
13061301
ui->m_febio->SetCreatePluginPath(m_pwnd->GetCreatePluginPath());
13071302
}
13081303

@@ -1447,8 +1442,7 @@ void CDlgSettings::apply()
14471442

14481443
m_pwnd->SetLoadConfigFlag(ui->m_febio->GetLoadConfigFlag());
14491444
m_pwnd->SetConfigFileName(ui->m_febio->GetConfigFileName());
1450-
m_pwnd->SetSDKIncludePath(ui->m_febio->GetSDKIncludePath());
1451-
m_pwnd->SetSDKLibraryPath(ui->m_febio->GetSDKLibraryPath());
1445+
m_pwnd->SetSDKPath(ui->m_febio->GetSDKPath());
14521446
m_pwnd->SetCreatePluginPath(ui->m_febio->GetCreatePluginPath());
14531447

14541448
m_pwnd->RedrawGL();

FEBioStudio/DlgSettings.h

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -175,11 +175,8 @@ class CFEBioSettingsWidget : public QWidget
175175
void SetLoadConfigFlag(bool b);
176176
void SetConfigFileName(QString s);
177177

178-
QString GetSDKIncludePath() const;
179-
void SetSDKIncludePath(const QString& s);
180-
181-
QString GetSDKLibraryPath() const;
182-
void SetSDKLibraryPath(const QString& s);
178+
QString GetSDKPath() const;
179+
void SetSDKPath(const QString& s);
183180

184181
QString GetCreatePluginPath() const;
185182
void SetCreatePluginPath(const QString& s);
@@ -190,8 +187,7 @@ protected slots:
190187
private:
191188
QCheckBox* m_loadConfig = nullptr;
192189
QLineEdit* m_configEdit = nullptr;
193-
QLineEdit* m_sdkInc = nullptr;
194-
QLineEdit* m_sdkLib = nullptr;
190+
QLineEdit* m_sdkPath = nullptr;
195191
QLineEdit* m_pluginPath = nullptr;
196192
};
197193

FEBioStudio/MainWindow.cpp

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1957,8 +1957,7 @@ void CMainWindow::writeSettings()
19571957
// FEBio
19581958
settings.setValue("loadFEBioConfigFile", ui->m_settings.loadFEBioConfigFile);
19591959
settings.setValue("febioConfigFileName", ui->m_settings.febioConfigFileName);
1960-
settings.setValue("FEBioSDKInclude", ui->m_settings.FEBioSDKInc);
1961-
settings.setValue("FEBioSDKLibrary", ui->m_settings.FEBioSDKLib);
1960+
settings.setValue("FEBioSDK", ui->m_settings.FEBioSDKPath);
19621961
settings.setValue("createPluginPath", ui->m_settings.createPluginPath);
19631962

19641963
// Lighting
@@ -2122,8 +2121,7 @@ void CMainWindow::readSettings()
21222121
ui->m_settings.loadFEBioConfigFile = settings.value("loadFEBioConfigFile", true).toBool();
21232122
ui->m_settings.febioConfigFileName = settings.value("febioConfigFileName", ui->m_settings.febioConfigFileName).toString();
21242123
QString defaultSDK = QFileInfo(QApplication::applicationDirPath() + QString(REL_ROOT) + "sdk/").absoluteFilePath();
2125-
ui->m_settings.FEBioSDKInc = settings.value("FEBioSDKInclude", defaultSDK + "include").toString();
2126-
ui->m_settings.FEBioSDKLib = settings.value("FEBioSDKLibrary", defaultSDK + "lib").toString();
2124+
ui->m_settings.FEBioSDKPath = settings.value("FEBioSDK", defaultSDK).toString();
21272125
ui->m_settings.createPluginPath = settings.value("createPluginPath", "").toString();
21282126

21292127
// Lighting
@@ -3635,12 +3633,10 @@ void CMainWindow::on_selectionChanged()
36353633

36363634
CPluginManager* CMainWindow::GetPluginManager() { return &ui->m_pluginManager; }
36373635

3638-
QString CMainWindow::GetSDKIncludePath() const { return ui->m_settings.FEBioSDKInc; }
3639-
QString CMainWindow::GetSDKLibraryPath() const { return ui->m_settings.FEBioSDKLib; }
3636+
QString CMainWindow::GetSDKPath() const { return ui->m_settings.FEBioSDKPath; }
36403637
QString CMainWindow::GetCreatePluginPath() const { return ui->m_settings.createPluginPath; }
36413638

3642-
void CMainWindow::SetSDKIncludePath(const QString& s) { ui->m_settings.FEBioSDKInc = s; }
3643-
void CMainWindow::SetSDKLibraryPath(const QString& s) { ui->m_settings.FEBioSDKLib = s; }
3639+
void CMainWindow::SetSDKPath(const QString& s) { ui->m_settings.FEBioSDKPath = s; }
36443640
void CMainWindow::SetCreatePluginPath(const QString& s) { ui->m_settings.createPluginPath = s; }
36453641

36463642
void CMainWindow::on_planecut_dataChanged()

FEBioStudio/MainWindow.h

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -317,11 +317,8 @@ class CMainWindow : public QMainWindow
317317
public:
318318
CPluginManager* GetPluginManager();
319319

320-
QString GetSDKIncludePath() const;
321-
void SetSDKIncludePath(const QString& s);
322-
323-
QString GetSDKLibraryPath() const;
324-
void SetSDKLibraryPath(const QString& s);
320+
QString GetSDKPath() const;
321+
void SetSDKPath(const QString& s);
325322

326323
QString GetCreatePluginPath() const;
327324
void SetCreatePluginPath(const QString& s);

FEBioStudio/ProjectViewer.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ SOFTWARE.*/
3232
#include "ModelDocument.h"
3333
#include "PostDocument.h"
3434
#include "FEBioStudioProject.h"
35+
#include <QApplication>
3536
#include <QTreeWidget>
3637
#include <QFileSystemModel>
3738
#include <QBoxLayout>
@@ -917,7 +918,12 @@ CConfigurePluginProcess::CConfigurePluginProcess(QObject* parent) : CPluginProce
917918

918919
void CConfigurePluginProcess::run()
919920
{
920-
start("cmake", QStringList() << "-S" << "." << "-B" << "./build");
921+
CMainWindow* wnd = dynamic_cast<CMainWindow*>(QApplication::activeWindow());
922+
if (wnd == nullptr) return;
923+
924+
QString sdkPath = "-DCMAKE_PREFIX_PATH=" + wnd->GetSDKPath();
925+
926+
start("cmake", QStringList() << "-S" << "." << "-B" << "./build" << sdkPath);
921927
}
922928

923929
CBuildPluginProcess::CBuildPluginProcess(QObject* parent) : CPluginProcess(parent)

FEBioStudio/plugin_templates.h

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -72,20 +72,7 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
7272
"Debug" "Release" "MinSizeRel" "RelWithDebInfo")
7373
endif()
7474
75-
# Find FEBio Libs
76-
set(FEBIO_LIBS "")
77-
set(FEBIO_DEBUG_LIBS "")
78-
79-
foreach(name IN LISTS FEBIO_LIB_NAMES)
80-
find_library(TEMP NAMES ${name} PATHS "$(PLUGIN_SDK_LIBS)Release")
81-
list(APPEND FEBIO_LIBS ${TEMP})
82-
unset(TEMP CACHE)
83-
84-
find_library(TEMP NAMES ${name} PATHS "$(PLUGIN_SDK_LIBS)Debug")
85-
list(APPEND FEBIO_DEBUG_LIBS ${TEMP})
86-
unset(TEMP CACHE)
87-
endforeach(name)
88-
75+
find_package(FEBio REQUIRED)
8976
9077
##### Set definitions and compile options #####
9178
if(WIN32)
@@ -102,22 +89,14 @@ else()
10289
set(CMAKE_BUILD_RPATH $ORIGIN/../lib/)
10390
endif()
10491
105-
# Set include directory
106-
include_directories($(PLUGIN_SDK_INCLUDE))
107-
10892
# Add library
10993
add_library($(PLUGIN_NAME) SHARED $(CLASS_NAME).h $(CLASS_NAME).cpp main.cpp)
11094
set_property(DIRECTORY PROPERTY VS_STARTUP_PROJECT $(PLUGIN_NAME))
11195
11296
# Link FEBio Libraries
113-
foreach(name IN LISTS FEBIO_LIBS)
114-
target_link_libraries($(PLUGIN_NAME) optimized ${name})
115-
endforeach()
116-
117-
foreach(name IN LISTS FEBIO_DEBUG_LIBS)
118-
target_link_libraries($(PLUGIN_NAME) debug ${name})
97+
foreach(name IN LISTS FEBIO_LIB_NAMES)
98+
target_link_libraries($(PLUGIN_NAME) FEBio::${name})
11999
endforeach()
120-
121100
)delim";
122101

123102
// This defines the main.cpp file, which registers feature classes.

FEBioStudio/ui_createplugin.cpp

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -564,13 +564,6 @@ bool GeneratePluginFiles(const PluginConfig& config)
564564
}
565565
else
566566
{
567-
// get the SDK paths
568-
QString SDKInc = config.sdkInc;
569-
QString SDKLib = config.sdkLib;
570-
SDKInc.replace("\\", "/");
571-
SDKLib.replace("\\", "/");
572-
if (SDKLib.last(1) != "/") SDKLib += "/";
573-
574567
QString febioLibs = "";
575568
for(auto lib : config.febioLibs)
576569
{
@@ -580,8 +573,6 @@ bool GeneratePluginFiles(const PluginConfig& config)
580573
QString cmakeText = cmakecomment + QString(szcmake);
581574
cmakeText = cmakeText.replace("$(PLUGIN_NAME)", config.name);
582575
cmakeText = cmakeText.replace("$(CLASS_NAME)", config.className);
583-
cmakeText = cmakeText.replace("$(PLUGIN_SDK_INCLUDE)", SDKInc);
584-
cmakeText = cmakeText.replace("$(PLUGIN_SDK_LIBS)", SDKLib);
585576
cmakeText = cmakeText.replace("$(FEBIO_LIB_NAMES)", febioLibs);
586577
if (!GenerateFile(config.cmakeFile, cmakeText)) return false;
587578
}

FEBioStudio/ui_createplugin.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,6 @@ struct PluginConfig
151151
QString headerTxt;
152152
QString sourceTxt;
153153

154-
QString sdkInc;
155-
QString sdkLib;
156154
QStringList febioLibs;
157155
};
158156

FEBioStudio/ui_mainwindow.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -233,8 +233,7 @@ struct FBS_SETTINGS
233233
bool loadFEBioConfigFile; // load the FEBio config file on startup
234234
QString febioConfigFileName; // the path to the default FEBio config file
235235

236-
QString FEBioSDKInc; // path to FEBio SDK includes
237-
QString FEBioSDKLib; // path to FEBio SDK libraries
236+
QString FEBioSDKPath; // path to FEBio SDK
238237
QString createPluginPath; // default path to FEBio plugins
239238

240239
bool clearUndoOnSave; // clear the undo stack on save

0 commit comments

Comments
 (0)