From 8623ce638c25670e8cd6dbeec42088094f01fcaf Mon Sep 17 00:00:00 2001 From: Toni500git Date: Thu, 4 Jul 2024 18:05:54 +0200 Subject: [PATCH] makefile: add .windows versions btw the previous commit that was commited by "--set" actually it was BurntRanch, lmaooo --- Makefile | 50 +++++++++++++++------------ Makefile.windows | 68 +++++++++++++++++++++++++++++++++++++ src/Makefile.txt | 0 src/fmt/Makefile | 7 ++-- src/fmt/Makefile.windows | 22 ++++++++++++ src/toml++/Makefile.windows | 14 ++++++++ 6 files changed, 137 insertions(+), 24 deletions(-) create mode 100644 Makefile.windows delete mode 100644 src/Makefile.txt create mode 100644 src/fmt/Makefile.windows create mode 100644 src/toml++/Makefile.windows diff --git a/Makefile b/Makefile index 301a042..dfa0f98 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ CXX ?= g++ -PREFIX ?= . +PREFIX ?= /usr VARS ?= GUI_SUPPORT ?= 0 @@ -9,10 +9,10 @@ VENDOR_TEST ?= 0 # https://stackoverflow.com/a/1079861 # WAY easier way to build debug and release builds ifeq ($(DEBUG), 1) - BUILDDIR = build\debug + BUILDDIR = build/debug CXXFLAGS := -ggdb3 -Wall -DDEBUG=1 $(DEBUG_CXXFLAGS) $(CXXFLAGS) else - BUILDDIR = build\release + BUILDDIR = build/release endif ifeq ($(PARSER_TEST), 1) @@ -37,36 +37,44 @@ NAME = customfetch TARGET = cufetch VERSION = 0.1.0 BRANCH = main -SRC = src\config.cpp src\display.cpp src\main.cpp src\parse.cpp src\util.cpp \ - src\query\windows\cpu.cpp src\query\windows\disk.cpp src\query\windows\gpu.cpp \ - src\query\windows\ram.cpp src\query\windows\system.cpp src\query\windows\user.cpp -ifeq ($(GUI_SUPPORT), 1) - SRC += src\gui.cpp -endif +SRC = $(sort $(wildcard src/*.cpp src/query/unix/*.cpp src/query/windows/*.cpp)) OBJ = $(SRC:.cpp=.o) -LDFLAGS += -L.\$(BUILDDIR)\fmt -lfmt +LDFLAGS += -L./$(BUILDDIR)/fmt -lfmt CXXFLAGS ?= -mtune=generic -march=native -CXXFLAGS += -Wno-ignored-attributes -funroll-all-loops -fvisibility=hidden -Iinclude -std=c++17 $(VARS) -DVERSION=\"$(VERSION)\" -DBRANCH=\"$(BRANCH)\" +CXXFLAGS += -O3 -Wno-ignored-attributes -funroll-all-loops -fvisibility=hidden -Iinclude -std=c++17 $(VARS) -DVERSION=\"$(VERSION)\" -DBRANCH=\"$(BRANCH)\" all: fmt toml $(TARGET) fmt: -ifeq ($(wildcard $(BUILDDIR)\fmt\libfmt.a),) - if not exist $(BUILDDIR)\fmt md $(BUILDDIR)\fmt - make -C src\fmt BUILDDIR=$(BUILDDIR)\fmt +ifeq ($(wildcard $(BUILDDIR)/fmt/libfmt.a),) + mkdir -p $(BUILDDIR)/fmt + make -C src/fmt BUILDDIR=$(BUILDDIR)/fmt endif toml: -ifeq ($(wildcard $(BUILDDIR)\toml++\toml.o),) - if not exist $(BUILDDIR)\toml++ md $(BUILDDIR)\toml++ - make -C src\toml++ BUILDDIR=$(BUILDDIR)\toml++ +ifeq ($(wildcard $(BUILDDIR)/toml++/toml.o),) + mkdir -p $(BUILDDIR)/toml++ + make -C src/toml++ BUILDDIR=$(BUILDDIR)/toml++ endif $(TARGET): fmt toml $(OBJ) - if not exist $(BUILDDIR) md $(BUILDDIR) - $(CXX) $(OBJ) $(BUILDDIR)\toml++\toml.o -o $(BUILDDIR)\$(TARGET) $(LDFLAGS) $(CXXFLAGS) + mkdir -p $(BUILDDIR) + $(CXX) $(OBJ) $(BUILDDIR)/toml++/toml.o -o $(BUILDDIR)/$(TARGET) $(LDFLAGS) + +dist: $(TARGET) + bsdtar -zcf $(NAME)-v$(VERSION).tar.gz LICENSE README.md -C $(BUILDDIR) $(TARGET) clean: - del $(BUILDDIR)\$(TARGET) $(OBJ) + rm -rf $(BUILDDIR)/$(TARGET) $(OBJ) + +distclean: + rm -rf $(BUILDDIR) ./tests/$(BUILDDIR) $(OBJ) + find . -type f -name "*.tar.gz" -exec rm -rf "{}" \; + find . -type f -name "*.o" -exec rm -rf "{}" \; + find . -type f -name "*.a" -exec rm -rf "{}" \; + +install: $(TARGET) + install $(BUILDDIR)/$(TARGET) -Dm 755 -v $(DESTDIR)$(PREFIX)/bin/$(TARGET) + cd assets/ && find ascii/ -type f -exec install -Dm 755 "{}" "$(DESTDIR)$(PREFIX)/share/customfetch/{}" \; -.PHONY: $(TARGET) fmt toml all +.PHONY: $(TARGET) dist distclean fmt toml install all diff --git a/Makefile.windows b/Makefile.windows new file mode 100644 index 0000000..1cf5f77 --- /dev/null +++ b/Makefile.windows @@ -0,0 +1,68 @@ +CXX ?= g++ +PREFIX ?= . +VARS ?= +GUI_SUPPORT ?= 0 + +DEBUG ?= 1 +PARSER_TEST ?= 0 +VENDOR_TEST ?= 0 +# https://stackoverflow.com/a/1079861 +# WAY easier way to build debug and release builds +ifeq ($(DEBUG), 1) + BUILDDIR = build\debug + CXXFLAGS := -ggdb3 -Wall -DDEBUG=1 $(DEBUG_CXXFLAGS) $(CXXFLAGS) +else + BUILDDIR = build\release +endif + +ifeq ($(PARSER_TEST), 1) + VARS += -DPARSER_TEST=1 +endif + +ifeq ($(VENDOR_TEST), 1) + VARS += -DVENDOR_TEST=1 +endif + +ifeq ($(GUI_SUPPORT), 1) + VARS += -DGUI_SUPPORT=1 + LDFLAGS += `pkg-config --libs gtkmm-3.0` + CXXFLAGS += `pkg-config --cflags gtkmm-3.0` +endif + +NAME = customfetch +TARGET = cufetch +VERSION = 0.1.0 +BRANCH = windows +SRC = src\config.cpp src\display.cpp src\main.cpp src\parse.cpp src\util.cpp \ + src\query\windows\cpu.cpp src\query\windows\disk.cpp src\query\windows\gpu.cpp \ + src\query\windows\ram.cpp src\query\windows\system.cpp src\query\windows\user.cpp +ifeq ($(GUI_SUPPORT), 1) + SRC += src\gui.cpp +endif +OBJ = $(SRC:.cpp=.o) +LDFLAGS += -L.\$(BUILDDIR)\fmt -lfmt +CXXFLAGS ?= -mtune=generic -march=native +CXXFLAGS += -Wno-ignored-attributes -funroll-all-loops -fvisibility=hidden -Iinclude -std=c++17 $(VARS) -DVERSION=\"$(VERSION)\" -DBRANCH=\"$(BRANCH)\" + +all: fmt toml $(TARGET) + +fmt: +ifeq ($(wildcard $(BUILDDIR)\fmt\libfmt.a),) + if not exist $(BUILDDIR)\fmt md $(BUILDDIR)\fmt + make -C src\fmt -f Makefile.windows BUILDDIR=$(BUILDDIR)\fmt +endif + +toml: +ifeq ($(wildcard $(BUILDDIR)\toml++\toml.o),) + if not exist $(BUILDDIR)\toml++ md $(BUILDDIR)\toml++ + make -C src\toml++ -f Makefile.windows BUILDDIR=$(BUILDDIR)\toml++ +endif + +$(TARGET): fmt toml $(OBJ) + if not exist $(BUILDDIR) md $(BUILDDIR) + $(CXX) $(OBJ) $(BUILDDIR)\toml++\toml.o -o $(BUILDDIR)\$(TARGET) $(LDFLAGS) $(CXXFLAGS) + +clean: + del $(BUILDDIR)\$(TARGET) $(OBJ) $(BUILDDIR) + +.PHONY: $(TARGET) fmt toml clean all diff --git a/src/Makefile.txt b/src/Makefile.txt deleted file mode 100644 index e69de29..0000000 diff --git a/src/fmt/Makefile b/src/fmt/Makefile index ae133b5..7decf23 100644 --- a/src/fmt/Makefile +++ b/src/fmt/Makefile @@ -4,7 +4,7 @@ CXX ?= g++ #CXX_DEFINES = -DFMT_LIB_EXPORT -Dfmt_EXPORTS -CXX_INCLUDES = -I..\..\include +CXX_INCLUDES = -I../../include CXX_FLAGS = -O3 -DNDEBUG -fvisibility=hidden -fvisibility-inlines-hidden all: fmt @@ -14,9 +14,10 @@ fmt: format.cc os.cc $(CXX) $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -c os.cc -o os.cc.o ar qc libfmt.a os.cc.o format.cc.o ranlib libfmt.a - move libfmt.a ../../$(BUILDDIR)/libfmt.a + mv -f libfmt.a ../../$(BUILDDIR)/libfmt.a + #$(CXX) -fPIC -O3 -DNDEBUG -shared -Wl,-soname,libfmt.so.10 -o libfmt.so format.cc.o os.cc.o clean: - del *.o *.so *.a ..\..\$(BUILDDIR)\fmt\.*a + rm -f *.o *.so *.a ../../$(BUILDDIR)/fmt/.*a .PHONY: clean all fmt diff --git a/src/fmt/Makefile.windows b/src/fmt/Makefile.windows new file mode 100644 index 0000000..ae133b5 --- /dev/null +++ b/src/fmt/Makefile.windows @@ -0,0 +1,22 @@ +# Variables taken from {fmt} cmake build files +# I don't wanna use cmake +# cmd: cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF + +CXX ?= g++ +#CXX_DEFINES = -DFMT_LIB_EXPORT -Dfmt_EXPORTS +CXX_INCLUDES = -I..\..\include +CXX_FLAGS = -O3 -DNDEBUG -fvisibility=hidden -fvisibility-inlines-hidden + +all: fmt + +fmt: format.cc os.cc + $(CXX) $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -c format.cc -o format.cc.o + $(CXX) $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -c os.cc -o os.cc.o + ar qc libfmt.a os.cc.o format.cc.o + ranlib libfmt.a + move libfmt.a ../../$(BUILDDIR)/libfmt.a + +clean: + del *.o *.so *.a ..\..\$(BUILDDIR)\fmt\.*a + +.PHONY: clean all fmt diff --git a/src/toml++/Makefile.windows b/src/toml++/Makefile.windows new file mode 100644 index 0000000..759c43d --- /dev/null +++ b/src/toml++/Makefile.windows @@ -0,0 +1,14 @@ +CXX ?= g++ +SRC = toml.cpp +TARGET = toml.o +CPPFLAGS = -I..\..\include -std=c++20 + +all: $(TARGET) + +$(TARGET): + ${CXX} $(SRC) $(CPPFLAGS) -c -o ..\..\$(BUILDDIR)\$@ + +clean: + del ..\..\$(BUILDDIR)\toml++\$(TARGET) + +.PHONY: $(TARGET) clean all