xmake.lua (48 lines of code) (raw):

add_rules("mode.debug", "mode.release") set_languages("c++20") add_requires("gtest") if is_plat("linux") then add_requires("libaio") add_syslinks("pthread") add_cxxflags("-stdlib=libstdc++") else add_defines("ASYNC_SIMPLE_HAS_NOT_AIO", "ASYNC_SIMPLE_MODULES_HAS_NOT_UTHREAD") end target("async_simple") set_kind("static") add_files("modules/async_simple.cppm") add_files("async_simple/executors/SimpleExecutor.cpp") add_includedirs(".") add_packages("libaio", {public = true}) target("async_simple_coro_test") add_deps("async_simple") add_files("async_simple/coro/test/*.cpp", "async_simple/test/dotest.cpp") add_defines("USE_MODULES") add_includedirs(".") add_packages("gtest") if is_plat("windows") then remove_files("async_simple/coro/test/LazyTest.cpp") end target("async_simple_test") add_deps("async_simple") add_files("async_simple/test/*.cpp") add_defines("USE_MODULES") add_includedirs(".") add_packages("gtest") if is_plat("windows") then remove_files("async_simple/test/FutureTest.cpp") end target("CountChar") add_deps("async_simple") add_files("demo_example/CountChar.cpp") add_defines("USE_MODULES") if is_plat("windows") then set_enabled(false) end target("ReadFiles") add_deps("async_simple") add_files("demo_example/ReadFiles.cpp") add_defines("USE_MODULES") if is_plat("windows") then set_enabled(false) end