diff --git a/releases.json b/releases.json index 85cb32b15..9f4184add 100644 --- a/releases.json +++ b/releases.json @@ -2059,6 +2059,14 @@ "3.6.4-1" ] }, + "libserialport": { + "dependency_names": [ + "libserialport" + ], + "versions": [ + "0.1.2-1" + ] + }, "libsigcplusplus-3": { "dependency_names": [ "sigc++-3.0" diff --git a/subprojects/libserialport.wrap b/subprojects/libserialport.wrap new file mode 100644 index 000000000..b2c949276 --- /dev/null +++ b/subprojects/libserialport.wrap @@ -0,0 +1,9 @@ +[wrap-file] +directory = libserialport-0.1.2 +source_url = https://sigrok.org/download/source/libserialport/libserialport-0.1.2.tar.gz +source_filename = libserialport-0.1.2.tar.gz +source_hash = 5deb92b5ca72c0347b07b786848350deca2dcfd975ce613b8e0e1d947a4b4ca9 +patch_directory = libserialport + +[provide] +libserialport = libserialport_dep diff --git a/subprojects/packagefiles/libserialport/meson.build b/subprojects/packagefiles/libserialport/meson.build new file mode 100644 index 000000000..e1e5e3c74 --- /dev/null +++ b/subprojects/packagefiles/libserialport/meson.build @@ -0,0 +1,66 @@ +project( + 'libserialport', + 'c', + version: '0.1.2', + license: 'LGPL-3.0-or-later', + meson_version: '>= 0.49.0', +) + +libserialport_includes = include_directories(['.']) + +libserialport_headers = files('libserialport.h') + +libserialport_sources = files('serialport.c', 'timing.c') + +libserialport_cflags = [] +libserialport_ldflags = [] + +cdata = configuration_data( + { + 'SP_API': '__attribute__((visibility("default")))', + 'SP_PRIV': '__attribute__((visibility("hidden")))', + }, +) + +if host_machine.system() == 'linux' + libserialport_sources += files('linux.c', 'linux_termios.c') + libserialport_cflags += '-DLIBSERIALPORT_ATBUILD' +elif host_machine.system() == 'windows' + libserialport_sources += files('windows.c') + libserialport_cflags += '-DLIBSERIALPORT_MSBUILD' + libserialport_ldflags += '-lsetupapi' +elif host_machine.system() == 'darwin' + libserialport_sources += files('macosx.c') + libserialport_cflags += '-DLIBSERIALPORT_ATBUILD' + libserialport_ldflags += [ + '-framework', + 'IOKit', + '-framework', + 'CoreFoundation', + ] +elif host_machine.system() == 'freebsd' + libserialport_sources += files('freebsd.c') + libserialport_cflags += '-DLIBSERIALPORT_ATBUILD' +endif + +configure_file( + output: 'config.h', + configuration: cdata, +) + +libserialport_lib = library( + 'libserialport', + libserialport_sources, + c_args: libserialport_cflags, + link_args: libserialport_ldflags, + include_directories: libserialport_includes, + version: '0.1.0', + install: true, +) + +install_headers(libserialport_headers) + +libserialport_dep = declare_dependency( + include_directories: libserialport_includes, + link_with: libserialport_lib, +)