newoption { trigger = "with-gtk3nfd", description = "Build with native file dialog support(GTK3 required. Linux only)" } newoption { trigger = "asan", description = "Enable Address Sanitizer(gcc5+ ang clang only)" } sources = { "stbi-impl.cc", "main.cc", "render.cc", "render-config.cc", "obj-loader.cc", "gltf-loader.cc", "matrix.cc", "../common/trackball.cc", "../common/imgui/imgui.cpp", "../common/imgui/imgui_draw.cpp", "../common/imgui/imgui_impl_btgui.cpp", "../common/imgui/ImGuizmo.cpp", } solution "NanoSGSolution" configurations { "Release", "Debug" } if os.is("Windows") then platforms { "x64", "x32" } else platforms { "native", "x64", "x32" } end -- RootDir for OpenGLWindow projectRootDir = os.getcwd() .. "/../common/" dofile ("../common/findOpenGLGlewGlut.lua") initOpenGL() initGlew() -- Use c++11 flags { "c++11" } -- A project defines one build target project "viwewer" kind "ConsoleApp" language "C++" files { sources } includedirs { "./", "../../" } includedirs { "../common" } includedirs { "../common/imgui" } includedirs { "../common/glm" } --includedirs { "../common/nativefiledialog/src/include" } if _OPTIONS['asan'] then buildoptions { "-fsanitize=address" } linkoptions { "-fsanitize=address" } end if os.is("Windows") then warnings "Extra" -- /W4 defines { "NOMINMAX" } defines { "USE_NATIVEFILEDIALOG" } buildoptions { "/W4" } -- raise compile error level. files{ "../common/OpenGLWindow/Win32OpenGLWindow.cpp", "../common/OpenGLWindow/Win32OpenGLWindow.h", "../common/OpenGLWindow/Win32Window.cpp", "../common/OpenGLWindow/Win32Window.h", } includedirs { "./../common/nativefiledialog/src/include" } files { "../common/nativefiledialog/src/nfd_common.c", "../common/nativefiledialog/src/nfd_win.cpp" } end if os.is("Linux") then files { "../common/OpenGLWindow/X11OpenGLWindow.cpp", "../common/OpenGLWindow/X11OpenGLWindows.h" } links {"X11", "pthread", "dl"} if _OPTIONS["with-gtk3nfd"] then defines { "USE_NATIVEFILEDIALOG" } includedirs { "./../common/nativefiledialog/src/include" } files { "../common/nativefiledialog/src/nfd_gtk.c", "../common/nativefiledialog/src/nfd_common.c" } buildoptions { "`pkg-config --cflags gtk+-3.0`" } linkoptions { "`pkg-config --libs gtk+-3.0`" } end end if os.is("MacOSX") then defines { "USE_NATIVEFILEDIALOG" } links {"Cocoa.framework"} files { "../common/OpenGLWindow/MacOpenGLWindow.h", "../common/OpenGLWindow/MacOpenGLWindow.mm", } includedirs { "./../common/nativefiledialog/src/include" } files { "../common/nativefiledialog/src/nfd_cocoa.m", "../common/nativefiledialog/src/nfd_common.c" } end configuration "Debug" defines { "DEBUG" } -- -DDEBUG symbols "On" targetname "view_debug" configuration "Release" -- defines { "NDEBUG" } -- -NDEBUG symbols "On" optimize "On" targetname "view"