|
|
|
add_rules("mode.debug", "mode.release")
|
|
|
|
add_rules("utils.install.cmake_importfiles")
|
|
|
|
set_languages("cxx14")
|
|
|
|
|
|
|
|
option("dx9", {showmenu = true, default = false})
|
|
|
|
option("dx10", {showmenu = true, default = false})
|
|
|
|
option("dx11", {showmenu = true, default = false})
|
|
|
|
option("dx12", {showmenu = true, default = false})
|
|
|
|
option("glfw", {showmenu = true, default = false})
|
|
|
|
option("opengl2", {showmenu = true, default = false})
|
|
|
|
option("opengl3", {showmenu = true, default = false})
|
|
|
|
option("glad", {showmenu = true, default = false})
|
|
|
|
option("sdl2", {showmenu = true, default = false})
|
|
|
|
option("sdl2_renderer", {showmenu = true, default = false})
|
|
|
|
option("vulkan", {showmenu = true, default = false})
|
|
|
|
option("win32", {showmenu = true, default = false})
|
|
|
|
option("wgpu", {showmenu = true, default = false})
|
|
|
|
option("freetype", {showmenu = true, default = false})
|
|
|
|
option("user_config", {showmenu = true, default = nil, type = "string"})
|
|
|
|
option("wchar32", {showmenu = true, default = false})
|
|
|
|
|
|
|
|
if has_config("glfw") then
|
|
|
|
add_requires("glfw")
|
|
|
|
end
|
|
|
|
|
|
|
|
if has_config("glad") then
|
|
|
|
add_requires("glad")
|
|
|
|
end
|
|
|
|
|
|
|
|
if has_config("sdl2_renderer") then
|
|
|
|
add_requires("libsdl >=2.0.17")
|
|
|
|
elseif has_config("sdl2") then
|
|
|
|
add_requires("libsdl")
|
|
|
|
end
|
|
|
|
|
|
|
|
if has_config("vulkan") then
|
|
|
|
add_requires("vulkansdk")
|
|
|
|
end
|
|
|
|
|
|
|
|
if has_config("wgpu") then
|
|
|
|
add_requires("wgpu-native")
|
|
|
|
end
|
|
|
|
|
|
|
|
if has_config("freetype") then
|
|
|
|
add_requires("freetype")
|
|
|
|
end
|
|
|
|
|
|
|
|
target("imgui")
|
|
|
|
set_kind("$(kind)")
|
|
|
|
add_files("*.cpp", "misc/cpp/*.cpp")
|
|
|
|
add_headerfiles("*.h", "(misc/cpp/*.h)")
|
|
|
|
add_includedirs(".", "misc/cpp")
|
|
|
|
|
|
|
|
if is_kind("shared") and is_plat("windows", "mingw") then
|
|
|
|
add_defines("IMGUI_API=__declspec(dllexport)")
|
|
|
|
end
|
|
|
|
|
|
|
|
if has_config("dx9") then
|
|
|
|
add_files("backends/imgui_impl_dx9.cpp")
|
|
|
|
add_headerfiles("(backends/imgui_impl_dx9.h)")
|
|
|
|
end
|
|
|
|
|
|
|
|
if has_config("dx10") then
|
|
|
|
add_files("backends/imgui_impl_dx10.cpp")
|
|
|
|
add_headerfiles("(backends/imgui_impl_dx10.h)")
|
|
|
|
end
|
|
|
|
|
|
|
|
if has_config("dx11") then
|
|
|
|
add_files("backends/imgui_impl_dx11.cpp")
|
|
|
|
add_headerfiles("(backends/imgui_impl_dx11.h)")
|
|
|
|
end
|
|
|
|
|
|
|
|
if has_config("dx12") then
|
|
|
|
add_files("backends/imgui_impl_dx12.cpp")
|
|
|
|
add_headerfiles("(backends/imgui_impl_dx12.h)")
|
|
|
|
end
|
|
|
|
|
|
|
|
if has_config("glfw") then
|
|
|
|
add_files("backends/imgui_impl_glfw.cpp")
|
|
|
|
add_headerfiles("(backends/imgui_impl_glfw.h)")
|
|
|
|
add_packages("glfw")
|
|
|
|
end
|
|
|
|
|
|
|
|
if has_config("opengl2") then
|
|
|
|
add_files("backends/imgui_impl_opengl2.cpp")
|
|
|
|
add_headerfiles("(backends/imgui_impl_opengl2.h)")
|
|
|
|
end
|
|
|
|
|
|
|
|
if has_config("opengl3") then
|
|
|
|
add_files("backends/imgui_impl_opengl3.cpp")
|
|
|
|
add_headerfiles("(backends/imgui_impl_opengl3.h)")
|
|
|
|
if has_config("glad") then
|
|
|
|
add_defines("IMGUI_IMPL_OPENGL_LOADER_GLAD")
|
|
|
|
add_packages("glad")
|
|
|
|
else
|
|
|
|
add_headerfiles("(backends/imgui_impl_opengl3_loader.h)")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
if has_config("sdl2") then
|
|
|
|
if os.exists("backends/imgui_impl_sdl2.cpp") then
|
|
|
|
add_files("backends/imgui_impl_sdl2.cpp")
|
|
|
|
add_headerfiles("(backends/imgui_impl_sdl2.h)")
|
|
|
|
else
|
|
|
|
add_files("backends/imgui_impl_sdl.cpp")
|
|
|
|
add_headerfiles("(backends/imgui_impl_sdl.h)")
|
|
|
|
end
|
|
|
|
add_packages("libsdl")
|
|
|
|
end
|
|
|
|
|
|
|
|
if has_config("sdl2_renderer") then
|
|
|
|
if os.exists("backends/imgui_impl_sdlrenderer2.cpp") then
|
|
|
|
add_files("backends/imgui_impl_sdlrenderer2.cpp")
|
|
|
|
add_headerfiles("(backends/imgui_impl_sdlrenderer2.h)")
|
|
|
|
else
|
|
|
|
add_files("backends/imgui_impl_sdlrenderer.cpp")
|
|
|
|
add_headerfiles("(backends/imgui_impl_sdlrenderer.h)")
|
|
|
|
end
|
|
|
|
add_packages("libsdl")
|
|
|
|
end
|
|
|
|
|
|
|
|
if has_config("vulkan") then
|
|
|
|
add_files("backends/imgui_impl_vulkan.cpp")
|
|
|
|
add_headerfiles("(backends/imgui_impl_vulkan.h)")
|
|
|
|
add_packages("vulkansdk")
|
|
|
|
end
|
|
|
|
|
|
|
|
if has_config("win32") then
|
|
|
|
add_files("backends/imgui_impl_win32.cpp")
|
|
|
|
add_headerfiles("(backends/imgui_impl_win32.h)")
|
|
|
|
end
|
|
|
|
|
|
|
|
if has_config("wgpu") then
|
|
|
|
add_files("backends/imgui_impl_wgpu.cpp")
|
|
|
|
add_headerfiles("(backends/imgui_impl_wgpu.h)")
|
|
|
|
add_packages("wgpu-native")
|
|
|
|
end
|
|
|
|
|
|
|
|
if has_config("freetype") then
|
|
|
|
add_files("misc/freetype/imgui_freetype.cpp")
|
|
|
|
add_headerfiles("misc/freetype/imgui_freetype.h")
|
|
|
|
add_packages("freetype")
|
|
|
|
add_defines("IMGUI_ENABLE_FREETYPE")
|
|
|
|
end
|
|
|
|
|
|
|
|
if has_config("user_config") then
|
|
|
|
local user_config = get_config("user_config")
|
|
|
|
add_defines("IMGUI_USER_CONFIG=\"".. user_config .."\"")
|
|
|
|
end
|
|
|
|
|
|
|
|
if has_config("wchar32") then
|
|
|
|
add_defines("IMGUI_USE_WCHAR32")
|
|
|
|
end
|
|
|
|
|
|
|
|
after_install(function (target)
|
|
|
|
local config_file = path.join(target:installdir(), "include/imconfig.h")
|
|
|
|
if has_config("wchar32") then
|
|
|
|
io.gsub(config_file, "//#define IMGUI_USE_WCHAR32", "#define IMGUI_USE_WCHAR32")
|
|
|
|
end
|
|
|
|
if has_config("freetype") then
|
|
|
|
io.gsub(config_file, "//#define IMGUI_ENABLE_FREETYPE", "#define IMGUI_ENABLE_FREETYPE")
|
|
|
|
end
|
|
|
|
end)
|