mirror of
https://github.com/ZoiteChat/zoitechat.git
synced 2026-03-10 16:00:18 +00:00
build: Replace Autotools with Meson
Quick rundown of benefits: - Much faster: - Autotools (with autogen): 22 seconds - Meson: 7 seconds - Meson (with ccache): 2 seconds - Simpler: - ~1000 lines smaller - Single simple language - Potentially better Windows (Visual Studio) support What is not done: - Complete Windows support - OSX support (easy) Closes #2013 Closes #1937 Closes #1803
This commit is contained in:
@@ -1,17 +0,0 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
EXTRA_DIST = version-script
|
||||
|
||||
if DO_TEXT
|
||||
text_fe = fe-text
|
||||
endif
|
||||
|
||||
if DO_GTK
|
||||
gtk_fe = fe-gtk
|
||||
endif
|
||||
|
||||
SUBDIRS = common $(gtk_fe) $(text_fe)
|
||||
|
||||
if WITH_TM
|
||||
SUBDIRS += htm
|
||||
endif
|
||||
@@ -1,89 +0,0 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
include $(top_srcdir)/m4/clang-analyze.am
|
||||
|
||||
noinst_LIBRARIES = libhexchatcommon.a
|
||||
|
||||
AM_CPPFLAGS = $(COMMON_CFLAGS) -I$(top_srcdir)
|
||||
|
||||
EXTRA_DIST = \
|
||||
cfgfiles.h \
|
||||
chanopt.h \
|
||||
ctcp.h \
|
||||
dcc.h \
|
||||
fe.h \
|
||||
hexchat.h \
|
||||
hexchatc.h \
|
||||
hexchat-plugin.h \
|
||||
history.h \
|
||||
ignore.h \
|
||||
inbound.h \
|
||||
inet.h \
|
||||
make-te.c \
|
||||
marshalers.list \
|
||||
modes.h \
|
||||
network.h \
|
||||
notify.h \
|
||||
outbound.h \
|
||||
plugin.h \
|
||||
plugin-identd.h \
|
||||
plugin-timer.h \
|
||||
proto-irc.h \
|
||||
server.h \
|
||||
servlist.h \
|
||||
ssl.h \
|
||||
ssl.c \
|
||||
text.h \
|
||||
typedef.h \
|
||||
textenums.h \
|
||||
textevents.h \
|
||||
textevents.in \
|
||||
tree.h \
|
||||
url.h \
|
||||
userlist.h \
|
||||
util.h
|
||||
|
||||
if USE_OPENSSL
|
||||
ssl_c = ssl.c
|
||||
endif
|
||||
|
||||
if USE_DBUS
|
||||
dbusdir = dbus
|
||||
libhexchatcommon_a_LIBADD = \
|
||||
$(top_builddir)/src/common/dbus/dbus-*.$(OBJEXT)
|
||||
endif
|
||||
SUBDIRS = $(dbusdir) .
|
||||
|
||||
if DO_PLUGIN
|
||||
include_HEADERS = hexchat-plugin.h
|
||||
endif
|
||||
|
||||
noinst_PROGRAMS = make-te
|
||||
|
||||
libhexchatcommon_a_SOURCES = cfgfiles.c chanopt.c ctcp.c dcc.c hexchat.c \
|
||||
history.c ignore.c inbound.c marshal.c modes.c network.c notify.c \
|
||||
outbound.c plugin.c plugin-identd.c plugin-timer.c proto-irc.c server.c servlist.c \
|
||||
$(ssl_c) text.c tree.c url.c userlist.c util.c
|
||||
libhexchatcommon_a_CFLAGS = $(LIBPROXY_CFLAGS)
|
||||
|
||||
textenums.h: textevents.h
|
||||
|
||||
textevents.h: $(srcdir)/textevents.in make-te
|
||||
$(AM_V_GEN) ./make-te < $< > $@ 2> textenums.h
|
||||
|
||||
marshal.h: $(srcdir)/marshalers.list
|
||||
$(AM_V_GEN) $(GLIB_GENMARSHAL) --prefix=_hexchat_marshal --header $< > $@
|
||||
|
||||
marshal.c: $(srcdir)/marshalers.list
|
||||
$(AM_V_GEN) $(GLIB_GENMARSHAL) --prefix=_hexchat_marshal --body $< > $@
|
||||
|
||||
|
||||
if DO_STATIC_ANALYSIS
|
||||
analyze_plists = $(libhexchatcommon_a_SOURCES:%.c=%.plist)
|
||||
all-local: $(analyze_plists)
|
||||
MOSTLYCLEANFILES = $(analyze_plists)
|
||||
endif
|
||||
|
||||
BUILT_SOURCES = textenums.h textevents.h marshal.c marshal.h
|
||||
|
||||
CLEANFILES = $(BUILT_SOURCES)
|
||||
@@ -291,8 +291,8 @@ cfg_get_int (char *cfg, char *var)
|
||||
char *xdir = NULL; /* utf-8 encoding */
|
||||
|
||||
#ifdef WIN32
|
||||
#include <Windows.h>
|
||||
#include <ShlObj.h>
|
||||
#include <windows.h>
|
||||
#include <shlobj.h>
|
||||
#endif
|
||||
|
||||
char *
|
||||
@@ -552,7 +552,7 @@ const struct prefs vars[] =
|
||||
{"stamp_text", P_OFFINT (hex_stamp_text), TYPE_BOOL},
|
||||
{"stamp_text_format", P_OFFSET (hex_stamp_text_format), TYPE_STR},
|
||||
|
||||
{"text_autocopy_color", P_OFFINT (hex_text_autocopy_color), TYPE_BOOL},
|
||||
{"text_autocopy_color", P_OFFINT (hex_text_autocopy_color), TYPE_BOOL},
|
||||
{"text_autocopy_stamp", P_OFFINT (hex_text_autocopy_stamp), TYPE_BOOL},
|
||||
{"text_autocopy_text", P_OFFINT (hex_text_autocopy_text), TYPE_BOOL},
|
||||
{"text_background", P_OFFSET (hex_text_background), TYPE_STR},
|
||||
@@ -635,7 +635,7 @@ get_default_language (void)
|
||||
if (!locale)
|
||||
locale = g_getenv ("LANG") ? g_getenv ("LANG") : "en";
|
||||
|
||||
/* we might end up with something like "en_US.UTF-8". We will try to
|
||||
/* we might end up with something like "en_US.UTF-8". We will try to
|
||||
* search for "en_US"; if it fails we search for "en".
|
||||
*/
|
||||
lang = g_strdup (locale);
|
||||
@@ -735,7 +735,7 @@ load_default_config(void)
|
||||
memset (&prefs, 0, sizeof (struct hexchatprefs));
|
||||
|
||||
/* put in default values, anything left out is automatically zero */
|
||||
|
||||
|
||||
/* BOOLEANS */
|
||||
prefs.hex_away_show_once = 1;
|
||||
prefs.hex_away_track = 1;
|
||||
@@ -918,7 +918,7 @@ make_config_dirs (void)
|
||||
|
||||
if (g_mkdir_with_parents (get_xdir (), 0700) != 0)
|
||||
return -1;
|
||||
|
||||
|
||||
buf = g_build_filename (get_xdir (), "addons", NULL);
|
||||
if (g_mkdir (buf, 0700) != 0)
|
||||
{
|
||||
@@ -926,7 +926,7 @@ make_config_dirs (void)
|
||||
return -1;
|
||||
}
|
||||
g_free (buf);
|
||||
|
||||
|
||||
buf = g_build_filename (get_xdir (), HEXCHAT_SOUND_DIR, NULL);
|
||||
if (g_mkdir (buf, 0700) != 0)
|
||||
{
|
||||
@@ -983,7 +983,7 @@ load_config (void)
|
||||
i++;
|
||||
}
|
||||
while (vars[i].name);
|
||||
|
||||
|
||||
g_free (cfg);
|
||||
|
||||
if (prefs.hex_gui_win_height < 138)
|
||||
@@ -1009,7 +1009,7 @@ save_config (void)
|
||||
|
||||
config = default_file ();
|
||||
new_config = g_strconcat (config, ".new", NULL);
|
||||
|
||||
|
||||
fh = g_open (new_config, OFLAGS | O_TRUNC | O_WRONLY | O_CREAT, 0600);
|
||||
if (fh == -1)
|
||||
{
|
||||
@@ -1023,7 +1023,7 @@ save_config (void)
|
||||
g_free (new_config);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
i = 0;
|
||||
do
|
||||
{
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
noinst_LIBRARIES = libhexchatdbus.a
|
||||
libhexchatdbus_a_SOURCES = \
|
||||
dbus-plugin.c \
|
||||
dbus-plugin.h \
|
||||
dbus-client.c \
|
||||
dbus-client.h
|
||||
|
||||
EXTRA_DIST = \
|
||||
remote-object.xml \
|
||||
example.py \
|
||||
org.hexchat.service.service.in
|
||||
|
||||
BUILT_SOURCES = \
|
||||
remote-object-glue.h
|
||||
|
||||
# Dbus service file
|
||||
servicedir = $(DBUS_SERVICES_DIR)
|
||||
service_in_files = org.hexchat.service.service.in
|
||||
service_DATA = $(service_in_files:.service.in=.service)
|
||||
|
||||
CLEANFILES = $(BUILT_SOURCES) $(service_DATA)
|
||||
|
||||
AM_CPPFLAGS = -I$(top_srcdir)/src/common $(COMMON_CFLAGS) $(DBUS_CFLAGS)
|
||||
|
||||
noinst_PROGRAMS = example
|
||||
example_SOURCES = example.c
|
||||
example_LDADD = $(DBUS_LIBS) $(GLIB_LIBS)
|
||||
|
||||
remote-object-glue.h: remote-object.xml
|
||||
$(AM_V_GEN) $(LIBTOOL) --mode=execute $(DBUS_BINDING_TOOL) --prefix=remote_object --mode=glib-server --output=$@ $<
|
||||
|
||||
# Rule to make the service file with bindir expanded
|
||||
$(service_DATA): $(service_in_files) Makefile
|
||||
@sed -e "s|\@bindir\@|$(bindir)|" $< > $@
|
||||
|
||||
44
src/common/dbus/meson.build
Normal file
44
src/common/dbus/meson.build
Normal file
@@ -0,0 +1,44 @@
|
||||
dbus_deps = [
|
||||
dependency('dbus-glib-1')
|
||||
]
|
||||
|
||||
dbus_sources = [
|
||||
'dbus-plugin.c',
|
||||
'dbus-client.c'
|
||||
]
|
||||
|
||||
dbus_includes = [
|
||||
include_directories('..'),
|
||||
config_h_include
|
||||
]
|
||||
|
||||
dbus_service_dir = join_paths(get_option('datadir'), 'dbus-1/services')
|
||||
|
||||
dbus_conf = configuration_data()
|
||||
dbus_conf.set('bindir', join_paths(get_option('prefix'), get_option('bindir')))
|
||||
configure_file(
|
||||
input: 'org.hexchat.service.service.in',
|
||||
output: 'org.hexchat.service.service',
|
||||
configuration: dbus_conf,
|
||||
install: true,
|
||||
install_dir: dbus_service_dir
|
||||
)
|
||||
|
||||
dbus_binding_tool = find_program('dbus-binding-tool')
|
||||
dbus_remote_object = custom_target('remote-object-glue',
|
||||
input: 'remote-object.xml',
|
||||
output: 'remote-object-glue.h',
|
||||
command: [dbus_binding_tool, '--prefix=remote_object', '--mode=glib-server',
|
||||
'--output=@OUTPUT@', '@INPUT@']
|
||||
)
|
||||
|
||||
hexchat_dbus = static_library('hexchatdbus',
|
||||
sources: [dbus_remote_object, marshal] + dbus_sources,
|
||||
dependencies: common_deps + dbus_deps,
|
||||
include_directories: dbus_includes,
|
||||
pic: true
|
||||
)
|
||||
|
||||
hexchat_dbus_dep = declare_dependency(
|
||||
link_with: hexchat_dbus
|
||||
)
|
||||
55
src/common/make-te.py
Executable file
55
src/common/make-te.py
Executable file
@@ -0,0 +1,55 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import sys
|
||||
|
||||
inf = open(sys.argv[1])
|
||||
eventf = open(sys.argv[2], 'w')
|
||||
enumsf = open(sys.argv[3], 'w')
|
||||
|
||||
enumsf.write(\
|
||||
'''
|
||||
/* this file is auto generated, edit textevents.in instead! */
|
||||
|
||||
enum
|
||||
{
|
||||
''')
|
||||
|
||||
eventf.write(\
|
||||
'''
|
||||
/* this file is auto generated, edit textevents.in instead! */
|
||||
|
||||
const struct text_event te[] = {
|
||||
''')
|
||||
|
||||
try:
|
||||
while True:
|
||||
name = inf.readline().strip()
|
||||
event_enum = inf.readline().strip()
|
||||
event_help = inf.readline().strip()
|
||||
event_str = inf.readline().strip()
|
||||
args = inf.readline().strip()
|
||||
translate = True
|
||||
|
||||
if args[0] == 'n':
|
||||
args = int(args[1]) | 128
|
||||
translate = False
|
||||
else:
|
||||
args = int(args)
|
||||
|
||||
if translate:
|
||||
event_str = 'N_("%s")' %event_str
|
||||
else:
|
||||
event_str = '"%s"' %event_str
|
||||
|
||||
enumsf.write('\t%s,\n' %event_enum)
|
||||
eventf.write('\n{"%s", %s, %u,\n%s},\n' %(
|
||||
name, event_help, args, event_str,
|
||||
))
|
||||
|
||||
inf.readline() # whitespace
|
||||
except IndexError:
|
||||
pass
|
||||
|
||||
enumsf.write('\tNUM_XP\n};\n')
|
||||
eventf.write('};\n')
|
||||
|
||||
116
src/common/meson.build
Normal file
116
src/common/meson.build
Normal file
@@ -0,0 +1,116 @@
|
||||
common_sources = [
|
||||
'cfgfiles.c',
|
||||
'chanopt.c',
|
||||
'ctcp.c',
|
||||
'dcc.c',
|
||||
'hexchat.c',
|
||||
'history.c',
|
||||
'ignore.c',
|
||||
'inbound.c',
|
||||
'modes.c',
|
||||
'network.c',
|
||||
'notify.c',
|
||||
'outbound.c',
|
||||
'plugin.c',
|
||||
'plugin-identd.c',
|
||||
'plugin-timer.c',
|
||||
'proto-irc.c',
|
||||
'server.c',
|
||||
'servlist.c',
|
||||
'text.c',
|
||||
'tree.c',
|
||||
'url.c',
|
||||
'userlist.c',
|
||||
'util.c'
|
||||
]
|
||||
|
||||
common_deps = [
|
||||
libgio_dep,
|
||||
]
|
||||
|
||||
common_includes = [
|
||||
config_h_include,
|
||||
include_directories('.')
|
||||
]
|
||||
|
||||
common_cflags = [
|
||||
'-DHAVE_CONFIG_H',
|
||||
]
|
||||
|
||||
if host_machine.system() == 'windows'
|
||||
common_deps += [
|
||||
cc.find_library('ws2_32'), # winsock
|
||||
cc.find_library('winmm'), # playsound
|
||||
cc.find_library('wbemuuid'), # sysinfo
|
||||
]
|
||||
|
||||
common_sources += 'sysinfo/win32/backend.c'
|
||||
common_includes += include_directories('sysinfo')
|
||||
endif
|
||||
|
||||
marshal = gnome.genmarshal('marshal',
|
||||
sources: 'marshalers.list',
|
||||
prefix: '_hexchat_marshal',
|
||||
internal: true
|
||||
)
|
||||
|
||||
make_te = find_program('make-te.py')
|
||||
|
||||
textevents = custom_target('textevents',
|
||||
input: 'textevents.in',
|
||||
output: ['textevents.h', 'textenums.h'],
|
||||
command: [make_te, '@INPUT@', '@OUTPUT0@', '@OUTPUT1@']
|
||||
)
|
||||
|
||||
# TODO:
|
||||
# LOOKUPD
|
||||
# SIGACTION
|
||||
# HAVE_GTK_MAC
|
||||
|
||||
if get_option('with-ssl')
|
||||
common_sources += 'ssl.c'
|
||||
common_deps += libssl_dep
|
||||
endif
|
||||
|
||||
if get_option('with-libproxy')
|
||||
common_deps += dependency('libproxy-1.0')
|
||||
endif
|
||||
|
||||
if get_option('with-libcanberra')
|
||||
common_deps += dependency('libcanberra', version: '>= 0.22')
|
||||
endif
|
||||
|
||||
if get_option('with-dbus')
|
||||
subdir('dbus')
|
||||
common_deps += hexchat_dbus_dep
|
||||
common_includes += include_directories('dbus')
|
||||
endif
|
||||
|
||||
if get_option('with-plugin')
|
||||
common_deps += libgmodule_dep
|
||||
common_cflags += '-DHEXCHATLIBDIR="@0@"'.format(join_paths(get_option('prefix'),
|
||||
get_option('libdir'),
|
||||
'hexchat/plugins'))
|
||||
|
||||
install_headers('hexchat-plugin.h')
|
||||
endif
|
||||
|
||||
hexchat_common = static_library('hexchatcommon',
|
||||
sources: [textevents] + marshal + common_sources,
|
||||
include_directories: config_h_include,
|
||||
dependencies: common_deps,
|
||||
c_args: common_cflags,
|
||||
pic: true
|
||||
)
|
||||
|
||||
hexchat_common_dep = declare_dependency(
|
||||
link_with: hexchat_common,
|
||||
include_directories: common_includes,
|
||||
compile_args: common_cflags,
|
||||
dependencies: libgio_dep,
|
||||
)
|
||||
|
||||
hexchat_plugin_dep = declare_dependency(
|
||||
include_directories: common_includes,
|
||||
compile_args: common_cflags,
|
||||
)
|
||||
@@ -21,6 +21,7 @@
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <wchar.h>
|
||||
#include <windows.h>
|
||||
#include <wbemidl.h>
|
||||
|
||||
@@ -41,17 +42,17 @@ typedef enum
|
||||
QUERY_WMI_HDD,
|
||||
} QueryWmiType;
|
||||
|
||||
char *query_wmi (QueryWmiType mode);
|
||||
char *read_os_name (IWbemClassObject *object);
|
||||
char *read_cpu_info (IWbemClassObject *object);
|
||||
char *read_vga_name (IWbemClassObject *object);
|
||||
static char *query_wmi (QueryWmiType mode);
|
||||
static char *read_os_name (IWbemClassObject *object);
|
||||
static char *read_cpu_info (IWbemClassObject *object);
|
||||
static char *read_vga_name (IWbemClassObject *object);
|
||||
|
||||
guint64 hdd_capacity;
|
||||
guint64 hdd_free_space;
|
||||
char *read_hdd_info (IWbemClassObject *object);
|
||||
static guint64 hdd_capacity;
|
||||
static guint64 hdd_free_space;
|
||||
static char *read_hdd_info (IWbemClassObject *object);
|
||||
|
||||
char *bstr_to_utf8 (BSTR bstr);
|
||||
guint64 variant_to_uint64 (VARIANT *variant);
|
||||
static char *bstr_to_utf8 (BSTR bstr);
|
||||
static guint64 variant_to_uint64 (VARIANT *variant);
|
||||
|
||||
char *
|
||||
sysinfo_get_cpu (void)
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
#include <ctype.h>
|
||||
#include "util.h"
|
||||
|
||||
#if defined (USING_FREEBSD) || defined (__APPLE__)
|
||||
#if defined (__FreeBSD__) || defined (__APPLE__)
|
||||
#include <sys/sysctl.h>
|
||||
#endif
|
||||
|
||||
@@ -360,13 +360,13 @@ strip_hidden_attribute (char *src, char *dst)
|
||||
return len;
|
||||
}
|
||||
|
||||
#if defined (USING_LINUX) || defined (USING_FREEBSD) || defined (__APPLE__) || defined (__CYGWIN__)
|
||||
#if defined (__linux__) || defined (__FreeBSD__) || defined (__APPLE__) || defined (__CYGWIN__)
|
||||
|
||||
static void
|
||||
get_cpu_info (double *mhz, int *cpus)
|
||||
{
|
||||
|
||||
#if defined(USING_LINUX) || defined (__CYGWIN__)
|
||||
#if defined(__linux__) || defined (__CYGWIN__)
|
||||
|
||||
char buf[256];
|
||||
int fh;
|
||||
@@ -404,7 +404,7 @@ get_cpu_info (double *mhz, int *cpus)
|
||||
*cpus = 1;
|
||||
|
||||
#endif
|
||||
#ifdef USING_FREEBSD
|
||||
#ifdef __FreeBSD__
|
||||
|
||||
int mib[2], ncpu;
|
||||
u_long freq;
|
||||
@@ -495,7 +495,7 @@ get_sys_str (int with_cpu)
|
||||
char *
|
||||
get_sys_str (int with_cpu)
|
||||
{
|
||||
#if defined (USING_LINUX) || defined (USING_FREEBSD) || defined (__APPLE__) || defined (__CYGWIN__)
|
||||
#if defined (__linux__) || defined (__FreeBSD__) || defined (__APPLE__) || defined (__CYGWIN__)
|
||||
double mhz;
|
||||
#endif
|
||||
int cpus = 1;
|
||||
@@ -507,7 +507,7 @@ get_sys_str (int with_cpu)
|
||||
|
||||
uname (&un);
|
||||
|
||||
#if defined (USING_LINUX) || defined (USING_FREEBSD) || defined (__APPLE__) || defined (__CYGWIN__)
|
||||
#if defined (__linux__) || defined (__FreeBSD__) || defined (__APPLE__) || defined (__CYGWIN__)
|
||||
get_cpu_info (&mhz, &cpus);
|
||||
if (mhz && with_cpu)
|
||||
{
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
|
||||
include $(top_srcdir)/m4/clang-analyze.am
|
||||
|
||||
localedir = $(datadir)/locale
|
||||
|
||||
bin_PROGRAMS = hexchat
|
||||
|
||||
AM_CPPFLAGS = $(GUI_CFLAGS) -DLOCALEDIR=\"$(localedir)\"
|
||||
|
||||
hexchat_LDADD = $(top_builddir)/src/common/libhexchatcommon.a $(GUI_LIBS)
|
||||
|
||||
EXTRA_DIST = \
|
||||
ascii.h banlist.h chanlist.h chanview.h chanview-tabs.c \
|
||||
chanview-tree.c custom-list.h editlist.h fe-gtk.h fkeys.h gtkutil.h joind.h \
|
||||
maingui.h menu.h notifygui.h notifications palette.h pixmaps.h plugin-notification.h \
|
||||
plugin-tray.h plugingui.c plugingui.h rawlog.h servlistgui.h setup.h sexy-iso-codes.h \
|
||||
sexy-spell-entry.h textgui.h urlgrab.h userlistgui.h xtext.h
|
||||
|
||||
BUILT_SOURCES = resources.h resources.c
|
||||
|
||||
CLEANFILES = $(BUILT_SOURCES)
|
||||
|
||||
if DO_PLUGIN
|
||||
plugingui_c = plugingui.c
|
||||
endif
|
||||
|
||||
if HAVE_ISO_CODES
|
||||
iso_codes_c = sexy-iso-codes.c
|
||||
endif
|
||||
|
||||
if USE_LIBNOTIFY
|
||||
notify_c = notifications/notification-libnotify.c
|
||||
else
|
||||
if HAVE_GTK_MAC
|
||||
notify_c = notifications/notification-osx.m
|
||||
hexchat_LDFLAGS = -framework Foundation
|
||||
else
|
||||
notify_c = notifications/notification-dummy.c
|
||||
endif
|
||||
endif
|
||||
|
||||
nodist_hexchat_SOURCES = resources.h resources.c
|
||||
hexchat_SOURCES = ascii.c banlist.c chanlist.c chanview.c custom-list.c \
|
||||
dccgui.c editlist.c fe-gtk.c fkeys.c gtkutil.c ignoregui.c joind.c menu.c \
|
||||
maingui.c notifygui.c $(notify_c) palette.c pixmaps.c plugin-tray.c $(plugingui_c) \
|
||||
plugin-notification.c rawlog.c servlistgui.c setup.c $(iso_codes_c) \
|
||||
sexy-spell-entry.c textgui.c urlgrab.c userlistgui.c xtext.c
|
||||
hexchat_CPPFLAGS = -I$(top_builddir)/src/common $(AM_CPPFLAGS)
|
||||
|
||||
resources_files = $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(top_srcdir)/data --generate-dependencies $(top_srcdir)/data/hexchat.gresource.xml)
|
||||
|
||||
resources.h: $(top_srcdir)/data/hexchat.gresource.xml $(resources_files)
|
||||
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(top_srcdir)/data --generate-header --manual-register $<
|
||||
|
||||
resources.c: $(top_srcdir)/data/hexchat.gresource.xml $(resources_files)
|
||||
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(top_srcdir)/data --generate-source --manual-register $<
|
||||
|
||||
EXTRA_DIST += $(resources_files)
|
||||
|
||||
if DO_STATIC_ANALYSIS
|
||||
analyze_plists = $(hexchat_SOURCES:%.c=%.plist)
|
||||
all-local: $(analyze_plists)
|
||||
MOSTLYCLEANFILES = $(analyze_plists)
|
||||
endif
|
||||
79
src/fe-gtk/meson.build
Normal file
79
src/fe-gtk/meson.build
Normal file
@@ -0,0 +1,79 @@
|
||||
hexchat_gtk_sources = [
|
||||
'ascii.c',
|
||||
'banlist.c',
|
||||
'chanlist.c',
|
||||
'chanview.c',
|
||||
'custom-list.c',
|
||||
'dccgui.c',
|
||||
'editlist.c',
|
||||
'fe-gtk.c',
|
||||
'fkeys.c',
|
||||
'gtkutil.c',
|
||||
'ignoregui.c',
|
||||
'joind.c',
|
||||
'menu.c',
|
||||
'maingui.c',
|
||||
'notifygui.c',
|
||||
'palette.c',
|
||||
'pixmaps.c',
|
||||
'plugin-tray.c',
|
||||
'plugin-notification.c',
|
||||
'rawlog.c',
|
||||
'servlistgui.c',
|
||||
'setup.c',
|
||||
'sexy-spell-entry.c',
|
||||
'textgui.c',
|
||||
'urlgrab.c',
|
||||
'userlistgui.c',
|
||||
'xtext.c'
|
||||
]
|
||||
|
||||
hexchat_gtk_deps = [
|
||||
hexchat_common_dep,
|
||||
libgmodule_dep, # used by libsexy
|
||||
dependency('gtk+-2.0', version: '>= 2.24.0')
|
||||
]
|
||||
|
||||
hexchat_gtk_cflags = [
|
||||
'-fPIE'
|
||||
]
|
||||
|
||||
hexchat_gtk_ldflags = [
|
||||
'-pie'
|
||||
]
|
||||
|
||||
if get_option('with-libnotify')
|
||||
hexchat_gtk_sources += 'notifications/notification-libnotify.c'
|
||||
hexchat_gtk_deps += dependency('libnotify')
|
||||
elif false # TODO HAVE_GTK_MAC
|
||||
else
|
||||
hexchat_gtk_sources += 'notifications/notification-dummy.c'
|
||||
endif
|
||||
|
||||
iso_codes = dependency('iso-codes', required: false)
|
||||
if iso_codes.found()
|
||||
hexchat_gtk_sources += 'sexy-iso-codes.c'
|
||||
iso_codes_prefix = iso_codes.get_pkgconfig_variable('prefix')
|
||||
hexchat_gtk_cflags += '-DISO_CODES_PREFIX="@0@"'.format(iso_codes_prefix)
|
||||
hexchat_gtk_cflags += '-DISO_CODES_LOCALEDIR="@0@"'.format(
|
||||
join_paths(iso_codes_prefix, 'share/locale'))
|
||||
endif
|
||||
|
||||
if get_option('with-plugin')
|
||||
hexchat_gtk_sources += 'plugingui.c'
|
||||
endif
|
||||
|
||||
resources = gnome.compile_resources('resources',
|
||||
'../../data/hexchat.gresource.xml',
|
||||
source_dir: '../../data', # TODO: Fix upstream
|
||||
c_name: 'hexchat',
|
||||
extra_args: ['--manual-register']
|
||||
)
|
||||
|
||||
executable('hexchat',
|
||||
sources: resources + hexchat_gtk_sources,
|
||||
dependencies: hexchat_gtk_deps,
|
||||
c_args: hexchat_gtk_cflags,
|
||||
link_args: hexchat_gtk_ldflags,
|
||||
install: true
|
||||
)
|
||||
@@ -1,9 +0,0 @@
|
||||
localedir = $(datadir)/locale
|
||||
|
||||
bin_PROGRAMS = hexchat-text
|
||||
|
||||
AM_CPPFLAGS = $(COMMON_CFLAGS) -DLOCALEDIR=\"$(localedir)\"
|
||||
|
||||
hexchat_text_LDADD = $(top_builddir)/src/common/libhexchatcommon.a $(COMMON_LIBS)
|
||||
hexchat_text_SOURCES = fe-text.c fe-text.h
|
||||
|
||||
@@ -502,7 +502,7 @@ fe_args (int argc, char *argv[])
|
||||
|
||||
if (arg_show_version)
|
||||
{
|
||||
printf (PACKAGE_TARNAME" "PACKAGE_VERSION"\n");
|
||||
printf (PACKAGE_NAME" "PACKAGE_VERSION"\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
7
src/fe-text/meson.build
Normal file
7
src/fe-text/meson.build
Normal file
@@ -0,0 +1,7 @@
|
||||
executable('hexchat-text',
|
||||
sources: [
|
||||
'fe-text.c',
|
||||
],
|
||||
dependencies: hexchat_common_dep,
|
||||
install: true,
|
||||
)
|
||||
@@ -1,15 +0,0 @@
|
||||
theme_SCRIPTS = thememan.exe thememan
|
||||
themedir = $(bindir)
|
||||
|
||||
mdtool_verbose = $(mdtool_verbose_$(V))
|
||||
mdtool_verbose_ = $(mdtool_verbose_$(AM_DEFAULT_VERBOSITY))
|
||||
mdtool_verbose_0 = @echo " MDTOOL " $@; $(MDTOOL) build $< > /dev/null;
|
||||
mdtool_verbose_1 = $(MDTOOL) --verbose build $<;
|
||||
|
||||
thememan.exe: htm-mono.csproj
|
||||
$(mdtool_verbose)
|
||||
|
||||
clean-local:
|
||||
rm -f thememan.exe thememan.exe.config thememan.exe.mdb thememan Main.resources
|
||||
|
||||
EXTRA_DIST = thememan.in
|
||||
@@ -1,144 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>8.0.30703</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{DE87FFCA-9606-4116-B747-062D88A56A28}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>thememan</RootNamespace>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Disk</InstallFrom>
|
||||
<UpdateEnabled>false</UpdateEnabled>
|
||||
<UpdateMode>Foreground</UpdateMode>
|
||||
<UpdateInterval>7</UpdateInterval>
|
||||
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||
<UpdatePeriodically>false</UpdatePeriodically>
|
||||
<UpdateRequired>false</UpdateRequired>
|
||||
<MapFileExtensions>true</MapFileExtensions>
|
||||
<AutorunEnabled>true</AutorunEnabled>
|
||||
<ApplicationRevision>1</ApplicationRevision>
|
||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<PublishWizardCompleted>true</PublishWizardCompleted>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
<AssemblyName>thememan</AssemblyName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationIcon>Resources\htm.ico</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ManifestCertificateThumbprint>25412E3EF25458D894050F8209E4D9DCCDF432D7</ManifestCertificateThumbprint>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ManifestKeyFile>htm_TemporaryKey.pfx</ManifestKeyFile>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<GenerateManifests>false</GenerateManifests>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<SignManifests>false</SignManifests>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<TargetZone>LocalIntranet</TargetZone>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup />
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>True</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>False</Optimize>
|
||||
<OutputPath>.</OutputPath>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>True</Optimize>
|
||||
<OutputPath>.</OutputPath>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="WindowsBase" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Main.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Main.Designer.cs">
|
||||
<DependentUpon>Main.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="Main.resx">
|
||||
<DependentUpon>Main.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<None Include="app.config">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include=".NETFramework,Version=v4.0">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>Microsoft .NET Framework 4 Full Profile %28x86 and x64%29</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>Windows Installer 3.1</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Resources\htm.ico" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
33
src/htm/meson.build
Normal file
33
src/htm/meson.build
Normal file
@@ -0,0 +1,33 @@
|
||||
add_languages('cs')
|
||||
|
||||
executable('thememan',
|
||||
sources: [
|
||||
'Program.cs',
|
||||
'Main.cs',
|
||||
'Main.Designer.cs',
|
||||
],
|
||||
resources: [
|
||||
# 'Main.resx', # FIXME: Allow setting resource id
|
||||
'thememan.HTM.resources',
|
||||
],
|
||||
cs_args: [
|
||||
'-r:WindowsBase',
|
||||
'-r:System.Data',
|
||||
'-r:System.Drawing',
|
||||
'-r:System.Windows.Forms',
|
||||
'-win32icon:' + meson.current_source_dir() + '/Resources/htm.ico'
|
||||
],
|
||||
install: true,
|
||||
)
|
||||
|
||||
thememan_conf = configuration_data()
|
||||
thememan_conf.set('exec_prefix', get_option('prefix'))
|
||||
thememan_conf.set('bindir', join_paths(get_option('prefix'), get_option('bindir')))
|
||||
|
||||
configure_file(
|
||||
input: 'thememan.in',
|
||||
output: 'thememan',
|
||||
configuration: thememan_conf,
|
||||
install: true,
|
||||
install_dir: get_option('bindir'),
|
||||
)
|
||||
BIN
src/htm/thememan.HTM.resources
Normal file
BIN
src/htm/thememan.HTM.resources
Normal file
Binary file not shown.
0
src/htm/thememan.in
Normal file → Executable file
0
src/htm/thememan.in
Normal file → Executable file
13
src/meson.build
Normal file
13
src/meson.build
Normal file
@@ -0,0 +1,13 @@
|
||||
subdir('common')
|
||||
|
||||
if get_option('with-gtk')
|
||||
subdir('fe-gtk')
|
||||
endif
|
||||
|
||||
if get_option('with-text')
|
||||
subdir('fe-text')
|
||||
endif
|
||||
|
||||
if get_option('with-theme-manager')
|
||||
subdir('htm')
|
||||
endif
|
||||
Reference in New Issue
Block a user