mirror of
https://github.com/NotAShelf/tinierfetch.git
synced 2024-11-22 13:20:48 +00:00
separate programs by language
This commit is contained in:
parent
45f6cbb46a
commit
6295a0b7e6
8 changed files with 106 additions and 4 deletions
46
cpp/Makefile
Normal file
46
cpp/Makefile
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
# Compiler
|
||||||
|
CXX = g++
|
||||||
|
|
||||||
|
# Source files
|
||||||
|
SOURCES = tinierfetch.cpp
|
||||||
|
|
||||||
|
# Output binaries
|
||||||
|
OUTPUT_SIZE = tinierfetch-cpp-size
|
||||||
|
OUTPUT_SPEED = tinierfetch-cpp-speed
|
||||||
|
|
||||||
|
# Compiler flags for size optimization
|
||||||
|
CXXFLAGS_SIZE = -Os -ffunction-sections -fdata-sections \
|
||||||
|
-fno-exceptions -fno-stack-protector -fno-rtti \
|
||||||
|
-ffunction-sections -fdata-sections -fno-math-errno \
|
||||||
|
-fno-unroll-loops -fmerge-all-constants -fno-ident \
|
||||||
|
-mfpmath=387 -mfancy-math-387 -s -flto \
|
||||||
|
-fno-asynchronous-unwind-tables -fsingle-precision-constant
|
||||||
|
|
||||||
|
# Compiler flags for speed optimization
|
||||||
|
CXXFLAGS_SPEED = -O3 -march=native -funroll-loops -finline-functions \
|
||||||
|
-ffast-math -fno-exceptions -fno-stack-protector -fno-rtti \
|
||||||
|
-ffunction-sections -fdata-sections -fno-math-errno \
|
||||||
|
-fmerge-all-constants -fno-ident -mfpmath=387 \
|
||||||
|
-mfancy-math-387 -s -flto -fno-asynchronous-unwind-tables \
|
||||||
|
-fsingle-precision-constant
|
||||||
|
|
||||||
|
# Linker flags (common for both targets)
|
||||||
|
LDFLAGS = -Wl,-z,norelro -Wl,--hash-style=gnu -Wl,--build-id=none -Wl,--strip-all
|
||||||
|
|
||||||
|
# Makefile targets
|
||||||
|
all: optimize-size optimize-speed
|
||||||
|
|
||||||
|
optimize-size: $(OUTPUT_SIZE)
|
||||||
|
|
||||||
|
optimize-speed: $(OUTPUT_SPEED)
|
||||||
|
|
||||||
|
$(OUTPUT_SIZE): $(SOURCES)
|
||||||
|
$(CXX) $(CXXFLAGS_SIZE) $(LDFLAGS) $(SOURCES) -o ../bin/$(OUTPUT_SIZE)
|
||||||
|
|
||||||
|
$(OUTPUT_SPEED): $(SOURCES)
|
||||||
|
$(CXX) $(CXXFLAGS_SPEED) $(LDFLAGS) $(SOURCES) -o ../bin/$(OUTPUT_SPEED)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f $(OUTPUT_SIZE) $(OUTPUT_SPEED)
|
||||||
|
|
||||||
|
.PHONY: all optimize-size optimize-speed clean
|
10
cpp/tinierfetch.cpp
Normal file
10
cpp/tinierfetch.cpp
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
#include <iostream>
|
||||||
|
#define l getenv
|
||||||
|
#define i <<
|
||||||
|
int main() {
|
||||||
|
std::cout i "\e[31muser:\e[0m " i l("USER") i "\n\e[32msh:\e[0m " i l("SHELL")
|
||||||
|
i "\n\e[33mterm:\e[0m " i l("TERM") i "\n\e[34mlocale:\e[0m " i l("LANG")
|
||||||
|
i "\n\x1b[35mcolors: \x1b[0m\x1b[41m \x1b[42m \x1b[43m \x1b[44m "
|
||||||
|
"\x1b[45m \x1b[0m\n";
|
||||||
|
return 0;
|
||||||
|
}
|
3
go/go.mod
Normal file
3
go/go.mod
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
module tinierfetch-go
|
||||||
|
|
||||||
|
go 1.20
|
15
go/main.go
Normal file
15
go/main.go
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import "os"
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
e := []string{"USER", "SHELL", "TERM", "LANG"}
|
||||||
|
c := []string{"31", "32", "33", "34"}
|
||||||
|
r := "\033[0m"
|
||||||
|
|
||||||
|
for i, v := range e {
|
||||||
|
os.Stdout.WriteString("\033[0;" + c[i] + "m" + v + ":\033[0m " + os.Getenv(v) + "\n")
|
||||||
|
}
|
||||||
|
|
||||||
|
os.Stdout.WriteString("\033[35mcolors: \033[0m\033[41m \033[42m \033[43m \033[44m \033[45m " + r + "\n")
|
||||||
|
}
|
7
rs/Cargo.lock
generated
Normal file
7
rs/Cargo.lock
generated
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
# This file is automatically @generated by Cargo.
|
||||||
|
# It is not intended for manual editing.
|
||||||
|
version = 3
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "tinierfetch-rs"
|
||||||
|
version = "0.1.0"
|
16
rs/Cargo.toml
Normal file
16
rs/Cargo.toml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
[package]
|
||||||
|
name = "tinierfetch-rs"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "tinierfetch-rs"
|
||||||
|
path = "main.rs"
|
||||||
|
|
||||||
|
[profile.release]
|
||||||
|
strip = true
|
||||||
|
opt-level = "z"
|
||||||
|
lto = true
|
||||||
|
codegen-units = 1
|
||||||
|
panic = "abort"
|
||||||
|
|
9
rs/main.rs
Normal file
9
rs/main.rs
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
use std::env;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
["USER", "SHELL", "TERM", "LANG"]
|
||||||
|
.iter()
|
||||||
|
.for_each(|var| println!("{}: {}", var, env::var(var).unwrap_or_default()));
|
||||||
|
|
||||||
|
println!("\x1B[35mcolors: \x1B[0m\x1B[41m \x1B[42m \x1B[43m \x1B[44m \x1B[45m \x1B[0m");
|
||||||
|
}
|
|
@ -1,4 +0,0 @@
|
||||||
#include <iostream>
|
|
||||||
#define e getenv
|
|
||||||
#define i <<
|
|
||||||
int main() { std::cout i "\e[31muser:\e[0m " i e("USER") i "\n\e[32msh:\e[0m " i e("SHELL") i "\n\e[33mterm:\e[0m " i e("TERM") i "\n\e[34mlocale:\e[0m " i e("LANG") i "\n\x1b[35mcolors: \x1b[0m\x1b[41m \x1b[42m \x1b[43m \x1b[44m " "\x1b[45m \x1b[0m\n"; return 0;}
|
|
Loading…
Reference in a new issue