該系列教程源自youtube的cherno的視頻-GAME ENGINE series!
視頻地址: https://www.youtube.com/watch?v=vtWdgtMo1T4
引擎源代碼地址: https://github.com/TheCherno/Hazel
主要內容簡介:
將使用第三方構建工具premake: https://github.com/premake/premake-core來自動生成平臺項目文件
在premake: https://github.com/premake/premake-core/releases/tag/v5.0.0-alpha15下載最新版本 premake-5.0.0-alpha15-windows.zip
將premake-5.0.0-alpha15-windows.zip解壓到 項目根目錄/vendor/bin/premake/下
在項目根目錄下 新建文本文件 命名為premake5.lua
premake5.lua
workspace "Hazel" --解決方案名稱
architecture "x86_64" --編譯平臺 只編64位--(x86,x86_64,ARM)
configurations
{
"Debug",
"Release",
"Dist"
}
--臨時變量 定義 輸出目錄
--詳細的所有支持的tokens 可參考 [https://github.com/premake/premake-core/wiki/Tokens]
outputdir = "%{cfg.buildcfg}-%{cfg.system}-%{cfg.architecture}"
project "Hazel" --項目名稱
location "Hazel" --相對路徑
kind "SharedLib" --表明該項目是dll動態(tài)庫
language "c++"
targetdir ("bin/" .. outputdir .. "/%{prj.name}")--輸出目錄
objdir ("bin-int/" .. outputdir .. "/%{prj.name}")--中間臨時文件的目錄
files--該項目的文件
{
"%{prj.name}/src/**.h",
"%{prj.name}/src/**.cpp"
}
includedirs--附加包含目錄
{
"%{prj.name}/vendor/spdlog/include"
}
filter "system:windows"--windows平臺的配置
cppdialect "c++17"
staticruntime "On"
systemversion "latest"
defines --預編譯宏
{
"HZ_BUILD_DLL",
"HZ_PLATFORM_WINDOWS",
"_WINDLL",
"_UNICODE",
"UNICODE",
}
postbuildcommands -- build后的自定義命令
{
("{COPY} %{cfg.buildtarget.relpath} ../bin/" .. outputdir .. "/Sandbox") --拷貝引擎dll庫到sanbox.exe的同一目錄下去
}
filter "configurations:Debug"
defines "HZ_DEBUG"
runtime "Debug"
symbols "on"
filter "configurations:Release"
defines "HZ_RELEASE"
runtime "Release"
optimize "on"
filter "configurations:Dist"
defines "HZ_DIST"
runtime "Release"
optimize "on"
project "Sandbox"
location "Sandbox"
kind "ConsoleApp"
language "c++"
targetdir ("bin/" .. outputdir .. "/%{prj.name}")
objdir ("bin-int/" .. outputdir .. "/%{prj.name}")
files
{
"%{prj.name}/src/**.h",
"%{prj.name}/src/**.cpp"
}
includedirs
{
"Hazel/vendor/spdlog/include",
"Hazel/src"
}
links
{
"Hazel"
}
filter "system:windows"
cppdialect "c++17"
staticruntime "On"
systemversion "latest"
defines
{
"HZ_PLATFORM_WINDOWS",
"_UNICODE",
"UNICODE",
}
filter "configurations:Debug"
defines "HZ_DEBUG"
runtime "Debug"
symbols "on"
filter "configurations:Release"
defines "HZ_RELEASE"
runtime "Release"
optimize "on"
filter "configurations:Dist"
defines "HZ_DIST"
runtime "Release"
optimize "on"
在項目根目錄下 新建文本文件 命名為GenerateProjects.bat
GenerateProjects.bat
call vendor\bin\premake\premake5.exe vs2019
pause
雙擊執(zhí)行GenerateProjects.bat即可 自動生成工程
打開vs build工程伴嗡,注意第一遍可能由于目錄還沒生成 導致自定義的拷貝dll命令失敗兴枯, 重新執(zhí)行一次即可