aboutsummaryrefslogtreecommitdiff
path: root/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build87
1 files changed, 87 insertions, 0 deletions
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..1c7c59c
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,87 @@
+project(
+ 'libjaylink', 'c',
+ version: '0.3.1',
+ license: ' GPL-3.0-or-later',
+ default_options: [
+ 'c_std=gnu99',
+ 'warning_level=3',
+ 'werror=true',
+ ]
+)
+
+project_description = 'Library to access J-Link devices'
+project_url = 'https://gitlab.zapb.de/libjaylink/libjaylink.git'
+
+option_usb = get_option('usb')
+
+include_dirs = include_directories('libjaylink')
+
+libusb = dependency(
+ 'libusb-1.0',
+ version: '>=1.0.16',
+ required: false
+)
+
+have_usb = libusb.found() and (option_usb.enabled() or option_usb.auto())
+
+if have_usb
+ add_project_arguments('-DHAVE_LIBUSB', language: 'c')
+endif
+
+version = meson.project_version()
+version_array = version.split('.')
+major_version = version_array[0].to_int()
+minor_version = version_array[1].to_int()
+version_micro = version_array[2].to_int()
+
+package_version = {
+ 'major': version_array[0],
+ 'minor': version_array[1],
+ 'micro': version_array[2],
+}
+
+git = find_program('git', required: false)
+
+if git.found()
+ git_tag = run_command([git, 'describe', '--dirty'], check: false).stdout().strip()
+
+ if git_tag != ''
+ package_version_string = git_tag
+ else
+ package_version_string = version
+ endif
+else
+ package_version_string = version
+endif
+
+# Libtool interface version of libjaylink. This is not the same as the package
+# version. For information about the versioning system of libtool, see:
+# http://www.gnu.org/software/libtool/manual/libtool.html#Libtool-versioning
+
+library_version = {
+ 'current': 2,
+ 'revision': 0,
+ 'age': 2,
+}
+
+library_version_string = '@0@.@1@.@2@'.format(
+ library_version['current'] - library_version['age'],
+ library_version['age'],
+ library_version['revision'])
+
+subdir('libjaylink')
+
+summary({
+ 'Package version': package_version_string,
+ 'Library version': library_version_string,
+ },
+ section: 'Project details'
+)
+
+summary({
+ 'USB': have_usb,
+ 'TCP': true
+ },
+ section: 'Enabled transports',
+ bool_yn: true
+)