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.

For detailed package management tutorials, see Using Official Packages. For package description APIs, see Package Dependencies API.

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")