target('utfcpp') set_kind("headeronly") set_group("thirdparty") add_headerfiles("utfcpp/**.h") add_includedirs("utfcpp/source", {public=true}) target('oodle') set_kind('headeronly') set_group("thirdparty") add_includedirs("Oodle/include", {public=true}) if is_os("windows") then add_linkdirs("Oodle/lib/Win64", {public=true}) add_links("oo2core_win64", {public=true}) elseif is_os("linux") then add_linkdirs("Oodle/lib/Linux_x64", {public=true}) add_links("oo2corelinux64", {public=true}) add_syslinks("pthread", {public=true}) elseif is_os("macosx") then add_linkdirs("Oodle/lib/Mac_x64", {public=true}) add_links("oo2coremac64", {public=true}) end target('timesinceprocessstart') set_kind('headeronly') set_group('thirdparty') add_includedirs("GetTimeSinceProcessStart", {public=true}) add_headerfiles("GetTimeSinceProcessStart/**.h") target('ue-trace') set_kind('headeronly') set_group('thirdparty') add_includedirs("trace", {public=true}) add_headerfiles("trace/**.h") target('rpmalloc') set_kind("static") set_group('thirdparty') set_languages("c17", "cxx20") if is_os("windows") then add_cflags("/experimental:c11atomics", {force=true}) end add_defines("RPMALLOC_FIRST_CLASS_HEAPS=1", "ENABLE_STATISTICS=1", "ENABLE_OVERRIDE=0") add_files("rpmalloc/rpmalloc.c") add_headerfiles("rpmalloc/**.h") add_includedirs("rpmalloc", {public=true}) target('protozero') set_kind('headeronly') set_group('thirdparty') add_headerfiles("protozero/**.hpp") add_includedirs("protozero/include", {public=true}) target('spdlog') set_kind('headeronly') set_group('thirdparty') add_headerfiles("spdlog/include/spdlog/**.h") add_includedirs("spdlog/include", {public=true}) target('cpr') set_kind('static') set_group('thirdparty') set_languages("cxx20") add_files("cpr/cpr/*.cpp") add_headerfiles("cpr/include/**.h") add_includedirs("cpr/include", {public=true}) if is_os("windows") then add_cxxflags("/wd4668") else add_cxxflags("-Wno-undef") end add_packages("libcurl", {public=true}) target('asio') set_kind('headeronly') set_group('thirdparty') add_defines("ASIO_STANDLONE", "ASIO_HEADER_ONLY", {public=true}) add_headerfiles("asio/asio/include/**.hpp") add_includedirs("asio/asio/include", {public=true}) target("blake3") set_kind("static") set_group('thirdparty') add_files("blake3/c/blake3.c", "blake3/c/blake3_dispatch.c", "blake3/c/blake3_portable.c") add_headerfiles("blake3/c/blake3.h") add_includedirs("blake3/c", {public=true}) if is_os("windows") then add_cflags("/experimental:c11atomics") add_cflags("/wd4245") -- conversion from 'type1' to 'type2', possible loss of data elseif is_os("macosx") then add_cflags("-Wno-unused-function") end if is_arch("x86_64", "x64") then if is_subhost("msys", "cygwin") then add_files("blake3/c/*x86-64_windows_gnu.S") elseif is_plat("windows") then add_files("blake3/c/*x86-64_windows_msvc.asm") else add_files("blake3/c/*x86-64_unix.S") end elseif is_arch("x86", "i386") then add_files("blake3/c/blake3_portable.c") add_files("blake3/c/blake3_sse2.c") add_files("blake3/c/blake3_sse41.c") add_files("blake3/c/blake3_avx2.c") add_files("blake3/c/blake3_avx512.c") elseif is_arch("arm64", "arm64-v8a") then add_files("blake3/c/blake3_neon.c") add_defines("BLAKE3_USE_NEON=1") end target("cxxopts") set_kind("headeronly") set_group("thirdparty") add_headerfiles("cxxopts/include/**.hpp") add_includedirs("cxxopts/include", {public=true}) target("doctest") set_kind("headeronly") set_group("thirdparty") add_headerfiles("doctest/**.h") add_includedirs("doctest", {public=true}) target("sol2") set_kind("headeronly") set_group("thirdparty") add_defines("SOL_INSIDE_UNREAL=0", {public=true}) add_headerfiles("sol2/**.hpp") add_includedirs("sol2", {public=true}) target("robin-map") set_kind("headeronly") set_group("thirdparty") add_headerfiles("robin-map/include/*.h") add_includedirs("robin-map/include", {public=true}) target("fmt") set_kind("static") set_group("thirdparty") add_files("fmt/src/format.cc", "fmt/src/os.cc") add_headerfiles("fmt/include/**.h") add_includedirs("fmt/include", {public=true}) target("ryml") set_kind("static") set_group("thirdparty") add_files("ryml/src/**.cpp") add_files("ryml/ext/c4core/src/c4/*.cpp") add_headerfiles("ryml/ext/c4core/src/**.hpp") add_headerfiles("ryml/src/**.hpp") add_includedirs("ryml/src", {public=true}) add_includedirs("ryml/ext/c4core/src", {public=true}) if is_os("windows") then add_cxxflags("/wd4668") -- 'symbol' : undefined macro is treated as '0' in '#if/#elif' preprocessor directives else add_cxxflags("-Wno-unused-but-set-variable", "-Wno-undef") end