vulkan游戏引擎的makefile启动环境实现

1.makefile.engine.windows.mak

DIR := (subst /,\\,{CURDIR})

BUILD_DIR := bin

OBJ_DIR := obj

ASSEMBLY := engine

EXTENSION := .dll

COMPILER_FLAGS := -g -MD -Werror=vla -fdeclspec #-fPIC

INCLUDE_FLAGS := -Iengine\src -I$(VULKAN_SDK)\include

LINKER_FLAGS := -g -shared -luser32 -lvulkan-1 -L(VULKAN_SDK)\\Lib -L(OBJ_DIR)\engine

DEFINES := -D_DEBUG -DKEXPORT -D_CRT_SECURE_NO_WARNINGS

#Make does not offer((

rwildcard = (wildcard 12) (foreach d,(wildcard 1*),(call rwildcard,d/,$2))

SRC_FILES := (call rwildcard,(ASSEMBLY)/,*.c)

DIRECTORIES := \(ASSEMBLY)\\src (subst (DIR),,(shell dir $(ASSEMBLY)\src /S /AD /B | findstr /i src))

OBJ_FILES := (SRC_FILES:%=(OBJ_DIR)/%.o)

all: scaffold compile link

.PHONY: scaffold

scaffold:#create build directory

@echo Scaffold folder structure...

-@setlocal enableextensions enabledelayedexpansion && mkdir (addprefix (OBJ_DIR),$(DIRECTORIES)) 2>NUL || cd .

-@setlocal enableextensions enabledelayedexpansion && mkdir $(BUILD_DIR) 2>NUL || cd .

@echo Done.

.PHONY:link

link: scaffold $(OBJ_FILES)

@echo Linking $(ASSEMBLY)...

@clang (OBJ_FILES) -o (BUILD_DIR)/(ASSEMBLY)(EXTENSION) $(LINKER_FLAGS)

.PHONY: compile

compile:

@echo Compiling...

.PHONY: clean

clean:

if exist (BUILD_DIR)\\(ASSEMBLY)(EXTENSION) del (BUILD_DIR)\(ASSEMBLY)(EXTENSION)

rmdir /s /q (OBJ_DIR)\\(ASSEMBLY)

$(OBJ_DIR)/%.c.o: %.c

@echo $<...

@clang \< (COMPILER_FLAGS) -c -o @ (DEFINES) $(INCLUDE_FLAGS)

相关推荐
枫景Maple9 小时前
Shader开发(六)什么是着色器
游戏引擎·着色器
向宇it11 小时前
【unity小技巧】封装unity适合2D3D进行鼠标射线检测,获取鼠标位置信息检测工具类
游戏·3d·unity·游戏引擎
年少无知且疯狂17 小时前
【Unity】实现小地图
unity·游戏引擎
AA陈超17 小时前
虚幻引擎5 GAS开发俯视角RPG游戏 #06-11:游戏后效果执行
c++·游戏·ue5·游戏引擎·虚幻
徐子竣21 小时前
[学习记录]Unity-Shader-常量缓冲区(CBUFFER)
学习·unity·游戏引擎
大飞pkz21 小时前
【Unity】Application类常见路径
unity·游戏引擎·游戏开发·application常用路径·数据路径·数据存储位置
向宇it21 小时前
【unity小技巧】封装一套 Unity 的植物生长系统
游戏·unity·c#·游戏引擎
死也不注释1 天前
【在Unity游戏开发中Dictionary、List介绍】
数据结构·游戏·unity·游戏引擎·list·游戏程序
沧海归城2 天前
Unity_XR控制手部动画
unity·游戏引擎·xr
惊鸿醉2 天前
⭐ Unity 异步加载PPT页面 并 首帧无卡顿显示
unity·游戏引擎·powerpoint