Remove submodule fallback support from Meson build#2084
Remove submodule fallback support from Meson build#2084
Conversation
|
Sorry for the noise guys, this is just an experiment 😄 But I want to see how it runs, so please don't close! |
Co-authored-by: bryanwweber <4396228+bryanwweber@users.noreply.github.com>
|
@copilot since Meson has support for building CMake projects, it may make sense to leverage that rather than writing custom |
- Configure config.h generation with proper defines - Create symlinks for ext dependencies (fmt, yaml-cpp, Eigen) - Build yaml-cpp from ext/ submodule - Use system Eigen3, Boost - Use header-only fmt from ext/ - Fix compiler flags for GCC - Build progresses to ~117/192 targets before hitting SUNDIALS requirement Co-authored-by: bryanwweber <4396228+bryanwweber@users.noreply.github.com>
- Add MESON_BUILD.md with usage instructions - Add symlinks for ext dependencies in include/cantera/ext/ - Document workaround for fmt join.h compatibility Co-authored-by: bryanwweber <4396228+bryanwweber@users.noreply.github.com>
- Use find command with Meson run_command to auto-discover .cpp files - Remove manual listing of 150+ source files in src/meson.build - Auto-discover yaml-cpp source files instead of listing them - Update documentation to explain glob pattern approach - Follows SCons multi_glob pattern for automatic source discovery Co-authored-by: bryanwweber <4396228+bryanwweber@users.noreply.github.com>
Done! Refactored in commit f363fa1: Automatic source discovery: Now uses yaml-cpp: Initially tried using Meson's CMake integration, but it had issues with symlinked subprojects (warnings about sources being "inside root project but not inside subproject"). Instead, now auto-discovers all .cpp files from The build is much more maintainable now - adding/removing source files no longer requires meson.build updates. |
|
@copilot edit the CI jobs so that they use Meson instead of SCons |
The Meson build is not yet complete enough to replace SCons in CI. Current limitations: What Meson can build:
What's missing for CI:
Would you like me to:
Option 1 would let us test Meson progress without breaking existing CI. |
|
@copilot option 1, then highest priority is sundials support. You didn't need to have a fallback for sundials if it makes progress faster or easier |
- Add new 'meson-build' job in CI workflow - Runs on ubuntu-24.04 with system dependencies - Tests Meson build configuration and compilation - Reports build status (partial or complete) - Runs in parallel with existing SCons jobs - Update MESON_BUILD.md to clarify SUNDIALS requirement Co-authored-by: bryanwweber <4396228+bryanwweber@users.noreply.github.com>
- Update meson.build to require all dependencies as system packages: * Eigen3, fmt, yaml-cpp, SUNDIALS now required (no fallbacks) * HighFive optional but system-only (no fallback) * Remove all ext/ submodule checks and fallback logic * Simplify config.h generation (all system flags set to 1) * Clean up summary output - Update CI workflow: * Remove submodule checkout (submodules: false) * Remove submodule initialization step * Remove fmt join.h symlink creation * Keep system package installation - Update MESON_BUILD.md: * Remove all submodule references and instructions * Document all dependencies as system-required * Add installation commands for Ubuntu, macOS, Fedora * Update build steps (no submodule init needed) * Update limitations and contributing sections This simplifies the build by requiring system package managers instead of maintaining complex fallback logic for bundled dependencies. Co-authored-by: bryanwweber <4396228+bryanwweber@users.noreply.github.com>
Plan: Add Python/Cython Interface to Meson Build
Phase 1: Understanding Current Setup
Phase 2: Add Python Module Support to Meson
Phase 3: CI Integration
Phase 4: Documentation
Current Status
Starting Phase 2 - Adding Python module support to Meson build system.
Approach
Using Meson's Python module support to:
Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.