155 lines
4.1 KiB
Lua
155 lines
4.1 KiB
Lua
newoption {
|
|
trigger = "sdl-include-path",
|
|
value = "path",
|
|
description = "The location of your SDL2 header files"
|
|
}
|
|
|
|
newoption {
|
|
trigger = "sdl-link-path",
|
|
value = "path",
|
|
description = "The location of your SDL2 link libraries"
|
|
}
|
|
|
|
newoption {
|
|
trigger = "use-sdl-framework",
|
|
description = "Use the installed SDL2 framework (on MacOS)"
|
|
}
|
|
|
|
local projectlocation = os.getcwd()
|
|
local gl3wlocation = path.join(os.getcwd(), "dependencies/gl3w")
|
|
local imguilocation = path.join(os.getcwd(), "dependencies/imgui-1.84.2")
|
|
|
|
if _ACTION then
|
|
projectlocation = path.join(projectlocation, "build", _ACTION)
|
|
end
|
|
|
|
function imnodes_example_project(name, example_file)
|
|
project(name)
|
|
location(projectlocation)
|
|
kind "ConsoleApp"
|
|
language "C++"
|
|
cppdialect "C++11"
|
|
targetdir "bin/%{cfg.buildcfg}"
|
|
debugdir "bin/%{cfg.buildcfg}"
|
|
files {"example/main.cpp", path.join("example", example_file) }
|
|
includedirs {
|
|
os.getcwd(),
|
|
imguilocation,
|
|
path.join(gl3wlocation, "include"),
|
|
}
|
|
links { "gl3w", "imgui", "imnodes" }
|
|
|
|
defines { "IMGUI_IMPL_OPENGL_LOADER_GL3W" }
|
|
|
|
if _OPTIONS["sdl-include-path"] then
|
|
includedirs { _OPTIONS["sdl-include-path"] }
|
|
end
|
|
|
|
if _OPTIONS["sdl-link-path"] then
|
|
libdirs { _OPTIONS["sdl-link-path"] }
|
|
|
|
filter "system:macosx"
|
|
links {
|
|
"iconv",
|
|
"AudioToolbox.framework",
|
|
"Carbon.framework",
|
|
"Cocoa.framework",
|
|
"CoreAudio.framework",
|
|
"CoreVideo.framework",
|
|
"ForceFeedback.framework",
|
|
"IOKit.framework"
|
|
}
|
|
filter "*"
|
|
end
|
|
|
|
if _OPTIONS["use-sdl-framework"] then
|
|
includedirs { "/Library/Frameworks/SDL2.framework/Headers" }
|
|
linkoptions { "-F/Library/Frameworks -framework SDL2 -framework CoreFoundation" }
|
|
else
|
|
links { "SDL2" }
|
|
end
|
|
|
|
filter "system:windows"
|
|
defines { "SDL_MAIN_HANDLED" }
|
|
links { "opengl32" }
|
|
if _OPTIONS["sdl-link-path"] then
|
|
postbuildcommands {
|
|
"{COPY} " ..
|
|
path.join(os.getcwd(), _OPTIONS["sdl-link-path"].."/../bin/", "SDL2.dll") ..
|
|
" %{cfg.targetdir}" }
|
|
end
|
|
|
|
filter "system:linux"
|
|
links { "dl" }
|
|
end
|
|
|
|
workspace "imnodes"
|
|
configurations { "Debug", "Release" }
|
|
architecture "x86_64"
|
|
defines { "IMGUI_DISABLE_OBSOLETE_FUNCTIONS" }
|
|
|
|
filter "configurations:Debug"
|
|
symbols "On"
|
|
|
|
filter "configurations:Release"
|
|
defines { "NDEBUG" }
|
|
optimize "On"
|
|
|
|
filter "action:vs*"
|
|
defines { "_CRT_SECURE_NO_WARNINGS" }
|
|
|
|
warnings "Extra"
|
|
|
|
startproject "colornode"
|
|
|
|
group "dependencies"
|
|
|
|
project "gl3w"
|
|
location(projectlocation)
|
|
kind "StaticLib"
|
|
language "C"
|
|
targetdir "lib/%{cfg.buildcfg}"
|
|
files { path.join(gl3wlocation, "src/gl3w.c") }
|
|
includedirs { path.join(gl3wlocation, "include") }
|
|
|
|
project "imgui"
|
|
location(projectlocation)
|
|
kind "StaticLib"
|
|
language "C++"
|
|
cppdialect "C++98"
|
|
targetdir "lib/%{cfg.buildcfg}"
|
|
files { path.join(imguilocation, "**.cpp") }
|
|
includedirs {
|
|
imguilocation,
|
|
path.join(gl3wlocation, "include") }
|
|
|
|
if _OPTIONS["sdl-include-path"] then
|
|
includedirs { _OPTIONS["sdl-include-path"] }
|
|
end
|
|
|
|
if _OPTIONS["use-sdl-framework"] then
|
|
includedirs { "/Library/Frameworks/SDL2.framework/Headers" }
|
|
end
|
|
|
|
group "imnodes"
|
|
|
|
project "imnodes"
|
|
location(projectlocation)
|
|
kind "StaticLib"
|
|
language "C++"
|
|
cppdialect "C++98"
|
|
enablewarnings { "all" }
|
|
targetdir "lib/%{cfg.buildcfg}"
|
|
files { "imnodes.h", "imnodes_internal.h", "imnodes.cpp" }
|
|
includedirs { path.join(imguilocation) }
|
|
|
|
group "examples"
|
|
|
|
imnodes_example_project("hello", "hello.cpp")
|
|
|
|
imnodes_example_project("saveload", "save_load.cpp")
|
|
|
|
imnodes_example_project("colornode", "color_node_editor.cpp")
|
|
|
|
imnodes_example_project("multieditor", "multi_editor.cpp")
|