mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-11-30 05:12:18 -05:00
219804cbe4
* Initial controller hud ui * Reverted fbdemo changes * Moved config to json and implemented controller config * fix build on linux, gitignore new config file * fix build * Fix compilation and file directory paths * Call save on cvar save * Fixed cvar loading and added deck slots to the config * Changed control deck port 0 to use a physical device by default * Added gyro and rumble & fixed loading errors * Save config on toggle menubar * fix linux build * Fixed drift calculation * Controller config now saves when pressing F1 * Removed ExitGame hook from ImGuiImpl * Moved mappings to a map * Added GetKeyName * untranslate scancodes * Fixed hud layout on keyboard device * Fixed keyboard read on hud * Fixed crash when reloading controllers * Removed ConfigFile and changed file extension * Changed Dummy to Disconnected and fixed filters * Removed function leftover * Changed ControllerHud to InputEditor Co-authored-by: briaguya <briaguya@alice> Co-authored-by: David Chavez <david@dcvz.io>
149 lines
3.7 KiB
Makefile
149 lines
3.7 KiB
Makefile
# Only used for standalone compilation, usually inherits these from the main makefile
|
|
|
|
CXX ?= g++
|
|
CC ?= gcc
|
|
AR := ar
|
|
FORMAT := clang-format-11
|
|
UNAME := $(shell uname)
|
|
|
|
ASAN ?= 0
|
|
DEBUG ?= 1
|
|
OPTFLAGS ?= -O0
|
|
LTO ?= 0
|
|
|
|
# flag to save whether the compiler being used is clang or gcc by checking CXX --version
|
|
CXX_IS_CLANG ?= $(shell $(CXX) --version | grep -c clang)
|
|
ifeq ($(CXX_IS_CLANG),1)
|
|
MXX := $(CXX)
|
|
else
|
|
MXX ?= clang++
|
|
endif
|
|
|
|
|
|
WARN := -Wall -Wextra -Werror \
|
|
-Wno-unused-variable \
|
|
-Wno-unused-parameter \
|
|
-Wno-unused-function \
|
|
-Wno-parentheses \
|
|
-Wno-narrowing \
|
|
-Wno-missing-field-initializers \
|
|
-Wno-error=multichar \
|
|
-Wno-unused-command-line-argument \
|
|
-Wno-delete-non-abstract-non-virtual-dtor \
|
|
-Wno-unused-private-field \
|
|
-Wno-deprecated-copy-with-user-provided-copy \
|
|
-Wno-deprecated-declarations \
|
|
-Wno-unknown-warning-option
|
|
|
|
CWARN :=
|
|
CXXWARN := -Wno-deprecated-enum-enum-conversion -Wno-deprecated-copy
|
|
|
|
ifneq ($(CXX_IS_CLANG),1)
|
|
WARN += -Wno-error=stringop-overflow
|
|
CXXWARN += -Wno-error=maybe-uninitialized
|
|
endif
|
|
|
|
CXXFLAGS := $(WARN) $(CXXWARN) -std=c++20 -D_GNU_SOURCE -DENABLE_OPENGL -DSPDLOG_ACTIVE_LEVEL=0
|
|
CFLAGS := $(WARN) $(CWARN) -std=c99 -D_GNU_SOURCE -DENABLE_OPENGL -DSPDLOG_ACTIVE_LEVEL=0
|
|
CPPFLAGS := -MMD
|
|
|
|
MMFLAGS := -Wno-deprecated-declarations -ObjC++ -fobjc-weak -fobjc-arc
|
|
|
|
# if not using clang, ask clang to use gcc standard library
|
|
ifneq ($(CXX_IS_CLANG),1)
|
|
STD_ISYSTEM=$(shell ${CXX} -xc++ -E -v - < /dev/null 2>&1 | grep "> search starts here" -A2 | tail -n 2 | head -n 1)
|
|
CXX_ISYSTEM=$(shell ${CXX} -xc++ -E -v - < /dev/null 2>&1 | grep "> search starts here" -A2 | tail -n 2 | tail -n 1)
|
|
MMFLAGS += -stdlib++-isystem ${STD_ISYSTEM} -cxx-isystem ${CXX_ISYSTEM}
|
|
endif
|
|
|
|
ifeq ($(UNAME), Darwin) #APPLE
|
|
CPPFLAGS += $(shell pkg-config --cflags sdl2 glew) -framework OpenGL -framework Foundation
|
|
endif
|
|
|
|
ifneq ($(DEBUG),0)
|
|
CXXFLAGS += -g -D_DEBUG
|
|
CFLAGS += -g -D_DEBUG
|
|
endif
|
|
|
|
ifneq ($(ASAN),0)
|
|
CXXFLAGS += -fsanitize=address
|
|
CFLAGS += -fsanitize=address
|
|
endif
|
|
|
|
ifneq ($(LTO),0)
|
|
CXXFLAGS += -flto
|
|
CFLAGS += -flto
|
|
endif
|
|
|
|
SRC_DIRS := $(shell find . -type d -not -path "*build*")
|
|
|
|
CXX_FILES := \
|
|
$(shell find libultraship/Factories -name "*.cpp") \
|
|
$(shell find libultraship/Lib/Fast3D -name "*.cpp") \
|
|
$(shell find libultraship -maxdepth 1 -name "*.cpp") \
|
|
$(shell find libultraship/Lib/ImGui -maxdepth 1 -name "*.cpp") \
|
|
$(shell find libultraship/Lib/Mercury -maxdepth 1 -name "*.cpp") \
|
|
libultraship/Lib/ImGui/backends/imgui_impl_opengl3.cpp \
|
|
libultraship/Lib/ImGui/backends/imgui_impl_sdl.cpp \
|
|
libultraship/Lib/StrHash64.cpp \
|
|
libultraship/Lib/tinyxml2/tinyxml2.cpp
|
|
|
|
C_FILES := \
|
|
libultraship/mixer.c \
|
|
libultraship/Lib/stb/stb_impl.c
|
|
|
|
MM_FILES := \
|
|
libultraship/OSXFolderManager.mm
|
|
|
|
FMT_FILES := $(shell find libultraship/ -type f \( -name "*.cpp" -o -name "*.h" \) -a -not -path "libultraship/Lib/*")
|
|
|
|
O_FILES := \
|
|
$(CXX_FILES:%.cpp=build/%.o) \
|
|
$(C_FILES:%.c=build/%.o)
|
|
|
|
ifeq ($(UNAME), Darwin) #APPLE
|
|
O_FILES += $(MM_FILES:%.mm=build/%.o)
|
|
endif
|
|
|
|
D_FILES := $(O_FILES:%.o=%.d)
|
|
|
|
LIB := libultraship.a
|
|
|
|
INC_DIRS := $(addprefix -I, \
|
|
../ZAPDTR/ZAPDUtils \
|
|
libultraship/Lib/Fast3D/U64 \
|
|
libultraship/Lib/spdlog \
|
|
libultraship/Lib/spdlog/include \
|
|
libultraship/Lib/ImGui \
|
|
libultraship/Lib/Mercury \
|
|
libultraship \
|
|
../StormLib/src \
|
|
)
|
|
|
|
# create build directories
|
|
$(shell mkdir -p $(SRC_DIRS:%=build/%))
|
|
|
|
all: $(LIB)
|
|
|
|
clean:
|
|
rm -rf build $(LIB)
|
|
|
|
format:
|
|
$(FORMAT) -i $(FMT_FILES)
|
|
|
|
.PHONY: all clean format
|
|
|
|
build/%.o: %.cpp
|
|
$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(OPTFLAGS) $(INC_DIRS) -c $< -o $@
|
|
|
|
build/%.o: %.c
|
|
$(CC) $(CFLAGS) $(CPPFLAGS) $(OPTFLAGS) $(INC_DIRS) -c $< -o $@
|
|
|
|
build/%.o: %.mm
|
|
$(MXX) $(MMFLAGS) $(CXXFLAGS) $(OPTFLAGS) $(INC_DIRS) -c $< -o $@
|
|
|
|
$(LIB): $(O_FILES)
|
|
$(AR) rcs $@ $^
|
|
|
|
-include $(D_FILES)
|