Files
ArrayList/xmake.lua

95 lines
2.0 KiB
Lua

set_project("lae_arraylist")
set_version("1.0.0")
set_languages("c11")
add_rules("mode.debug", "mode.release")
-- clang compile commands
add_rules("plugin.compile_commands.autoupdate")
-- =========================================================
-- Options
-- =========================================================
option("tests")
set_default(false)
set_showmenu(true)
option_end()
option("example")
set_default(false)
set_showmenu(true)
option_end()
option("asan")
set_default(false)
set_showmenu(true)
option_end()
-- =========================================================
-- Packages
-- =========================================================
-- Run xmake repo --add lae-repo https://laentropia-homelab.tail7368da.ts.net/laentropia/xmake-repo.git
-- to add my repo :)
add_requires("cmocka", { optional = true }) -- For tests
add_requires("lae_allocator")
-- =========================================================
-- Library
-- =========================================================
target("lae_arraylist")
set_kind("static")
add_packages("lae_allocator", { public = true })
add_files("src/lae_arraylist.c")
add_headerfiles("include/*.h")
add_includedirs("include", { public = true })
if is_mode("debug") then
add_cflags("-Wall", "-Wextra", "-Wpedantic")
end
-- =========================================================
-- Example executable
-- =========================================================
if has_config("example") then
target("example")
set_kind("binary")
add_deps("lae_arraylist")
add_packages("lae_allocator")
add_files("src/main.c")
end
-- =========================================================
-- Tests
-- =========================================================
if has_config("tests") then
target("test_arraylist")
set_kind("binary")
add_files("test/test_arraylist.c")
add_deps("lae_arraylist")
add_packages("cmocka")
add_tests("default")
if has_config("asan") then
add_cflags("-fsanitize=address", "-fno-omit-frame-pointer", { force = true })
add_ldflags("-fsanitize=address", { force = true })
end
end