/CMakeWrapper.jl

Build CMake packages from Julia

Primary LanguageJuliaOtherNOASSERTION

CMakeWrapper

CI codecov.io

This package provides a BinDeps.jl-compatible CMakeProcess class for automatically building CMake dependencies.

A modern version of CMake is installed using the CMake.jl package; you can use that package instead if you just want to run cmake by itself without using BinDeps.

Installation

julia> Pkg.add("CMakeWrapper")

Usage

You can declare a CMakeProcess similarly to the way you would use the Autotools provider in BinDeps.jl. In your deps/build.jl file, this would look like:

provides(Sources,
    URI(source_url),
    dependency_name)

provides(BuildProcess, CMakeProcess(),
         dependency_name)

where source_url and dependency_name are set elsewhere in your build.jl.

You can also pass raw cmake options directly with the cmake_args flag:

provides(BuildProcess, CMakeProcess(cmake_args=["-DCMAKE_BUILD_TYPE=Debug"]),
         dependency_name)

If the high-level provider doesn't work for you, you can also use the lower-level CMakeBuild, analogous to the AutotoolsDependency in BinDeps.jl:

CMakeBuild(srcdir=source_dir,  # where the CMakeLists.txt resides in your source
           builddir=build_dir,  # where the cmake build outputs should go
           prefix=install_prefix,  # desired install prefix
           libtarget=[library_name],  # name of the library being built
           installed_libpath=[path_to_intalled_library],  # expected installed library path
           cmake_args=[],  # additional cmake arguments
           targetname="install")  # build target to run (default: "install")