Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[iqtree] builder request #7097

Open
M-PERSIC opened this issue Jul 23, 2023 · 0 comments
Open

[iqtree] builder request #7097

M-PERSIC opened this issue Jul 23, 2023 · 0 comments
Labels
builder request 🙏 Request for a new builder

Comments

@M-PERSIC
Copy link
Contributor

M-PERSIC commented Jul 23, 2023

  • Name: iqtree v2
  • Version: 2.2.2 (c692c2dcc1939ce93162cf60d4dcb070db1817cd)
  • Source: https://github.com/iqtree/iqtree2.git
  • Language(s): C++, C
  • Build System(s): CMake
  • Depends: Eigen (JLL available: yes), Boost (yes), Zlib (yes)
  • Depends (optional): CompilerSupportLibraries (non-BSD platforms, JLL available: yes), LLVMOpenMP (BSD, yes) for OpenMP support
  • Purpose: Potential use for BioJulia applications
  • Description: "Efficient and versatile phylogenomic software by maximum likelihood"

I took a stab at it, however my build keeps getting interrupted by an undefined reference to GlobalMemoryStatusEx error after buliding the kernelsse target.

My build recipe (focused on targeting Linux):

# Note that this script can accept some limited command-line arguments, run
# `julia build_tarballs.jl --help` to see a usage message
using BinaryBuilder, Pkg

name = "iqtree"
version = v"2.2.2"

# Collection of sources required to complete build
sources = [
    GitSource("https://github.com/iqtree/iqtree2.git", "c692c2dcc1939ce93162cf60d4dcb070db1817cd"),
]

# Bash recipe for building across all platforms
script = raw"""
cd $WORKSPACE/srcdir/iqtree2
# git submodule update --init --recursive
install_license LICENSE
mkdir build
cd build
cmake -DUSE_LSD2=OFF \
      -DEIGEN3_INCLUDE_DIR=${includedir} \
      -DCMAKE_INSTALL_PREFIX=${prefix} \
      -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TARGET_TOOLCHAIN} \
      -DCMAKE_BUILD_TYPE=Release \
      -G "Unix Makefiles" ..
make -j${nproc}
make install
"""

# These are the platforms we will build for by default, unless further
# platforms are passed in on the command line
platforms = expand_cxxstring_abis(supported_platforms())

# The products that we will ensure are always built
products = [
	ExecutableProduct("iqtree2", :iqtree2)
]

# Dependencies that must be installed before this package can be built
dependencies = [
	BuildDependency(PackageSpec(; name = "Eigen_jll", uuid = "bc6bbf8a-a594-5541-9c57-10b0d0312c70")),
    Dependency(PackageSpec(; name = "boost_jll", uuid = "28df3c45-c428-5900-9ff8-a3135698ca75")),
	Dependency(PackageSpec(; name = "Zlib_jll", uuid = "83775a58-1f1d-513f-b197-d71354ab007a")),
    # For OpenMP we use libomp from `LLVMOpenMP_jll` where we use LLVM as compiler (BSD
    # systems), and libgomp from `CompilerSupportLibraries_jll` everywhere else.
    Dependency(PackageSpec(; name = "CompilerSupportLibraries_jll", uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae"); platforms = filter(!Sys.isbsd, platforms)),
    Dependency(PackageSpec(; name = "LLVMOpenMP_jll", uuid="1d63c593-3942-5779-bab2-d838dc0a180e"); platforms = filter(Sys.isbsd, platforms)),
]

# Build the tarballs, and possibly a `build.jl` as well
build_tarballs(ARGS, name, version, sources, script, platforms, products, dependencies; julia_compat="1.6", preferred_gcc_version=v"10")
@giordano giordano added the builder request 🙏 Request for a new builder label Jul 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
builder request 🙏 Request for a new builder
Projects
None yet
Development

No branches or pull requests

2 participants