Add libSBML importer and optional GTK4 GUI; refactor build and introduce progress callback; fix delay-structure bugs#5
Draft
rafaelstjf wants to merge 5 commits into
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
stocbionet_corelibrary and conditionally enable libSBML and GTK/libadwaita support.Description
CMakeLists.txtto createstocbionet_core, linkThreads::Threads, and optionally detect and linklibSBMLand GTK/libadwaita to buildStocbionetGui, with informative configure messages.src/sbml/SBMLImporter.hppandsrc/sbml/SBMLImporter.cpp) that conditionally uses libSBML to translate SBML models to the internal STOCBIONET format and addModelintegration viaSBMLImporter::canLoad/load.src/gui/main_gui.cpp) that uses a background thread to run simulations and receives runtime updates via a new progress callback.setProgressCallbacktoLogandSSA, store afunction<void(long double,const double*,int)> progressCallback, and call it fromLog::insertNodeso external code (GUI) can receive streaming data.RejectionMethodconstructor and destructor handling, defensively free arrays withdelete[], ensure defaultchooseStructurecase, and fix bugs/edge cases and resizing logic inCircularList,DelayList,DelayHeap, andDelayHash.README.mdwith documentation for SBML import support and the optional GTK GUI.Testing
stocbionet_coreandStocbionet) on a Linux development environment with libSBML and GTK4/libadwaita available and the build completed successfully.SBMLImporter::canLoadand thatModel::loadModeluses the importer path when applicable, with basic translation of parameters, species and reactions.Codex Task