92 lines
1.9 KiB
Lua
92 lines
1.9 KiB
Lua
set_project("lae_strings")
|
|
set_version("1.0.0")
|
|
|
|
set_languages("c11")
|
|
|
|
add_rules("mode.debug", "mode.release")
|
|
|
|
-- Export compile_commands.json
|
|
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
|
|
-- =========================================================
|
|
|
|
add_requires("cmocka", { optional = true })
|
|
add_requires("lae_allocator 1.0.0")
|
|
|
|
-- =========================================================
|
|
-- Library
|
|
-- =========================================================
|
|
|
|
target("lae_strings")
|
|
set_kind("static")
|
|
|
|
add_packages("lae_allocator")
|
|
|
|
add_files("src/lae_strings.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_files("src/main.c")
|
|
|
|
add_deps("lae_strings")
|
|
end
|
|
|
|
-- =========================================================
|
|
-- Tests
|
|
-- =========================================================
|
|
|
|
if has_config("tests") then
|
|
target("test_string")
|
|
set_kind("binary")
|
|
|
|
add_files("test/test_string.c")
|
|
|
|
add_deps("lae_strings")
|
|
|
|
add_packages("cmocka")
|
|
add_packages("lae_allocator")
|
|
|
|
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
|