libgnt/libgnt
Clone
Summary
Browse
Changes
Graph
Rename some things.
2019-04-24, Elliott Sales de Andrade
5285a7146aa7
Rename some things.
# UPDATING VERSION NUMBERS FOR RELEASES
#
# The version number is:
# <major>.<minor>.<micro><suffix>
#
# If any code has changed in libgnt:
# micro += 1
#
# If any functions have been added to libgnt:
# micro = 0
# minor += 1
#
# If backwards compatibility has been broken in libgnt:
# micro = 0
# minor = 0
# major += 1
# gnt_soversion += 1
#
# suffix should be similar to one of the following:
# For beta releases: '-beta2'
# For code under development: '-devel'
# For production releases: ''
#
# the last version for Finch 2 was 2.8.10,
# the first version for Finch 3 was 3.0.0
project
(
'libgnt'
,
'c'
,
version
:
'3.0.0-devel'
,
meson_version
:
'>=0.37.0'
)
gnt_soversion
=
1
parts
=
meson
.
project_version
().
split
(
'-'
)
if
parts
.
length
()
>
1
gnt_extra_version
=
parts
[
1
]
else
gnt_extra_version
=
''
endif
parts
=
parts
[
0
].
split
(
'.'
)
gnt_major_version
=
parts
[
0
]
gnt_minor_version
=
parts
[
1
]
gnt_micro_version
=
parts
[
2
]
gnt_config
=
configuration_data
()
gnt_config
.
set
(
'GNT_MAJOR_VERSION'
,
gnt_major_version
)
gnt_config
.
set
(
'GNT_MINOR_VERSION'
,
gnt_minor_version
)
gnt_config
.
set
(
'GNT_MICRO_VERSION'
,
gnt_micro_version
)
gnt_config
.
set_quoted
(
'GNT_EXTRA_VERSION'
,
gnt_extra_version
)
gnt_config
.
set_quoted
(
'GNT_VERSION'
,
meson
.
project_version
())
compiler
=
meson
.
get_compiler
(
'c'
)
pkgconfig
=
import
(
'pkgconfig'
)
# #######################################################################
# # Check for GLib 2.44
# #######################################################################
glib
=
dependency
(
'glib-2.0'
,
version
:
'>= 2.44.0'
)
gobject
=
dependency
(
'gobject-2.0'
)
gnome
=
import
(
'gnome'
)
#######################################################################
# Check for LibXML2
#######################################################################
libxml
=
dependency
(
'libxml-2.0'
,
version
:
'>= 2.6.0'
)
#######################################################################
# Check for ncurses and other things used by it
#######################################################################
ncurses_available
=
true
ncurses_widechar
=
true
ncurses_header
=
'ncurses.h'
# Some distros put the headers in ncursesw/, some don't. These are ordered to
# pick the last available as most-specific version.
ncursesw_header_paths
=
[
''
,
'ncursesw/'
]
ncurses
=
[
dependency
(
'ncursesw'
,
required
:
false
),
dependency
(
'panelw'
,
required
:
false
),
]
if
ncurses
[
0
].
found
()
and
ncurses
[
1
].
found
()
foreach
location
:
ncursesw_header_paths
f
=
location
+
'ncurses.h'
if
compiler
.
has_header_symbol
(
f
,
'get_wch'
,
prefix
:
'#define _XOPEN_SOURCE_EXTENDED'
)
ncurses_header
=
f
endif
endforeach
else
ncurses_available
=
false
ncurses_inc
=
[]
ncurses_libs
=
[
compiler
.
find_library
(
'ncursesw'
,
required
:
false
),
compiler
.
find_library
(
'panelw'
,
required
:
false
)
]
if
ncurses_libs
[
0
].
found
()
and
ncurses_libs
[
1
].
found
()
foreach
location
:
ncursesw_header_paths
f
=
location
+
'ncurses.h'
if
compiler
.
has_header_symbol
(
f
,
'get_wch'
,
prefix
:
'#define _XOPEN_SOURCE_EXTENDED'
)
ncurses_available
=
true
ncurses_header
=
f
endif
endforeach
if
ncurses_available
ncurses
=
declare_dependency
(
include_directories
:
ncurses_inc
,
dependencies
:
ncurses_libs
)
endif
endif
endif
if
not
ncurses_available
# ncursesw was not found. Look for plain old ncurses
ncurses
=
[
dependency
(
'ncurses'
,
required
:
false
),
dependency
(
'panel'
,
required
:
false
),
]
if
ncurses
[
0
].
found
()
and
ncurses_libs
[
1
].
found
()
ncurses_available
=
true
else
ncurses_libs
=
[
compiler
.
find_library
(
'ncurses'
,
required
:
false
),
compiler
.
find_library
(
'panel'
,
required
:
false
),
]
ncurses_available
=
ncurses_libs
[
0
].
found
()
and
ncurses_libs
[
1
].
found
()
ncurses
=
declare_dependency
(
dependencies
:
ncurses_libs
)
endif
ncurses_widechar
=
false
endif
if
not
ncurses_available
and
host_machine
.
system
()
==
'windows'
# Try pdcurses too.
ncurses_header
=
'curses.h'
ncurses_libs
=
compiler
.
find_library
(
'pdcurses'
,
required
:
false
)
ncurses_available
=
compiler
.
has_header
(
ncurses_header
)
and
ncurses_libs
.
found
()
ncurses
=
declare_dependency
(
dependencies
:
ncurses_libs
)
endif
if
not
ncurses_available
error
(
'ncurses could not be found!'
)
endif
gnt_config
.
set
(
'NCURSES_HEADER'
,
ncurses_header
)
gnt_config
.
set10
(
'NCURSES_WIDECHAR'
,
ncurses_widechar
)
libgnt_SOURCES
=
[
'gntwidget.c'
,
'gntbindable.c'
,
'gntbox.c'
,
'gntbutton.c'
,
'gntcheckbox.c'
,
'gntclipboard.c'
,
'gntcolors.c'
,
'gntcombobox.c'
,
'gntentry.c'
,
'gntfilesel.c'
,
'gntkeys.c'
,
'gntlabel.c'
,
'gntline.c'
,
'gntmenu.c'
,
'gntmenuitem.c'
,
'gntmenuitemcheck.c'
,
'gntprogressbar.c'
,
'gntslider.c'
,
'gntstyle.c'
,
'gnttextview.c'
,
'gnttree.c'
,
'gntutils.c'
,
'gntwindow.c'
,
'gntwm.c'
,
'gntws.c'
,
'gntmain.c'
]
libgnt_headers
=
[
'gntwidget.h'
,
'gntbindable.h'
,
'gntbox.h'
,
'gntbutton.h'
,
'gntcheckbox.h'
,
'gntclipboard.h'
,
'gntcolors.h'
,
'gntcombobox.h'
,
'gntentry.h'
,
'gntfilesel.h'
,
'gntkeys.h'
,
'gntlabel.h'
,
'gntline.h'
,
'gntmenu.h'
,
'gntmenuitem.h'
,
'gntmenuitemcheck.h'
,
'gntprogressbar.h'
,
'gntslider.h'
,
'gntstyle.h'
,
'gnttextview.h'
,
'gnttree.h'
,
'gntutils.h'
,
'gntwindow.h'
,
'gntwm.h'
,
'gntws.h'
,
# 'gnt.h'
]
# Check for Python headers
python_dep
=
dependency
(
'python3'
,
required
:
false
)
gnt_config
.
set
(
'USE_PYTHON'
,
python_dep
.
found
())
configure_file
(
output
:
'gntconfig.h'
,
configuration
:
gnt_config
)
configure_file
(
input
:
'gntversion.h.in'
,
output
:
'gntversion.h'
,
configuration
:
gnt_config
,
install
:
true
,
install_dir
:
join_paths
(
get_option
(
'includedir'
),
'gnt3'
))
# This is temporary until we can hide GObject internals:
gnt_h
=
configure_file
(
input
:
'gnt.h.in'
,
output
:
'gnt.h'
,
configuration
:
gnt_config
,
install
:
true
,
install_dir
:
join_paths
(
get_option
(
'includedir'
),
'gnt3'
))
gmodule
=
dependency
(
'gmodule-2.0'
)
install_headers
(
libgnt_headers
,
subdir
:
'gnt3'
)
if
host_machine
.
system
()
==
'windows'
windows
=
import
(
'windows'
)
libgnt_winres
=
configure_file
(
input
:
'libgnt_winres.rc.in'
,
output
:
'libgnt_winres.rc'
,
configuration
:
gnt_config
)
libgnt_SOURCES
+=
windows
.
compile_resources
(
libgnt_winres
)
endif
libgnt_inc
=
include_directories
(
'.'
)
libgnt
=
library
(
'gnt'
,
libgnt_SOURCES
,
install
:
true
,
version
:
'@0@.@1@.@2@'
.
format
(
gnt_soversion
,
gnt_minor_version
,
gnt_micro_version
),
dependencies
:
[
ncurses
,
libxml
,
glib
,
gobject
,
gmodule
,
python_dep
])
libgnt_dep
=
declare_dependency
(
include_directories
:
libgnt_inc
,
link_with
:
libgnt
,
dependencies
:
[
ncurses
,
glib
])
pkgconfig
.
generate
(
name
:
'LibGNT'
,
description
:
'Glib Ncurses Toolkit is a collection of curses-widgets.'
,
version
:
meson
.
project_version
(),
filebase
:
'gnt3'
,
subdirs
:
'gnt3'
,
libraries
:
[
libgnt
],
requires
:
[
'glib-2.0'
],
variables
:
[
'plugindir = ${libdir}/gnt3'
],
)
if
get_option
(
'introspection'
)
and
host_machine
.
system
()
!=
'windows'
libgnt_gir
=
gnome
.
generate_gir
(
libgnt
,
sources
:
libgnt_headers
+
[
gnt_h
],
includes
:
'GObject-2.0'
,
namespace
:
'Gnt'
,
symbol_prefix
:
'gnt'
,
identifier_prefix
:
'Gnt'
,
nsversion
:
'@0@.@1@'
.
format
(
gnt_major_version
,
gnt_minor_version
),
install
:
true
,
extra_args
:
[
'--quiet'
])
endif
subdir
(
'wms'
)
subdir
(
'test'
)
subdir
(
'doc'
)