package An official xmake package repository https://xrepo.xmake.io/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

94 lines
3.0 KiB

add_rules("mode.debug", "mode.release")
set_languages("cxx11")
option("glfw", {showmenu = true, default = false})
option("opengl2", {showmenu = true, default = false})
option("opengl3", {showmenu = true, default = false})
option("sdl2", {showmenu = true, default = false})
option("vulkan", {showmenu = true, default = false})
option("freetype", {showmenu = true, default = false})
option("wchar32", {showmenu = true, default = false})
if has_config("glfw") then
add_requires("glfw")
end
if has_config("sdl2") then
add_requires("libsdl")
end
if has_config("vulkan") then
add_requires("vulkansdk")
end
if has_config("freetype") then
add_requires("freetype")
end
target("cimgui")
set_kind("$(kind)")
add_files("cimgui.cpp", "imgui/*.cpp")
add_includedirs("imgui")
add_headerfiles("cimgui.h", "generator/output/cimgui_impl.h")
add_defines("IMGUI_DISABLE_OBSOLETE_FUNCTIONS=1")
if is_kind("static") then
add_defines("IMGUI_IMPL_API=extern \"C\" ")
else
add_defines("IMGUI_IMPL_API=extern \"C\" __declspec(dllexport)")
end
if has_config("glfw") then
add_files("imgui/backends/imgui_impl_glfw.cpp")
add_headerfiles("imgui/(backends/imgui_impl_glfw.h)")
add_packages("glfw")
end
if has_config("opengl2") then
add_files("imgui/backends/imgui_impl_opengl2.cpp")
add_headerfiles("imgui/(backends/imgui_impl_opengl2.h)")
end
if has_config("opengl3") then
add_files("imgui/backends/imgui_impl_opengl3.cpp")
add_headerfiles("imgui/(backends/imgui_impl_opengl3.h)")
add_headerfiles("imgui/(backends/imgui_impl_opengl3_loader.h)")
end
if has_config("sdl2") then
if os.exists("imgui/backends/imgui_impl_sdl2.cpp") then
add_files("imgui/backends/imgui_impl_sdl2.cpp")
add_headerfiles("imgui/(backends/imgui_impl_sdl2.h)")
else
add_files("imgui/backends/imgui_impl_sdl.cpp")
add_headerfiles("imgui/(backends/imgui_impl_sdl.h)")
end
add_packages("libsdl")
end
if has_config("vulkan") then
add_files("imgui/backends/imgui_impl_vulkan.cpp")
add_headerfiles("imgui/(backends/imgui_impl_vulkan.h)")
add_packages("vulkansdk")
end
if has_config("freetype") then
add_files("imgui/misc/freetype/imgui_freetype.cpp")
add_headerfiles("imgui/misc/freetype/imgui_freetype.h")
add_packages("freetype")
add_defines("IMGUI_ENABLE_FREETYPE")
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)