Skip to content

Package Management

Xmake provides a powerful package management system that allows you to easily install and use third-party libraries.

For more detailed documentation, please refer to Add Packages.

Use Fmt

EXPLORER
src
main.cpp
xmake.lua
Lua xmake.lua
12345678
add_rules("mode.debug", "mode.release")

add_requires("fmt")

target("test")
    set_kind("binary")
    add_files("src/*.cpp")
    add_packages("fmt")

Use Boost

EXPLORER
src
main.cpp
xmake.lua
Lua xmake.lua
12345678
add_rules("mode.debug", "mode.release")

add_requires("boost")

target("test")
    set_kind("binary")
    add_files("src/*.cpp")
    add_packages("boost")

Use OpenSSL

EXPLORER
src
main.c
xmake.lua
Lua xmake.lua
12345678
add_rules("mode.debug", "mode.release")

add_requires("openssl")

target("test")
    set_kind("binary")
    add_files("src/*.c")
    add_packages("openssl")

Specify Version

We can also specify the version of the package we want to use. By default, xmake uses the latest available version of a package. You can specify a semantic version constraint to require a specific version.

EXPLORER
src
main.c
xmake.lua
Lua xmake.lua
12345678
add_rules("mode.debug", "mode.release")

add_requires("zlib 1.3.1")

target("test")
    set_kind("binary")
    add_files("src/*.c")
    add_packages("zlib")

Use Shared Library

We can also configure the package to use shared libraries. Some packages support building as shared libraries. You can enable this by passing {configs = {shared = true}} to add_requires.

EXPLORER
src
main.cpp
xmake.lua
Lua xmake.lua
12345678
add_rules("mode.debug", "mode.release")

add_requires("gflags", {configs = {shared = true}})

target("test")
    set_kind("binary")
    add_files("src/*.cpp")
    add_packages("gflags")