Compare commits
6 Commits
764dbaa126
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
d46305d7ab
|
|||
|
7edd9720cd
|
|||
|
ab5ca0cf8b
|
|||
|
f699b89dad
|
|||
|
9244d2b657
|
|||
|
4302fc4baf
|
@@ -1,28 +1,25 @@
|
|||||||
project (wdmtg C)
|
cmake_minimum_required (VERSION 3.0)
|
||||||
cmake_minimum_required (VERSION 2.8.12)
|
project (wdmtg VERSION 0.1.0 LANGUAGES C)
|
||||||
|
|
||||||
# Vala really sucks at producing good C code
|
# Vala really sucks at producing good C code
|
||||||
if ("${CMAKE_C_COMPILER_ID}" MATCHES "GNU" OR CMAKE_COMPILER_IS_GNUCC)
|
if ("${CMAKE_C_COMPILER_ID}" MATCHES "GNU" OR CMAKE_COMPILER_IS_GNUCC)
|
||||||
set (CMAKE_C_FLAGS_RELEASE
|
set (CMAKE_C_FLAGS_RELEASE
|
||||||
"${CMAKE_C_FLAGS_RELEASE} -Wno-ignored-qualifiers -Wno-incompatible-pointer-types")
|
"${CMAKE_C_FLAGS_RELEASE} -Wno-ignored-qualifiers -Wno-incompatible-pointer-types")
|
||||||
endif ("${CMAKE_C_COMPILER_ID}" MATCHES "GNU" OR CMAKE_COMPILER_IS_GNUCC)
|
endif ()
|
||||||
|
|
||||||
# Options
|
# Options
|
||||||
option (OPTION_NOINSTALL "Only for developers; work without installing" OFF)
|
option (OPTION_NOINSTALL "Only for developers; work without installing" OFF)
|
||||||
|
|
||||||
# Version
|
|
||||||
set (project_VERSION "0.1.0")
|
|
||||||
|
|
||||||
# Set some variables
|
# Set some variables
|
||||||
if (OPTION_NOINSTALL)
|
if (OPTION_NOINSTALL)
|
||||||
set (project_SHARE_DIR ${PROJECT_SOURCE_DIR}/share)
|
set (project_SHARE_DIR ${PROJECT_SOURCE_DIR}/share)
|
||||||
elseif (WIN32)
|
elseif (WIN32)
|
||||||
set (project_SHARE_DIR ../share)
|
set (project_SHARE_DIR ../share)
|
||||||
set (project_INSTALL_SHARE_DIR share)
|
set (project_INSTALL_SHARE_DIR share)
|
||||||
else (OPTION_NOINSTALL)
|
else ()
|
||||||
set (project_SHARE_DIR ${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME})
|
set (project_SHARE_DIR ${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME})
|
||||||
set (project_INSTALL_SHARE_DIR share/${PROJECT_NAME})
|
set (project_INSTALL_SHARE_DIR share/${PROJECT_NAME})
|
||||||
endif (OPTION_NOINSTALL)
|
endif ()
|
||||||
|
|
||||||
# Gather package information
|
# Gather package information
|
||||||
set (CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
|
set (CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
|
||||||
@@ -68,14 +65,12 @@ set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "Activity tracker")
|
|||||||
set (CPACK_PACKAGE_VENDOR "Premysl Eric Janouch")
|
set (CPACK_PACKAGE_VENDOR "Premysl Eric Janouch")
|
||||||
set (CPACK_PACKAGE_CONTACT "Přemysl Eric Janouch <p@janouch.name>")
|
set (CPACK_PACKAGE_CONTACT "Přemysl Eric Janouch <p@janouch.name>")
|
||||||
set (CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE")
|
set (CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE")
|
||||||
set (CPACK_PACKAGE_VERSION ${project_VERSION})
|
|
||||||
set (CPACK_GENERATOR "TGZ;ZIP")
|
set (CPACK_GENERATOR "TGZ;ZIP")
|
||||||
set (CPACK_PACKAGE_FILE_NAME
|
set (CPACK_PACKAGE_FILE_NAME
|
||||||
"${PROJECT_NAME}-${CPACK_PACKAGE_VERSION}-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
|
"${PROJECT_NAME}-${PROJECT_VERSION}-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
|
||||||
set (CPACK_PACKAGE_INSTALL_DIRECTORY "${PROJECT_NAME}-${CPACK_PACKAGE_VERSION}")
|
set (CPACK_PACKAGE_INSTALL_DIRECTORY "${PROJECT_NAME}-${PROJECT_VERSION}")
|
||||||
set (CPACK_SOURCE_GENERATOR "TGZ;ZIP")
|
set (CPACK_SOURCE_GENERATOR "TGZ;ZIP")
|
||||||
set (CPACK_SOURCE_IGNORE_FILES "/build;/\\\\.git")
|
set (CPACK_SOURCE_IGNORE_FILES "/build;/\\\\.git")
|
||||||
set (CPACK_SOURCE_PACKAGE_FILE_NAME "${PROJECT_NAME}-${CPACK_PACKAGE_VERSION}")
|
set (CPACK_SOURCE_PACKAGE_FILE_NAME "${PROJECT_NAME}-${PROJECT_VERSION}")
|
||||||
|
|
||||||
include (CPack)
|
include (CPack)
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
#define PROJECT_NAME "@CMAKE_PROJECT_NAME@"
|
#define PROJECT_NAME "@PROJECT_NAME@"
|
||||||
#define PROJECT_VERSION "@project_VERSION@"
|
#define PROJECT_VERSION "@PROJECT_VERSION@"
|
||||||
#define SHARE_DIR "@project_SHARE_DIR@"
|
#define SHARE_DIR "@project_SHARE_DIR@"
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ add_project_arguments(['--vapidir', meson.current_source_dir()],
|
|||||||
language: 'vala')
|
language: 'vala')
|
||||||
|
|
||||||
conf = configuration_data()
|
conf = configuration_data()
|
||||||
conf.set('CMAKE_PROJECT_NAME', meson.project_name())
|
conf.set('PROJECT_NAME', meson.project_name())
|
||||||
conf.set('project_VERSION', meson.project_version())
|
conf.set('PROJECT_VERSION', meson.project_version())
|
||||||
configure_file(
|
configure_file(
|
||||||
input : 'config.h.in',
|
input : 'config.h.in',
|
||||||
output : 'config.h',
|
output : 'config.h',
|
||||||
|
|||||||
23
wdmtg.c
23
wdmtg.c
@@ -15,10 +15,6 @@
|
|||||||
// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
//
|
//
|
||||||
|
|
||||||
#include <gtk/gtk.h>
|
|
||||||
#include <glib.h>
|
|
||||||
#include <sqlite3.h>
|
|
||||||
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
@@ -28,6 +24,10 @@
|
|||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <sys/un.h>
|
#include <sys/un.h>
|
||||||
|
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
#include <glib.h>
|
||||||
|
#include <sqlite3.h>
|
||||||
|
|
||||||
#include <xcb/xcb.h>
|
#include <xcb/xcb.h>
|
||||||
#include <xcb/sync.h>
|
#include <xcb/sync.h>
|
||||||
|
|
||||||
@@ -303,7 +303,7 @@ x_window_title(xcb_window_t window)
|
|||||||
GString *title;
|
GString *title;
|
||||||
if (!(title = x_text_property(window, gen.atom_net_wm_name))
|
if (!(title = x_text_property(window, gen.atom_net_wm_name))
|
||||||
&& !(title = x_text_property(window, XCB_ATOM_WM_NAME)))
|
&& !(title = x_text_property(window, XCB_ATOM_WM_NAME)))
|
||||||
return g_strdup("broken");
|
return g_strdup("");
|
||||||
return g_string_free(title, false);
|
return g_string_free(title, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -540,11 +540,16 @@ generator_init(void)
|
|||||||
g_free(subpath);
|
g_free(subpath);
|
||||||
g_key_file_free(kf);
|
g_key_file_free(kf);
|
||||||
|
|
||||||
|
// Write a start marker so that we can reliably detect interruptions
|
||||||
|
struct event *event = g_slice_new0(struct event);
|
||||||
|
event->timestamp = -1;
|
||||||
|
g_async_queue_push(g.queue, event);
|
||||||
|
|
||||||
|
update_current_window();
|
||||||
|
|
||||||
gint64 timeout_ms = timeout * 1000;
|
gint64 timeout_ms = timeout * 1000;
|
||||||
gen.idle_timeout.hi = timeout_ms >> 32;
|
gen.idle_timeout.hi = timeout_ms >> 32;
|
||||||
gen.idle_timeout.lo = timeout_ms;
|
gen.idle_timeout.lo = timeout_ms;
|
||||||
|
|
||||||
update_current_window();
|
|
||||||
set_idle_alarm(&gen.idle_alarm_inactive,
|
set_idle_alarm(&gen.idle_alarm_inactive,
|
||||||
XCB_SYNC_TESTTYPE_POSITIVE_COMPARISON, gen.idle_timeout);
|
XCB_SYNC_TESTTYPE_POSITIVE_COMPARISON, gen.idle_timeout);
|
||||||
|
|
||||||
@@ -739,7 +744,9 @@ main(int argc, char *argv[])
|
|||||||
g_build_filename(g_get_user_data_dir(), PROJECT_NAME, NULL);
|
g_build_filename(g_get_user_data_dir(), PROJECT_NAME, NULL);
|
||||||
g_mkdir_with_parents(data_path, 0755);
|
g_mkdir_with_parents(data_path, 0755);
|
||||||
|
|
||||||
// Bind to a control socket, also ensuring only one instance is running
|
// Bind to a control socket, also ensuring only one instance is running.
|
||||||
|
// We're intentionally not using XDG_RUNTIME_DIR so that what is effectively
|
||||||
|
// the database lock is right next to the database.
|
||||||
gchar *socket_path = g_build_filename(data_path, "socket", NULL);
|
gchar *socket_path = g_build_filename(data_path, "socket", NULL);
|
||||||
int socket_fd = socket_init(socket_path);
|
int socket_fd = socket_init(socket_path);
|
||||||
g_free(socket_path);
|
g_free(socket_path);
|
||||||
|
|||||||
Reference in New Issue
Block a user