emmakeをVisual Studio Codeで使うメモ
Visual Studio Codeで、emmakeを使う用のメモです。
Makefile: 同一ディレクトリの.cと.cppをコンパイル。binフォルダに出力。WebAssembly出力。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
OBJ_DIR = ./obj BIN_DIR = ./bin TARGET = $(BIN_DIR)/test.html ifeq ($(RELEASE),1) OPT = -O2 endif CFLAGS = $(OPT) CPPFLAGS = $(OPT) -std=gnu++11 -s FULL_ES2=1 -s USE_GLFW=3 -s WASM=1 DEFS = -D_UNICODE -DGLEW_STATIC #INCDIR = -I./ SRCS := $(wildcard *.cpp) SRCSC := $(wildcard *.c) OBJS = $(addprefix $(OBJ_DIR)/, $(SRCS:.cpp=.o)) OBJCS = $(addprefix $(OBJ_DIR)/, $(SRCSC:.c=.o)) all: $(TARGET) $(TARGET): $(OBJS) @if [ ! -d $(dir $@) ]; then mkdir -p $(dir $@); fi $(CXX) $(CPPFLAGS) $(OBJS) -o $(TARGET) $(OBJ_DIR)/%.o: %.cpp @if [ ! -d $(dir $@) ]; then mkdir -p $(dir $@); fi $(CXX) $(CPPFLAGS) $(DEFS) $(INCDIR) -c $< -o $@ $(OBJ_DIR)/%.o: %.c @if [ ! -d $(dir $@) ]; then mkdir -p $(dir $@); fi $(CC) $(CFLAGS) -c $< -o $@ .PHONY: clean clean: $(RM) *~ $(TARGET) $(OBJS) $(OBJCS) |
tasks.json。cleanとreleaseにも対応。(Ctrl+P → task cleanでクリーン)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "0.1.0", "command": "emmake", "isShellCommand": true, "args": [ "make" ], "showOutput": "always", "tasks": [ { "taskName": "-j8", "isBuildCommand": true }, { "taskName": "RELEASE=1", "args": [ "-j8" ] }, { "taskName": "clean" } ] } |