Compare commits
No commits in common. "master" and "v0.3" have entirely different histories.
|
@ -9,7 +9,8 @@
|
||||||
],
|
],
|
||||||
"compilerPath": "C:/MinGW/bin/g++.exe",
|
"compilerPath": "C:/MinGW/bin/g++.exe",
|
||||||
"cStandard": "c11",
|
"cStandard": "c11",
|
||||||
"cppStandard": "c++11"
|
"cppStandard": "c++11",
|
||||||
|
"intelliSenseMode": "gcc-x86"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"version": 4
|
"version": 4
|
||||||
|
|
|
@ -2,13 +2,62 @@
|
||||||
"tasks": [
|
"tasks": [
|
||||||
{
|
{
|
||||||
"type": "cppbuild",
|
"type": "cppbuild",
|
||||||
"label": "C/C++: make сборка",
|
"label": "C/C++: g++.exe сборка активного файла",
|
||||||
"command": "make",
|
"command": "C:/MinGW/bin/g++.exe",
|
||||||
"args": [
|
"args": [
|
||||||
"${input:target}"
|
"-fdiagnostics-color=always",
|
||||||
|
"${workspaceRoot}/src/*.cpp",
|
||||||
|
"${workspaceRoot}/../dependencies/glad/src/glad.c",
|
||||||
|
|
||||||
|
"-I${workspaceRoot}/include",
|
||||||
|
|
||||||
|
"--std=c++11",
|
||||||
|
|
||||||
|
"-I${workspaceRoot}/../dependencies/GLFW/include",
|
||||||
|
"-L${workspaceRoot}/../dependencies/GLFW/lib-mingw",
|
||||||
|
"-I${workspaceFolder}/../dependencies/glad/include",
|
||||||
|
"-static",
|
||||||
|
"-lopengl32",
|
||||||
|
"-lglfw3dll",
|
||||||
|
"-o",
|
||||||
|
"${workspaceRoot}/${workspaceFolderBasename}.exe"
|
||||||
],
|
],
|
||||||
"options": {
|
"options": {
|
||||||
"cwd": "${workspaceRoot}"
|
"cwd": "${fileDirname}"
|
||||||
|
},
|
||||||
|
"problemMatcher": [
|
||||||
|
"$gcc"
|
||||||
|
],
|
||||||
|
"group": {
|
||||||
|
"kind": "build",
|
||||||
|
"isDefault": true
|
||||||
|
},
|
||||||
|
"detail": "Задача создана отладчиком."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "cppbuild",
|
||||||
|
"label": "C/C++ x64: g++.exe сборка активного файла",
|
||||||
|
"command": "C:/MinGW64/bin/g++.exe",
|
||||||
|
"args": [
|
||||||
|
"-fdiagnostics-color=always",
|
||||||
|
"${workspaceRoot}/src/*.cpp",
|
||||||
|
"${workspaceRoot}/../dependencies/glad/src/glad.c",
|
||||||
|
|
||||||
|
"-I${workspaceRoot}/include",
|
||||||
|
|
||||||
|
"--std=c++11",
|
||||||
|
|
||||||
|
"-I${workspaceRoot}/../dependencies/GLFW/include",
|
||||||
|
"-L${workspaceRoot}/../dependencies/GLFW/lib-mingw-w64",
|
||||||
|
"-I${workspaceFolder}/../dependencies/glad/include",
|
||||||
|
"-static",
|
||||||
|
"-lopengl32",
|
||||||
|
"-lglfw3dll",
|
||||||
|
"-o",
|
||||||
|
"${workspaceRoot}/${workspaceFolderBasename}.exe"
|
||||||
|
],
|
||||||
|
"options": {
|
||||||
|
"cwd": "${fileDirname}"
|
||||||
},
|
},
|
||||||
"problemMatcher": [
|
"problemMatcher": [
|
||||||
"$gcc"
|
"$gcc"
|
||||||
|
@ -20,13 +69,5 @@
|
||||||
"detail": "Задача создана отладчиком."
|
"detail": "Задача создана отладчиком."
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"id": "target",
|
|
||||||
"description": "Цель сборки (all, list, clean)",
|
|
||||||
"default": "all",
|
|
||||||
"type": "promptString"
|
|
||||||
},
|
|
||||||
],
|
|
||||||
"version": "2.0.0"
|
"version": "2.0.0"
|
||||||
}
|
}
|
98
Makefile
98
Makefile
|
@ -1,98 +0,0 @@
|
||||||
# Компилятор и директория проекта
|
|
||||||
ifeq ($(OS), Windows_NT)
|
|
||||||
# С возможностью сборки x32
|
|
||||||
ifeq ($(MAKECMDGOALS), x32)
|
|
||||||
CC = C:/MinGW/bin/g++.exe
|
|
||||||
else
|
|
||||||
CC = C:/MinGW64/bin/g++.exe
|
|
||||||
endif
|
|
||||||
PROJECT_DIR = $(shell echo %cd%)
|
|
||||||
PATH_SEPARATOR = \\
|
|
||||||
# Имя исполняемого файла
|
|
||||||
EXECUTABLE = $(notdir $(strip $(PROJECT_DIR))).exe
|
|
||||||
else
|
|
||||||
CC = g++
|
|
||||||
PROJECT_DIR = $(shell pwd)
|
|
||||||
PATH_SEPARATOR = /
|
|
||||||
# Имя исполняемого файла
|
|
||||||
EXECUTABLE = $(notdir $(strip $(PROJECT_DIR)))
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Опции компилятора
|
|
||||||
CFLAGS += -c
|
|
||||||
CFLAGS += -I./include
|
|
||||||
CFLAGS += -I../dependencies/GLFW/include
|
|
||||||
CFLAGS += -I../dependencies/glad/include
|
|
||||||
|
|
||||||
# Опции линкера
|
|
||||||
LDFLAGS += --std=c++11
|
|
||||||
# Архитектурозависимые опции линкера
|
|
||||||
ifeq ($(OS), Windows_NT)
|
|
||||||
# GLFW в зависимости от архитектуры
|
|
||||||
ifeq ($(MAKECMDGOALS), x32)
|
|
||||||
LDFLAGS += -L../dependencies/GLFW/lib-mingw
|
|
||||||
else
|
|
||||||
LDFLAGS += -L../dependencies/GLFW/lib-mingw-w64
|
|
||||||
endif
|
|
||||||
|
|
||||||
LDFLAGS += -static
|
|
||||||
LDFLAGS += -lglfw3dll
|
|
||||||
LDFLAGS += -lopengl32
|
|
||||||
else
|
|
||||||
LDFLAGS += -lglfw
|
|
||||||
LDFLAGS += -lGL
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Библиотека GLAD
|
|
||||||
GLAD := ../dependencies/glad/src/glad.c
|
|
||||||
GLAD_O := $(GLAD:.c=.o)
|
|
||||||
|
|
||||||
# Файлы из директории src
|
|
||||||
SOURCES_C = $(wildcard src/*.c)
|
|
||||||
SOURCES_CPP = $(wildcard src/*.cpp)
|
|
||||||
|
|
||||||
# Директория с объектными файлами
|
|
||||||
OBJ_DIR := Obj
|
|
||||||
# Объектные файлы
|
|
||||||
OBJECTS = $(addprefix $(OBJ_DIR)/,$(SOURCES_C:src/%.c=%.o) $(SOURCES_CPP:src/%.cpp=%.o))
|
|
||||||
|
|
||||||
# Для x32 сборки под Windows
|
|
||||||
ifeq ($(OS), Windows_NT)
|
|
||||||
ifeq ($(MAKECMDGOALS), x32)
|
|
||||||
x32: all
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Цель по умолчанию, зависит от EXECUTABLE
|
|
||||||
all: $(EXECUTABLE)
|
|
||||||
|
|
||||||
# Цель сборки исполняемого файла, зависит от OBJ_DIR, OBJECTS и GLAD_O
|
|
||||||
$(EXECUTABLE): $(OBJ_DIR) $(OBJECTS) $(GLAD_O)
|
|
||||||
$(CC) $(OBJECTS) $(GLAD_O) $(LDFLAGS) -o $@
|
|
||||||
|
|
||||||
# Цель для сборки GLAD
|
|
||||||
$(GLAD_O): $(GLAD)
|
|
||||||
$(CC) $(CFLAGS) $< -o $@
|
|
||||||
|
|
||||||
# Цель для создания директории с объектными файлами
|
|
||||||
$(OBJ_DIR):
|
|
||||||
@mkdir $(OBJ_DIR)
|
|
||||||
|
|
||||||
# Цель сборки объектных файлов
|
|
||||||
$(OBJ_DIR)/%.o: src/%.c
|
|
||||||
$(CC) $(CFLAGS) $< -o $@
|
|
||||||
$(OBJ_DIR)/%.o: src/%.cpp
|
|
||||||
$(CC) $(CFLAGS) $< -o $@
|
|
||||||
|
|
||||||
# Цель вывода всех файлов, учавствтующих в сборке
|
|
||||||
list:
|
|
||||||
@echo "В сборке участвуют:" $(OBJECTS)
|
|
||||||
|
|
||||||
# Очистка
|
|
||||||
ifeq ($(OS), Windows_NT)
|
|
||||||
clean: $(OBJ_DIR)
|
|
||||||
@rmdir /s /q $(OBJ_DIR)
|
|
||||||
else
|
|
||||||
clean: $(OBJ_DIR)
|
|
||||||
@rm -f $(EXECUTABLE) $(OBJECTS)
|
|
||||||
endif
|
|
Loading…
Reference in New Issue