use cmake
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -3,4 +3,4 @@
|
|||||||
*.log*
|
*.log*
|
||||||
.cache/
|
.cache/
|
||||||
.vscode/
|
.vscode/
|
||||||
linuxSmartie
|
build/
|
||||||
|
|||||||
45
CMakeLists.txt
Normal file
45
CMakeLists.txt
Normal 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
|
||||||
|
)
|
||||||
|
|
||||||
34
Makefile
34
Makefile
@@ -1,31 +1,21 @@
|
|||||||
MAKEFLAGS := "-j $(shell nproc)"
|
.PHONY: configure build clean nuke install install_service
|
||||||
|
|
||||||
# compiling with C++26
|
BUILD_DIR ?= build
|
||||||
CXXFLAGS := -std=c++2c -fdiagnostics-color=always -Iinclude -lwebsockets -lz -Wall -Wextra -Wpedantic -Werror
|
|
||||||
CXXFLAGS += -MMD -MP
|
|
||||||
CXXFLAGS += -O2 -s
|
|
||||||
|
|
||||||
SOURCES := $(wildcard src/*.cpp) main.cpp
|
configure:
|
||||||
OBJECTS := $(SOURCES:.cpp=.o)
|
cmake -S . -B ${BUILD_DIR}
|
||||||
DEPS := $(OBJECTS:.o=.d)
|
|
||||||
|
|
||||||
# glowny target, linkuje linuxSmartie, potrzebuje ${OBJECTS}, jest na samej górze wiec jest domyslny
|
build:
|
||||||
linuxSmartie: $(OBJECTS)
|
cmake --build ${BUILD_DIR} -j
|
||||||
g++ $(CXXFLAGS) -o $@ $^
|
|
||||||
|
|
||||||
# kompiluje obiekty, potrzebuje zrodel cpp
|
clean:
|
||||||
%.o: %.cpp
|
cmake --build $(BUILD_DIR) --target clean
|
||||||
g++ $(CXXFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
-include $(DEPS)
|
nuke: clean
|
||||||
|
rm -rf $(BUILD_DIR)
|
||||||
|
|
||||||
.PHONY: clean cleanobj install_service
|
install:
|
||||||
|
install ${BUILD}/linuxSmartie ${HOME}/.local/bin
|
||||||
cleanobj:
|
|
||||||
rm -f $(OBJECTS) $(DEPS) $(TEST_OBJS)
|
|
||||||
|
|
||||||
clean: cleanobj
|
|
||||||
rm -f linuxSmartie
|
|
||||||
|
|
||||||
install_service:
|
install_service:
|
||||||
mkdir -p ~/.config/systemd/user
|
mkdir -p ~/.config/systemd/user
|
||||||
|
|||||||
@@ -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"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@@ -3,7 +3,7 @@ Description=HD44780 display service (linuxSmartie)
|
|||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
ExecStart=%h/git/linuxSmartie/linuxSmartie -d
|
ExecStart=%h/.local/bin/linuxSmartie
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
|
|||||||
Reference in New Issue
Block a user