[IQTree] new recipe for v3.1.2#13787
Open
danvinci wants to merge 7 commits into
Open
Conversation
Member
|
Have you tried upstreaming the patches? We usually prefer not carrying huge patches alongside the recipes, if possible. |
Contributor
Author
|
I opened this PR on a whim as it would have closed #7097, but that issue is old and I'm unsure about downstream Julia users that would actually benefit from this _jll + having this as an addition in the general registry. Thinking of just saving the patches for now - do you think all of them are worth up-streaming? |
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.
Adds a builder for IQ-TREE, maximum-likelihood phylogenetic inference. The JLL ships the
iqtree3executable.Resolves #7097, bumped to v3.1.2 (the active
iqtree3upstream).Build notes:
lsd2andcmapleare git submodules ofiqtree3. Fetched as separateGitSources and relocated in the script. Upstream ships only platform-binary release archives, not source tarballs.x86_64andaarch64. Upstream doesn't support 32-bit and hardcodes-msse3/-mavx/-mfmaon any non-ARM target, sopowerpc64leandriscv64fail invectorclassandpll. Matches upstream's release matrix (Linux/macOS x86_64+ARM, Windows x86_64).julia_compatset to1.10.Zlib_jllpinned to1.2.13andCompilerSupportLibraries_jllto1.0.5, matching what Julia 1.10 ships as stdlib. Older Julia bundles an incompatibleZlib_jll, which would silently breakPkg.addat install time.aarch64-unknown-freebsddropped: Julia 1.10-1.12 stdlibZlib_jll(1.2.13+1, 1.3.1+0) has no aarch64-freebsd binary.bundled/patches/:openmp-find-package.patch: bundledlib/libomp.ais glibc-only on Linux (references__sysconf, fails on musl), andlibmac/libomp.areferences___chkstk_darwinon x86_64 macOS, which BB's clang-rt doesn't ship. Switched both branches tofind_package(OpenMP): libgomp viaCompilerSupportLibraries_jllon Linux, libomp viaLLVMOpenMP_jllon macOS/FreeBSD. (aarch64 macOS isn't affected by chkstk_darwin.)cmaple-openmp-find-package.patch: cmaple ships its own bundled libomp.a chain, separate from iqtree3's. Same fix, applied tocmaple/CMakeLists.txt.respect-cross-compile-osx-arch.patch: upstream usesuname -mon the build host forOSX_NATIVE_ARCHITECTURE, which returnsx86_64under BB cross-compile from Linux and breaksaarch64-apple-darwin. ReadsCMAKE_OSX_ARCHITECTURESfirst.cmaple-disable-lto.patch: cmaple turns on LTO unconditionally on macOS / Linux x86_64 / FreeBSD. Archive link fails on cross-toolchains withoutllvm-ar.-march/-mcpuscrubbed across allCMakeLists.txt(BB rejects forced microarchitecture flags; iqtree3 hardcodes them in three places).COMMAND copyin iqtree3's Windows post-build steps replaced withCOMMAND ${CMAKE_COMMAND} -E copy. The Windows shellcopyisn't available in the mingw cross-compile sandbox.._*files on macOS hosts that trip CMake compiler detection; no-op on Linux CI.