4 Commits

Author SHA1 Message Date
7ab0d21ba1 fix(cpp_args): properly propegate args
previously Cpp args were set with add_project_argument, which does not work from subprojects. Changed this so args can be set from calling projects
2026-02-03 11:20:21 -05:00
917d416ce2 fix(build-check): ! -> not
fix broken check for subproject
2026-02-03 08:11:23 -05:00
1cdd2d92e0 fix(degfined_engine_view): removed broken logs
some old log statements reference a member no longer present, removed these
2026-02-03 08:02:09 -05:00
4423d7594c fix(build-check): only add global arguments when not a subproject
This is needd to let gridfire work as a subproject
2026-02-03 07:52:24 -05:00
10 changed files with 52 additions and 29 deletions

View File

@@ -33,7 +33,7 @@ else
endif
if get_option('openmp_support')
add_project_arguments('-DGF_USE_OPENMP', language: 'cpp')
gridfire_args += ['-DGF_USE_OPENMP']
endif
if get_option('asan') and get_option('buildtype') != 'debug' and get_option('buildtype') != 'debugoptimized'

View File

@@ -5,8 +5,10 @@ cc = meson.get_compiler('c')
ignore_unused_args = '-Wno-unused-command-line-argument'
add_global_arguments(ignore_unused_args, language: 'cpp')
add_global_arguments(ignore_unused_args, language: 'c')
if not meson.is_subproject()
add_global_arguments(ignore_unused_args, language: 'cpp')
add_global_arguments(ignore_unused_args, language: 'c')
endif
subdir('CPPC')

View File

@@ -34,3 +34,10 @@ cppad_dep = declare_dependency(
link_with: libcppad_static,
include_directories: cppad_incs
)
message('Installing CppAD headers to ' + get_option('includedir'))
install_subdir(
'subprojects/CppAD-20250000.2/include',
install_dir: get_option('includedir'),
strip_directory: true
)

View File

@@ -29,4 +29,4 @@ elif (llevel == 'critical')
endif
log_argument = '-DQUILL_COMPILE_ACTIVE_LOG_LEVEL=' + log_argument
add_project_arguments(log_argument, language: 'cpp')
gridfire_args += [log_argument]

View File

@@ -9,7 +9,11 @@ if get_option('pkg_config')
libgridfire,
libcomposition,
libconst,
liblogging
liblogging,
libcppad_static,
libcvode_static,
libkinsol_static
],
subdirs: ['gridfire'],
filebase: 'gridfire',

View File

@@ -18,7 +18,9 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# *********************************************************************** #
project('GridFire', ['c', 'cpp'], version: 'v0.7.6rc3.1', default_options: ['cpp_std=c++23'], meson_version: '>=1.5.0')
project('GridFire', ['c', 'cpp'], version: 'v0.7.6rc3.4', default_options: ['cpp_std=c++23'], meson_version: '>=1.5.0')
gridfire_args = []
# Start by running the code which validates the build environment
subdir('build-check')

View File

@@ -0,0 +1,26 @@
#pragma once
#include <format>
namespace gridfire {
struct version {
static constexpr int major = #STRINGIFY(GF_VERSION_MAJOR);
static constexpr int minor = #STRINGIFY(GF_VERSION_MINOR);
static constexpr int patch = #STRINGIFY(GF_VERSION_PATCH);
static constexpr const char* tag = #STRINGIFY(GF_VERSION_TAG);
};
}
template <>
struct std::formatter<gridfire::version> : std::formatter<std::string> {
auto format(const gridfire::version& v, auto& ctx) {
std::string versionStr = std::to_string(v.major) + "." +
std::to_string(v.minor) + "." +
std::to_string(v.patch);
if (std::string(v.tag) != "") {
versionStr += "-" + std::string(v.tag);
}
return std::formatter<std::string>::format(versionStr, ctx);
}
};

View File

View File

@@ -415,29 +415,6 @@ namespace gridfire::engine {
}
state->active_reactions.add_reaction(*reaction);
}
LOG_TRACE_L3(m_logger, "DefinedEngineView built with {} active species and {} active reactions.", m_activeSpecies.size(), m_activeReactions.size());
LOG_TRACE_L3(m_logger, "Active species: {}", [this]() -> std::string {
std::string result;
for (const auto& species : m_activeSpecies) {
result += std::string(species.name()) + ", ";
}
if (!result.empty()) {
result.pop_back(); // Remove last space
result.pop_back(); // Remove last comma
}
return result;
}());
LOG_TRACE_L3(m_logger, "Active reactions: {}", [this]() -> std::string {
std::string result;
for (const auto& reaction : m_activeReactions) {
result += std::string(reaction->id()) + ", ";
}
if (!result.empty()) {
result.pop_back(); // Remove last space
result.pop_back(); // Remove last comma
}
return result;
}());
state->species_index_map = constructSpeciesIndexMap(ctx);
state->reaction_index_map = constructReactionIndexMap(ctx);
}

View File

@@ -1,4 +1,6 @@
# Define the library
subdir('include/gridfire/utils') # Generate the version header file first
gridfire_sources = files(
'lib/engine/engine_graph.cpp',
'lib/engine/views/engine_adaptive.cpp',
@@ -63,6 +65,7 @@ if get_option('build_python')
gridfire_sources,
include_directories: include_directories('include'),
dependencies: gridfire_build_dependencies,
cpp_args: gridfire_args,
objects: [cvode_objs, kinsol_objs],
install : false)
else
@@ -71,6 +74,7 @@ else
include_directories: include_directories('include'),
dependencies: gridfire_build_dependencies,
objects: [cvode_objs, kinsol_objs],
cpp_args: gridfire_args,
install : true)
endif
@@ -79,6 +83,7 @@ gridfire_dep = declare_dependency(
link_with: libgridfire,
sources: gridfire_sources,
dependencies: gridfire_build_dependencies,
compile_args: gridfire_args,
)
install_subdir('include/gridfire', install_dir: get_option('includedir'))