-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
86 lines (78 loc) · 1.91 KB
/
Makefile
File metadata and controls
86 lines (78 loc) · 1.91 KB
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
PROJECT_NAME := Ryswick
CMAKE := cmake
UNAME_S := $(shell uname -s)
GENERATOR ?=
BUILD_TYPE ?= Debug
ifeq ($(UNAME_S),Darwin)
ifeq ($(GENERATOR),)
GENERATOR := Ninja
endif
ifeq ($(GENERATOR),Xcode)
BUILD_DIR := build/xcode
else
BUILD_DIR := build/ninja
endif
VCPKG_ROOT := $(HOME)/vcpkg
else
GENERATOR := Visual Studio 17 2022
BUILD_DIR := build/vs
VCPKG_ROOT := C:/Users/dev/vcpkg
endif
VCPKG_TOOLCHAIN := $(VCPKG_ROOT)/scripts/buildsystems/vcpkg.cmake
.PHONY: all configure build-debug build-release clean reconfigure
all: build-debug
configure:
ifeq ($(UNAME_S),Darwin)
$(CMAKE) -S . -B $(BUILD_DIR) \
-G "$(GENERATOR)" \
-DCMAKE_TOOLCHAIN_FILE=$(VCPKG_TOOLCHAIN) \
$(if $(filter Ninja,$(GENERATOR)),-DCMAKE_BUILD_TYPE=$(BUILD_TYPE),)
else
$(CMAKE) -S . -B $(BUILD_DIR) \
-G "$(GENERATOR)" \
-DCMAKE_TOOLCHAIN_FILE=$(VCPKG_TOOLCHAIN)
endif
build-debug: configure
ifeq ($(UNAME_S),Darwin)
ifeq ($(GENERATOR),Xcode)
$(CMAKE) --build $(BUILD_DIR) --config Debug
else
$(CMAKE) --build $(BUILD_DIR)
endif
else
$(CMAKE) --build $(BUILD_DIR) --config Debug
endif
build-release:
ifeq ($(UNAME_S),Darwin)
ifeq ($(GENERATOR),Xcode)
$(CMAKE) --build $(BUILD_DIR) --config Release
else
$(CMAKE) -S . -B $(BUILD_DIR) \
-G "$(GENERATOR)" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_TOOLCHAIN_FILE=$(VCPKG_TOOLCHAIN)
$(CMAKE) --build $(BUILD_DIR)
endif
else
$(CMAKE) --build $(BUILD_DIR) --config Release
endif
run-debug: build-debug
ifeq ($(UNAME_S),Darwin)
ifeq ($(GENERATOR),Xcode)
$(BUILD_DIR)/bin/Debug/$(PROJECT_NAME)
else
$(BUILD_DIR)/bin/Debug/$(PROJECT_NAME)
endif
else
$(BUILD_DIR)/bin/Debug/$(PROJECT_NAME).exe
endif
run-release: build-release
ifeq ($(UNAME_S),Darwin)
ifeq ($(GENERATOR),Xcode)
$(BUILD_DIR)/bin/Release/$(PROJECT_NAME)
else
$(BUILD_DIR)/bin/Release/$(PROJECT_NAME)
endif
else
$(BUILD_DIR)/bin/Release/$(PROJECT_NAME).exe
endif