mirror of https://github.com/aristocratos/btop.git
commit
7e50b03e39
86
Makefile
86
Makefile
|
@ -1,4 +1,4 @@
|
|||
#* Btop++ makefile v1.5
|
||||
#* Btop++ makefile v1.6
|
||||
|
||||
BANNER = \n \033[38;5;196m██████\033[38;5;240m╗ \033[38;5;196m████████\033[38;5;240m╗ \033[38;5;196m██████\033[38;5;240m╗ \033[38;5;196m██████\033[38;5;240m╗\n \033[38;5;160m██\033[38;5;239m╔══\033[38;5;160m██\033[38;5;239m╗╚══\033[38;5;160m██\033[38;5;239m╔══╝\033[38;5;160m██\033[38;5;239m╔═══\033[38;5;160m██\033[38;5;239m╗\033[38;5;160m██\033[38;5;239m╔══\033[38;5;160m██\033[38;5;239m╗ \033[38;5;160m██\033[38;5;239m╗ \033[38;5;160m██\033[38;5;239m╗\n \033[38;5;124m██████\033[38;5;238m╔╝ \033[38;5;124m██\033[38;5;238m║ \033[38;5;124m██\033[38;5;238m║ \033[38;5;124m██\033[38;5;238m║\033[38;5;124m██████\033[38;5;238m╔╝ \033[38;5;124m██████\033[38;5;238m╗\033[38;5;124m██████\033[38;5;238m╗\n \033[38;5;88m██\033[38;5;237m╔══\033[38;5;88m██\033[38;5;237m╗ \033[38;5;88m██\033[38;5;237m║ \033[38;5;88m██\033[38;5;237m║ \033[38;5;88m██\033[38;5;237m║\033[38;5;88m██\033[38;5;237m╔═══╝ ╚═\033[38;5;88m██\033[38;5;237m╔═╝╚═\033[38;5;88m██\033[38;5;237m╔═╝\n \033[38;5;52m██████\033[38;5;236m╔╝ \033[38;5;52m██\033[38;5;236m║ ╚\033[38;5;52m██████\033[38;5;236m╔╝\033[38;5;52m██\033[38;5;236m║ ╚═╝ ╚═╝\n \033[38;5;235m╚═════╝ ╚═╝ ╚═════╝ ╚═╝ \033[1;3;38;5;240mMakefile v1.5\033[0m
|
||||
|
||||
|
@ -39,6 +39,46 @@ endif
|
|||
|
||||
override PLATFORM_LC := $(shell echo $(PLATFORM) | tr '[:upper:]' '[:lower:]')
|
||||
|
||||
#? Compiler and Linker
|
||||
ifeq ($(shell $(CXX) --version | grep clang >/dev/null 2>&1; echo $$?),0)
|
||||
override CXX_IS_CLANG := true
|
||||
endif
|
||||
override CXX_VERSION := $(shell $(CXX) -dumpfullversion -dumpversion || echo 0)
|
||||
override CXX_VERSION_MAJOR := $(shell echo $(CXX_VERSION) | cut -d '.' -f 1)
|
||||
|
||||
CLANG_WORKS = false
|
||||
GCC_WORKS = false
|
||||
|
||||
#? Supported is Clang 16.0.0 and later
|
||||
ifeq ($(CXX_IS_CLANG),true)
|
||||
ifneq ($(shell test $(CXX_VERSION_MAJOR) -lt 16; echo $$?),0)
|
||||
CLANG_WORKS := true
|
||||
endif
|
||||
endif
|
||||
ifeq ($(CLANG_WORKS),false)
|
||||
#? Try to find a newer GCC version
|
||||
ifeq ($(shell command -v g++-12 >/dev/null; echo $$?),0)
|
||||
CXX := g++-12
|
||||
else ifeq ($(shell command -v g++-11 >/dev/null; echo $$?),0)
|
||||
CXX := g++-11
|
||||
else ifeq ($(shell command -v g++11 >/dev/null; echo $$?),0)
|
||||
CXX := g++11
|
||||
else ifeq ($(shell command -v g++ >/dev/null; echo $$?),0)
|
||||
CXX := g++
|
||||
endif
|
||||
override CXX_VERSION := $(shell $(CXX) -dumpfullversion -dumpversion || echo 0)
|
||||
override CXX_VERSION_MAJOR := $(shell echo $(CXX_VERSION) | cut -d '.' -f 1)
|
||||
ifneq ($(shell test $(CXX_VERSION_MAJOR) -lt 10; echo $$?),0)
|
||||
GCC_WORKS := true
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(CLANG_WORKS),false)
|
||||
ifeq ($(GCC_WORKS),false)
|
||||
$(error $(shell printf "\033[1;91mERROR: \033[97mCompiler too old. (Requires Clang 16.0.0, GCC 10.1.0)\033[0m"))
|
||||
endif
|
||||
endif
|
||||
|
||||
#? Any flags added to TESTFLAGS must not contain whitespace for the testing to work
|
||||
override TESTFLAGS := -fexceptions -fstack-clash-protection -fcf-protection
|
||||
ifneq ($(PLATFORM) $(ARCH),macos arm64)
|
||||
|
@ -46,7 +86,13 @@ ifneq ($(PLATFORM) $(ARCH),macos arm64)
|
|||
endif
|
||||
|
||||
ifeq ($(STATIC),true)
|
||||
ifeq ($(CXX_IS_CLANG),true)
|
||||
ifeq ($(shell $(CXX) -print-target-triple | grep gnu >/dev/null; echo $$?),0)
|
||||
$(error $(shell printf "\033[1;91mERROR: \033[97m$(CXX) can't statically link glibc\033[0m"))
|
||||
endif
|
||||
else
|
||||
override ADDFLAGS += -static-libgcc -static-libstdc++
|
||||
endif
|
||||
ifneq ($(PLATFORM),macos)
|
||||
override ADDFLAGS += -DSTATIC_BUILD -static -Wl,--fatal-warnings
|
||||
endif
|
||||
|
@ -62,33 +108,6 @@ else
|
|||
override VERBOSE := true
|
||||
endif
|
||||
|
||||
#? Compiler and Linker
|
||||
ifeq ($(shell command -v g++-12 >/dev/null; echo $$?),0)
|
||||
CXX := g++-12
|
||||
else ifeq ($(shell command -v g++-11 >/dev/null; echo $$?),0)
|
||||
CXX := g++-11
|
||||
else ifeq ($(shell command -v g++11 >/dev/null; echo $$?),0)
|
||||
CXX := g++11
|
||||
else ifeq ($(shell command -v g++ >/dev/null; echo $$?),0)
|
||||
CXX := g++
|
||||
endif
|
||||
override CXX_VERSION := $(shell $(CXX) -dumpfullversion -dumpversion || echo 0)
|
||||
|
||||
#? Try to make sure we are using GCC/G++ version 11 or later if not instructed to use g++-10
|
||||
ifeq ($(CXX),g++)
|
||||
ifeq ($(shell g++ --version | grep clang >/dev/null 2>&1; echo $$?),0)
|
||||
V_MAJOR := 0
|
||||
else
|
||||
V_MAJOR := $(shell echo $(CXX_VERSION) | cut -f1 -d".")
|
||||
endif
|
||||
ifneq ($(shell test $(V_MAJOR) -ge 11; echo $$?),0)
|
||||
ifeq ($(shell command -v g++-11 >/dev/null; echo $$?),0)
|
||||
override CXX := g++-11
|
||||
override CXX_VERSION := $(shell $(CXX) -dumpfullversion -dumpversion || echo 0)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
#? Pull in platform specific source files and get thread count
|
||||
ifeq ($(PLATFORM_LC),linux)
|
||||
PLATFORM_DIR := linux
|
||||
|
@ -115,6 +134,13 @@ ifeq ($(THREADS),1)
|
|||
override THREADS := auto
|
||||
endif
|
||||
|
||||
#? LTO command line
|
||||
ifeq ($(CLANG_WORKS),true)
|
||||
LTO := thin
|
||||
else
|
||||
LTO := $(THREADS)
|
||||
endif
|
||||
|
||||
#? The Directories, Source, Includes, Objects and Binary
|
||||
SRCDIR := src
|
||||
INCDIRS := include $(wildcard lib/**/include)
|
||||
|
@ -130,8 +156,8 @@ override GOODFLAGS := $(foreach flag,$(TESTFLAGS),$(strip $(shell echo "int main
|
|||
#? Flags, Libraries and Includes
|
||||
override REQFLAGS := -std=c++20
|
||||
WARNFLAGS := -Wall -Wextra -pedantic
|
||||
OPTFLAGS := -O2 -ftree-vectorize -flto=$(THREADS)
|
||||
LDCXXFLAGS := -pthread -D_FORTIFY_SOURCE=2 -D_GLIBCXX_ASSERTIONS $(GOODFLAGS) $(ADDFLAGS)
|
||||
OPTFLAGS := -O2 -ftree-vectorize -flto=$(LTO)
|
||||
LDCXXFLAGS := -pthread -D_FORTIFY_SOURCE=2 -D_GLIBCXX_ASSERTIONS -D_FILE_OFFSET_BITS=64 $(GOODFLAGS) $(ADDFLAGS)
|
||||
override CXXFLAGS += $(REQFLAGS) $(LDCXXFLAGS) $(OPTFLAGS) $(WARNFLAGS)
|
||||
override LDFLAGS += $(LDCXXFLAGS) $(OPTFLAGS) $(WARNFLAGS)
|
||||
INC := $(foreach incdir,$(INCDIRS),-isystem $(incdir)) -I$(SRCDIR)
|
||||
|
|
11
src/btop.cpp
11
src/btop.cpp
|
@ -37,6 +37,11 @@ tab-size = 4
|
|||
#include <mach-o/dyld.h>
|
||||
#include <limits.h>
|
||||
#endif
|
||||
#if !defined(__clang__) && __GNUC__ < 11
|
||||
#include <semaphore.h>
|
||||
#else
|
||||
#include <semaphore>
|
||||
#endif
|
||||
|
||||
#include <btop_shared.hpp>
|
||||
#include <btop_tools.hpp>
|
||||
|
@ -336,14 +341,12 @@ namespace Runner {
|
|||
atomic<bool> coreNum_reset (false);
|
||||
|
||||
//* Setup semaphore for triggering thread to do work
|
||||
#if __GNUC__ < 11
|
||||
#include <semaphore.h>
|
||||
#if !defined(__clang__) && __GNUC__ < 11
|
||||
sem_t do_work;
|
||||
inline void thread_sem_init() { sem_init(&do_work, 0, 0); }
|
||||
inline void thread_wait() { sem_wait(&do_work); }
|
||||
inline void thread_trigger() { sem_post(&do_work); }
|
||||
#else
|
||||
#include <semaphore>
|
||||
std::binary_semaphore do_work(0);
|
||||
inline void thread_sem_init() { ; }
|
||||
inline void thread_wait() { do_work.acquire(); }
|
||||
|
@ -654,7 +657,7 @@ namespace Runner {
|
|||
<< Term::sync_end << flush;
|
||||
}
|
||||
//* ----------------------------------------------- THREAD LOOP -----------------------------------------------
|
||||
pthread_exit(NULL);
|
||||
return {};
|
||||
}
|
||||
//? ------------------------------------------ Secondary thread end -----------------------------------------------
|
||||
|
||||
|
|
|
@ -332,7 +332,7 @@ namespace Config {
|
|||
new_presets.push_back(preset);
|
||||
}
|
||||
|
||||
preset_list = move(new_presets);
|
||||
preset_list = std::move(new_presets);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -515,7 +515,7 @@ namespace Config {
|
|||
for (auto& box : new_boxes) {
|
||||
if (not v_contains(valid_boxes, box)) return false;
|
||||
}
|
||||
current_boxes = move(new_boxes);
|
||||
current_boxes = std::move(new_boxes);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -17,6 +17,7 @@ tab-size = 4
|
|||
*/
|
||||
|
||||
#include <cmath>
|
||||
#include <codecvt>
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <ctime>
|
||||
|
@ -151,7 +152,7 @@ namespace Term {
|
|||
|
||||
//? --------------------------------------------------- FUNCTIONS -----------------------------------------------------
|
||||
|
||||
// ! Dsiabled due to issue when compiling with musl, reverted back to using regex
|
||||
// ! Disabled due to issue when compiling with musl, reverted back to using regex
|
||||
// namespace Fx {
|
||||
// string uncolor(const string& s) {
|
||||
// string out = s;
|
||||
|
|
|
@ -1083,9 +1083,9 @@ namespace Mem {
|
|||
bool new_ignored = false;
|
||||
for (auto& [mountpoint, disk] : disks) {
|
||||
if (std::error_code ec; not fs::exists(mountpoint, ec) or v_contains(ignore_list, mountpoint)) continue;
|
||||
struct statvfs64 vfs;
|
||||
if (statvfs64(mountpoint.c_str(), &vfs) < 0) {
|
||||
Logger::warning("Failed to get disk/partition stats for mount \""+ mountpoint + "\" with statvfs64 error code: " + to_string(errno) + ". Ignoring...");
|
||||
struct statvfs vfs;
|
||||
if (statvfs(mountpoint.c_str(), &vfs) < 0) {
|
||||
Logger::warning("Failed to get disk/partition stats for mount \""+ mountpoint + "\" with statvfs error code: " + to_string(errno) + ". Ignoring...");
|
||||
ignore_list.push_back(mountpoint);
|
||||
new_ignored = true;
|
||||
continue;
|
||||
|
|
Loading…
Reference in New Issue