Skip to content

Commit

Permalink
makefile: add .windows versions
Browse files Browse the repository at this point in the history
btw the previous commit that was commited by "--set" actually it was BurntRanch, lmaooo
  • Loading branch information
Toni500github committed Jul 4, 2024
1 parent bae7443 commit 8623ce6
Show file tree
Hide file tree
Showing 6 changed files with 137 additions and 24 deletions.
50 changes: 29 additions & 21 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
CXX ?= g++
PREFIX ?= .
PREFIX ?= /usr
VARS ?=
GUI_SUPPORT ?= 0

Expand All @@ -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)
Expand All @@ -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
68 changes: 68 additions & 0 deletions Makefile.windows
Original file line number Diff line number Diff line change
@@ -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
Empty file removed src/Makefile.txt
Empty file.
7 changes: 4 additions & 3 deletions src/fmt/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
22 changes: 22 additions & 0 deletions src/fmt/Makefile.windows
Original file line number Diff line number Diff line change
@@ -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
14 changes: 14 additions & 0 deletions src/toml++/Makefile.windows
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 8623ce6

Please sign in to comment.