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