premake project setup, cant build windows
This commit is contained in:
98
premake5.lua
Normal file
98
premake5.lua
Normal file
@@ -0,0 +1,98 @@
|
||||
workspace("HardCompound")
|
||||
architecture("x64")
|
||||
startproject("HardCompound")
|
||||
|
||||
configurations({ "Debug", "Release" })
|
||||
|
||||
-- Variable definitions
|
||||
SRCDIR = "src"
|
||||
VENDOR = "vendor"
|
||||
BUILD = "build"
|
||||
|
||||
project("HardCompound")
|
||||
kind("ConsoleApp")
|
||||
language("C++")
|
||||
cppdialect("C++20")
|
||||
staticruntime("on") -- Helps avoid missing DLL errors on Windows
|
||||
|
||||
targetdir(BUILD .. "/bin/%{cfg.buildcfg}")
|
||||
objdir(BUILD .. "/obj/%{cfg.buildcfg}")
|
||||
|
||||
-- 1. Source Files
|
||||
files({
|
||||
-- Your Source Code
|
||||
path.join(SRCDIR, "**.h"),
|
||||
path.join(SRCDIR, "**.cpp"),
|
||||
|
||||
-- GLAD (Still C, works fine in C++ project)
|
||||
path.join(VENDOR, "glad/src/glad.c"),
|
||||
|
||||
-- ImGui Core
|
||||
path.join(VENDOR, "imgui/imgui.cpp"),
|
||||
path.join(VENDOR, "imgui/imgui_draw.cpp"),
|
||||
path.join(VENDOR, "imgui/imgui_tables.cpp"),
|
||||
path.join(VENDOR, "imgui/imgui_widgets.cpp"),
|
||||
-- path.join(VENDOR, "imgui/imgui_demo.cpp"), -- Good for testing
|
||||
|
||||
-- ImGui Backends (CRITICAL: Connects ImGui to GLFW/OpenGL)
|
||||
path.join(VENDOR, "imgui/backends/imgui_impl_glfw.cpp"),
|
||||
path.join(VENDOR, "imgui/backends/imgui_impl_opengl3.cpp"),
|
||||
|
||||
-- ImPlot
|
||||
path.join(VENDOR, "implot/implot.cpp"),
|
||||
path.join(VENDOR, "implot/implot_items.cpp"),
|
||||
-- path.join(VENDOR, "implot/implot_demo.cpp"),
|
||||
})
|
||||
|
||||
-- 2. Include Directories
|
||||
includedirs({
|
||||
SRCDIR,
|
||||
path.join(VENDOR, "glad/include"),
|
||||
path.join(VENDOR, "glfw/include"),
|
||||
path.join(VENDOR, "duckdb/include"),
|
||||
path.join(VENDOR, "mariadb/include"),
|
||||
path.join(VENDOR, "imgui"), -- For imgui.h
|
||||
path.join(VENDOR, "imgui/backends"), -- For imgui_impl_glfw.h
|
||||
path.join(VENDOR, "implot"), -- For implot.h
|
||||
})
|
||||
|
||||
-- 3. Configuration Filters
|
||||
filter("configurations:Debug")
|
||||
defines({ "DEBUG" })
|
||||
symbols("On")
|
||||
|
||||
filter("configurations:Release")
|
||||
defines({ "NDEBUG" })
|
||||
optimize("On")
|
||||
|
||||
-- 4. Linux Linking
|
||||
filter("system:linux")
|
||||
defines({ "PLATFORM_LINUX" })
|
||||
links({ "glfw", "duckdb", "dl", "pthread", "m" })
|
||||
linkoptions({ "`pkg-config --libs libmariadb`" })
|
||||
buildoptions({ "`pkg-config --cflags libmariadb`" })
|
||||
|
||||
-- 5. Windows Linking (MinGW Cross-Compile)
|
||||
filter("system:windows")
|
||||
defines({ "PLATFORM_WINDOWS" })
|
||||
|
||||
-- Ensure these paths exist and contain the .lib / .dll files
|
||||
libdirs({
|
||||
path.join(VENDOR, "glfw/lib"),
|
||||
path.join(VENDOR, "duckdb/lib"),
|
||||
path.join(VENDOR, "mariadb/lib"),
|
||||
})
|
||||
|
||||
links({
|
||||
"glfw3", -- Looks for libglfw3.a
|
||||
"duckdb", -- Looks for duckdb.lib / libduckdb.a
|
||||
"libmariadb", -- Looks for libmariadb.lib
|
||||
"ws2_32",
|
||||
"gdi32",
|
||||
"opengl32",
|
||||
"shlwapi",
|
||||
"crypt32",
|
||||
"secur32",
|
||||
"dwmapi",
|
||||
"winmm",
|
||||
})
|
||||
Reference in New Issue
Block a user