use cmake

This commit is contained in:
2026-01-01 13:56:28 +01:00
parent 5ab0f43e8d
commit 09bda47840
5 changed files with 60 additions and 160 deletions

2
.gitignore vendored
View File

@@ -3,4 +3,4 @@
*.log*
.cache/
.vscode/
linuxSmartie
build/

45
CMakeLists.txt Normal file
View File

@@ -0,0 +1,45 @@
cmake_minimum_required(VERSION 3.20)
project(linuxSmartie
VERSION 1.0
LANGUAGES CXX
)
# Use C++26 (CMake name for c++2c)
set(CMAKE_CXX_STANDARD 26)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
# Collect sources
file(GLOB SOURCES
src/*.cpp
main.cpp
)
# Define executable
add_executable(linuxSmartie ${SOURCES})
# Include directories
target_include_directories(linuxSmartie
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/include
)
# Compiler warnings
target_compile_options(linuxSmartie
PRIVATE
-O2
-Wall
-Wextra
-Wpedantic
-Werror
-fdiagnostics-color=always
)
# Link libraries
target_link_libraries(linuxSmartie
PRIVATE
websockets
z
)

View File

@@ -1,31 +1,21 @@
MAKEFLAGS := "-j $(shell nproc)"
.PHONY: configure build clean nuke install install_service
# compiling with C++26
CXXFLAGS := -std=c++2c -fdiagnostics-color=always -Iinclude -lwebsockets -lz -Wall -Wextra -Wpedantic -Werror
CXXFLAGS += -MMD -MP
CXXFLAGS += -O2 -s
BUILD_DIR ?= build
SOURCES := $(wildcard src/*.cpp) main.cpp
OBJECTS := $(SOURCES:.cpp=.o)
DEPS := $(OBJECTS:.o=.d)
configure:
cmake -S . -B ${BUILD_DIR}
# glowny target, linkuje linuxSmartie, potrzebuje ${OBJECTS}, jest na samej górze wiec jest domyslny
linuxSmartie: $(OBJECTS)
g++ $(CXXFLAGS) -o $@ $^
build:
cmake --build ${BUILD_DIR} -j
# kompiluje obiekty, potrzebuje zrodel cpp
%.o: %.cpp
g++ $(CXXFLAGS) -c $< -o $@
clean:
cmake --build $(BUILD_DIR) --target clean
nuke: clean
rm -rf $(BUILD_DIR)
-include $(DEPS)
.PHONY: clean cleanobj install_service
cleanobj:
rm -f $(OBJECTS) $(DEPS) $(TEST_OBJS)
clean: cleanobj
rm -f linuxSmartie
install:
install ${BUILD}/linuxSmartie ${HOME}/.local/bin
install_service:
mkdir -p ~/.config/systemd/user

View File

@@ -1,135 +0,0 @@
[
{
"arguments": [
"/usr/bin/g++",
"-std=c++2c",
"-fdiagnostics-color=always",
"-Iinclude",
"-Wall",
"-Wpedantic",
"-Wextra",
"-O2",
"-c",
"-o",
"main.o",
"main.cpp"
],
"directory": "/home/drath/git/linuxSmartie",
"file": "/home/drath/git/linuxSmartie/main.cpp",
"output": "/home/drath/git/linuxSmartie/main.o"
},
{
"arguments": [
"/usr/bin/g++",
"-std=c++2c",
"-fdiagnostics-color=always",
"-Iinclude",
"-Wall",
"-Wpedantic",
"-Wextra",
"-O2",
"-c",
"-o",
"src/gpu.o",
"src/gpu.cpp"
],
"directory": "/home/drath/git/linuxSmartie",
"file": "/home/drath/git/linuxSmartie/src/gpu.cpp",
"output": "/home/drath/git/linuxSmartie/src/gpu.o"
},
{
"arguments": [
"/usr/bin/g++",
"-std=c++2c",
"-fdiagnostics-color=always",
"-Iinclude",
"-Wall",
"-Wpedantic",
"-Wextra",
"-O2",
"-c",
"-o",
"src/cpu.o",
"src/cpu.cpp"
],
"directory": "/home/drath/git/linuxSmartie",
"file": "/home/drath/git/linuxSmartie/src/cpu.cpp",
"output": "/home/drath/git/linuxSmartie/src/cpu.o"
},
{
"arguments": [
"/usr/bin/g++",
"-std=c++2c",
"-fdiagnostics-color=always",
"-Iinclude",
"-Wall",
"-Wpedantic",
"-Wextra",
"-O2",
"-c",
"-o",
"src/hass.o",
"src/hass.cpp"
],
"directory": "/home/drath/git/linuxSmartie",
"file": "/home/drath/git/linuxSmartie/src/hass.cpp",
"output": "/home/drath/git/linuxSmartie/src/hass.o"
},
{
"arguments": [
"/usr/bin/g++",
"-std=c++2c",
"-fdiagnostics-color=always",
"-Iinclude",
"-Wall",
"-Wpedantic",
"-Wextra",
"-O2",
"-c",
"-o",
"src/LCDDisplay.o",
"src/LCDDisplay.cpp"
],
"directory": "/home/drath/git/linuxSmartie",
"file": "/home/drath/git/linuxSmartie/src/LCDDisplay.cpp",
"output": "/home/drath/git/linuxSmartie/src/LCDDisplay.o"
},
{
"arguments": [
"/usr/bin/g++",
"-std=c++2c",
"-fdiagnostics-color=always",
"-Iinclude",
"-Wall",
"-Wpedantic",
"-Wextra",
"-O2",
"-c",
"-o",
"src/sys.o",
"src/sys.cpp"
],
"directory": "/home/drath/git/linuxSmartie",
"file": "/home/drath/git/linuxSmartie/src/sys.cpp",
"output": "/home/drath/git/linuxSmartie/src/sys.o"
},
{
"arguments": [
"/usr/bin/g++",
"-std=c++2c",
"-fdiagnostics-color=always",
"-Iinclude",
"-Wall",
"-Wpedantic",
"-Wextra",
"-O2",
"-c",
"-o",
"src/utils.o",
"src/utils.cpp"
],
"directory": "/home/drath/git/linuxSmartie",
"file": "/home/drath/git/linuxSmartie/src/utils.cpp",
"output": "/home/drath/git/linuxSmartie/src/utils.o"
}
]

View File

@@ -3,7 +3,7 @@ Description=HD44780 display service (linuxSmartie)
[Service]
Type=simple
ExecStart=%h/git/linuxSmartie/linuxSmartie -d
ExecStart=%h/.local/bin/linuxSmartie
Restart=on-failure
[Install]