From 573554b9decf74f3b57ab6d26252700132255525 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Eric=20Janouch?=
Date: Fri, 15 Oct 2021 12:08:44 +0200
Subject: [PATCH] sdgtk -> sdgui, improve build, mention in README
It's finally not horrible.
---
CMakeLists.txt | 24 +++++++++++++++---------
README.adoc | 5 +++++
src/{sdgtk.c => sdgui.c} | 0
src/sdtui.c | 29 +++++++++++++++++++++++++++--
src/utils.c | 28 ----------------------------
src/utils.h | 1 -
6 files changed, 47 insertions(+), 40 deletions(-)
rename src/{sdgtk.c => sdgui.c} (100%)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f661cbc..38b0bf7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -78,6 +78,9 @@ if (WITH_X11)
list (APPEND dependencies_LIBRARIES ${xcb_LIBRARIES})
endif ()
+pkg_check_modules (gtk gtk+-3.0)
+option (WITH_GUI "Build a work-in-progress GTK+ UI" ${gtk_FOUND})
+
link_directories (${dependencies_LIBRARY_DIRS})
include_directories (${ZLIB_INCLUDE_DIRS} ${icu_INCLUDE_DIRS}
${dependencies_INCLUDE_DIRS} ${Ncursesw_INCLUDE_DIRS}
@@ -117,7 +120,7 @@ add_custom_target (docs ALL DEPENDS ${project_MAN_PAGES})
# Project libraries
set (project_common_libraries ${ZLIB_LIBRARIES} ${icu_LIBRARIES}
- ${dependencies_LIBRARIES} ${Ncursesw_LIBRARIES} termo-static)
+ ${dependencies_LIBRARIES})
set (project_common_headers
${PROJECT_BINARY_DIR}/config.h
@@ -151,17 +154,17 @@ set (project_headers
add_definitions (-DGLIB_DISABLE_DEPRECATION_WARNINGS)
add_executable (${PROJECT_NAME}
${project_sources} ${project_headers} ${project_common_sources})
-target_link_libraries (${PROJECT_NAME} ${project_common_libraries})
+target_link_libraries (${PROJECT_NAME} ${project_common_libraries}
+ ${Ncursesw_LIBRARIES} termo-static)
-# Experimental GTK+ frontend, we link it with ncurses but we don't care
-pkg_check_modules (gtk gtk+-3.0)
-if (gtk_FOUND)
- add_executable (sdgtk EXCLUDE_FROM_ALL
- src/sdgtk.c
+# The same for the alternative GTK+ UI
+if (WITH_GUI)
+ add_executable (sdgui
+ src/sdgui.c
src/stardict-view.c
${project_common_sources})
- target_include_directories (sdgtk PUBLIC ${gtk_INCLUDE_DIRS})
- target_link_libraries (sdgtk ${gtk_LIBRARIES} ${project_common_libraries})
+ target_include_directories (sdgui PUBLIC ${gtk_INCLUDE_DIRS})
+ target_link_libraries (sdgui ${gtk_LIBRARIES} ${project_common_libraries})
endif ()
# Tools
@@ -193,6 +196,9 @@ add_custom_target (dicts DEPENDS ${dicts_targets})
include (GNUInstallDirs)
install (TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR})
install (FILES LICENSE DESTINATION ${CMAKE_INSTALL_DOCDIR})
+if (WITH_GUI)
+ install (TARGETS sdgui DESTINATION ${CMAKE_INSTALL_BINDIR})
+endif ()
foreach (page ${project_MAN_PAGES})
string (REGEX MATCH "\\.([0-9])$" manpage_suffix "${page}")
diff --git a/README.adoc b/README.adoc
index 6047f44..727d3a0 100644
--- a/README.adoc
+++ b/README.adoc
@@ -79,6 +79,11 @@ Linux and/or BSD distributions:
Given the entangledness of this codebase, issues with the file format,
and general undesirability of terminal UIs, it might be better to start anew.
+Graphical UI
+------------
+With GTK+ 3 development packages installed, an alternative, work-in-progress
+frontend will be built and installed.
+
Contributing and Support
------------------------
Use https://git.janouch.name/p/sdtui to report any bugs, request features,
diff --git a/src/sdgtk.c b/src/sdgui.c
similarity index 100%
rename from src/sdgtk.c
rename to src/sdgui.c
diff --git a/src/sdtui.c b/src/sdtui.c
index 3be34f4..1158d05 100644
--- a/src/sdtui.c
+++ b/src/sdtui.c
@@ -36,8 +36,12 @@
#include