Skip to content

add symengine dep#4686

Draft
shivadbhavsar wants to merge 2 commits intodevelopfrom
build_symengine
Draft

add symengine dep#4686
shivadbhavsar wants to merge 2 commits intodevelopfrom
build_symengine

Conversation

@shivadbhavsar
Copy link
Contributor

@shivadbhavsar shivadbhavsar commented Mar 18, 2026

Motivation

testing symengine build with boost

Technical Details

Boost release tarball: The boostorg/boost GitHub repo uses git submodules for every library (multiprecision, config, core, mpl, etc.). When cget downloads a package via owner/repo@tag, GitHub generates the tarball from the repo tree at that tag but does not include submodule contents — so every library directory would be empty. The boost-X.Y.Z-cmake.tar.gz release archives are specially packaged with all library sources bundled together, which is why we need the release tarball. This archive format has only been available since Boost 1.85.0.

SymEngine commit pin: SymEngine v0.14.0 (the latest release) hardcodes -std=c++11 in CMAKE_CXX_FLAGS in its CMakeLists.txt. Boost >= 1.85 requires C++14 for its math/multiprecision headers (std::decay_t, std::enable_if_t, etc.). Since SymEngine's hardcoded flag overrides any CMAKE_CXX_STANDARD we pass, the build fails with clang. This was fixed on master in PR #2134 (merged as c670a74, Feb 12 2026), which replaced the hardcoded -std=c++11 with the modern CMake approach target_compile_features(cxx_std_11). This sets C++11 as a minimum rather than forcing it, so our -DCMAKE_CXX_STANDARD=17 is properly respected. Once SymEngine cuts a new release (v0.15.0+), we can switch back to a version tag.

Changelog Category

Add a CHANGELOG.md entry for any option other than Not Applicable

    • Added: New functionality.
    • Changed: Changes to existing functionality.
    • Removed: Functionality or support that has been removed. (Compared to a previous release)
    • Optimized: Component performance that has been optimized or improved.
    • Resolved Issues: Known issues from a previous version that have been resolved.
    • Not Applicable: This PR is not to be included in the changelog.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants