From 04cb5d9c12ce2f1f9ba50dc61c4666803eba4c2f Mon Sep 17 00:00:00 2001 From: June Tate-Gans Date: Sun, 25 Apr 2021 01:19:06 -0500 Subject: [PATCH] build: Start migration to cmake This preps us for proper system installs to distributions, finding depending libraries, and allowing us to build the foundation for the GUI and support tooling next. The plan is to run g13d as a system daemon managed by systemd. We'll use the system-wide input group to control access to the daemon. - Add a CMakeLists for etc so we can install the udev rules. - Move the src dir to g13d to disambiguate a bit. - Update the toplevel Makefile so we can still build the old way (for now). --- CMakeLists.txt | 5 +++++ Makefile | 18 +++++++++--------- etc/CMakeLists.txt | 5 +++++ g13d/CMakeLists.txt | 25 +++++++++++++++++++++++++ {src => g13d}/g13.cc | 0 {src => g13d}/g13.h | 0 {src => g13d}/g13_fonts.cc | 0 {src => g13d}/g13_keys.cc | 0 {src => g13d}/g13_lcd.cc | 0 {src => g13d}/g13_log.cc | 0 {src => g13d}/g13_main.cc | 0 {src => g13d}/g13_stick.cc | 0 {src => g13d}/helper.cc | 0 {src => g13d}/helper.h | 0 {src => g13d}/logo.h | 0 src/pbm2lpbm.c => g13d/pbm2lpbm.cc | 0 16 files changed, 44 insertions(+), 9 deletions(-) create mode 100644 CMakeLists.txt create mode 100644 etc/CMakeLists.txt create mode 100644 g13d/CMakeLists.txt rename {src => g13d}/g13.cc (100%) rename {src => g13d}/g13.h (100%) rename {src => g13d}/g13_fonts.cc (100%) rename {src => g13d}/g13_keys.cc (100%) rename {src => g13d}/g13_lcd.cc (100%) rename {src => g13d}/g13_log.cc (100%) rename {src => g13d}/g13_main.cc (100%) rename {src => g13d}/g13_stick.cc (100%) rename {src => g13d}/helper.cc (100%) rename {src => g13d}/helper.h (100%) rename {src => g13d}/logo.h (100%) rename src/pbm2lpbm.c => g13d/pbm2lpbm.cc (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..e8af53c --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,5 @@ +cmake_minimum_required(VERSION 3.16.3) +project(g13) + +add_subdirectory(g13d) +add_subdirectory(etc) diff --git a/Makefile b/Makefile index 229824a..67da881 100644 --- a/Makefile +++ b/Makefile @@ -3,16 +3,16 @@ LIBS := -lusb-1.0 -lboost_program_options -lboost_log -lboost_system -lpthr PREFIX ?= /usr/local G13D_SRCS := \ - src/g13.cc \ - src/g13_fonts.cc \ - src/g13_keys.cc \ - src/g13_lcd.cc \ - src/g13_log.cc \ - src/g13_main.cc \ - src/g13_stick.cc \ - src/helper.cc + g13d/g13.cc \ + g13d/g13_fonts.cc \ + g13d/g13_keys.cc \ + g13d/g13_lcd.cc \ + g13d/g13_log.cc \ + g13d/g13_main.cc \ + g13d/g13_stick.cc \ + g13d/helper.cc -G13D_OBJS := $(patsubst src/%.cc,build/%.o,$(G13D_SRCS)) +G13D_OBJS := $(patsubst g13d/%.cc,build/%.o,$(G13D_SRCS)) all: build build/g13d build/pbm2lpbm diff --git a/etc/CMakeLists.txt b/etc/CMakeLists.txt new file mode 100644 index 0000000..fa0ba13 --- /dev/null +++ b/etc/CMakeLists.txt @@ -0,0 +1,5 @@ +cmake_minimum_required(VERSION 3.16.3) +project(g13) + +install(FILES 91-g13.rules + DESTINATION /etc/udev.d/rules.d/91-g13.rules) diff --git a/g13d/CMakeLists.txt b/g13d/CMakeLists.txt new file mode 100644 index 0000000..e1e1264 --- /dev/null +++ b/g13d/CMakeLists.txt @@ -0,0 +1,25 @@ +cmake_minimum_required(VERSION 3.16.3) + +project(g13d CXX) +add_executable(pbm2lpbm pbm2lpbm.cc) +add_executable(g13d + g13.cc + g13_fonts.cc + g13_keys.cc + g13_lcd.cc + g13_log.cc + g13_main.cc + g13_stick.cc + helper.cc +) + +target_compile_definitions(g13d PUBLIC BOOST_LOG_DYN_LINK=1) +find_package(PkgConfig) +pkg_check_modules(libusb-1.0 REQUIRED libusb-1.0) +find_package(Boost REQUIRED COMPONENTS system log program_options) + +target_link_libraries(g13d + ${Boost_SYSTEM_LIBRARY} ${Boost_LOG_LIBRARY} ${Boost_PROGRAM_OPTIONS_LIBRARY} + ${libusb-1.0_LIBRARIES}) + +install(TARGETS g13d pbm2lpbm RUNTIME) diff --git a/src/g13.cc b/g13d/g13.cc similarity index 100% rename from src/g13.cc rename to g13d/g13.cc diff --git a/src/g13.h b/g13d/g13.h similarity index 100% rename from src/g13.h rename to g13d/g13.h diff --git a/src/g13_fonts.cc b/g13d/g13_fonts.cc similarity index 100% rename from src/g13_fonts.cc rename to g13d/g13_fonts.cc diff --git a/src/g13_keys.cc b/g13d/g13_keys.cc similarity index 100% rename from src/g13_keys.cc rename to g13d/g13_keys.cc diff --git a/src/g13_lcd.cc b/g13d/g13_lcd.cc similarity index 100% rename from src/g13_lcd.cc rename to g13d/g13_lcd.cc diff --git a/src/g13_log.cc b/g13d/g13_log.cc similarity index 100% rename from src/g13_log.cc rename to g13d/g13_log.cc diff --git a/src/g13_main.cc b/g13d/g13_main.cc similarity index 100% rename from src/g13_main.cc rename to g13d/g13_main.cc diff --git a/src/g13_stick.cc b/g13d/g13_stick.cc similarity index 100% rename from src/g13_stick.cc rename to g13d/g13_stick.cc diff --git a/src/helper.cc b/g13d/helper.cc similarity index 100% rename from src/helper.cc rename to g13d/helper.cc diff --git a/src/helper.h b/g13d/helper.h similarity index 100% rename from src/helper.h rename to g13d/helper.h diff --git a/src/logo.h b/g13d/logo.h similarity index 100% rename from src/logo.h rename to g13d/logo.h diff --git a/src/pbm2lpbm.c b/g13d/pbm2lpbm.cc similarity index 100% rename from src/pbm2lpbm.c rename to g13d/pbm2lpbm.cc