Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2226169/?format=api
{ "id": 2226169, "url": "http://patchwork.ozlabs.org/api/patches/2226169/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/patch/20260422-meson-build-v1-1-a63a7a8b0d2f@oss.qualcomm.com/", "project": { "id": 42, "url": "http://patchwork.ozlabs.org/api/projects/42/?format=api", "name": "Linux GPIO development", "link_name": "linux-gpio", "list_id": "linux-gpio.vger.kernel.org", "list_email": "linux-gpio@vger.kernel.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260422-meson-build-v1-1-a63a7a8b0d2f@oss.qualcomm.com>", "list_archive_url": null, "date": "2026-04-22T10:27:32", "name": "[libgpiod] build: replace autotools with meson & ninja", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "437903b0091ec7cb96b8d0fb502370e5b9e725b7", "submitter": { "id": 92196, "url": "http://patchwork.ozlabs.org/api/people/92196/?format=api", "name": "Bartosz Golaszewski", "email": "bartosz.golaszewski@oss.qualcomm.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linux-gpio/patch/20260422-meson-build-v1-1-a63a7a8b0d2f@oss.qualcomm.com/mbox/", "series": [ { "id": 500961, "url": "http://patchwork.ozlabs.org/api/series/500961/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/list/?series=500961", "date": "2026-04-22T10:27:32", "name": "[libgpiod] build: replace autotools with meson & ninja", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/500961/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2226169/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2226169/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "\n <linux-gpio+bounces-35346-incoming=patchwork.ozlabs.org@vger.kernel.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "linux-gpio@vger.kernel.org" ], "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=MD/5iTWh;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=KV6AUv7q;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c15:e001:75::12fc:5321; helo=sin.lore.kernel.org;\n envelope-from=linux-gpio+bounces-35346-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)", "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=\"MD/5iTWh\";\n\tdkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.b=\"KV6AUv7q\"", "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=205.220.180.131", "smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com", "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=oss.qualcomm.com" ], "Received": [ "from sin.lore.kernel.org (sin.lore.kernel.org\n [IPv6:2600:3c15:e001:75::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0wR34g0fz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 20:27:59 +1000 (AEST)", "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sin.lore.kernel.org (Postfix) with ESMTP id 22BBA3003BF8\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 10:27:57 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 575533CAE92;\n\tWed, 22 Apr 2026 10:27:55 +0000 (UTC)", "from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com\n [205.220.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 1F33633B95E\n\tfor <linux-gpio@vger.kernel.org>; Wed, 22 Apr 2026 10:27:49 +0000 (UTC)", "from pps.filterd (m0279868.ppops.net [127.0.0.1])\n\tby mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 63M988rw1442052\n\tfor <linux-gpio@vger.kernel.org>; Wed, 22 Apr 2026 10:27:49 GMT", "from mail-qt1-f200.google.com (mail-qt1-f200.google.com\n [209.85.160.200])\n\tby mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dpenftv03-1\n\t(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n\tfor <linux-gpio@vger.kernel.org>; Wed, 22 Apr 2026 10:27:48 +0000 (GMT)", "by mail-qt1-f200.google.com with SMTP id\n d75a77b69052e-50e575a50bcso44945091cf.0\n for <linux-gpio@vger.kernel.org>;\n Wed, 22 Apr 2026 03:27:48 -0700 (PDT)", "from brgl-qcom.local ([2a01:cb1d:dc:7e00:7c39:7106:a16f:fd13])\n by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-4891c318636sm237767875e9.7.2026.04.22.03.27.42\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Wed, 22 Apr 2026 03:27:43 -0700 (PDT)" ], "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776853675; cv=none;\n b=Bn81nbyQsr9SCtnc69j2U8OhJkjftt+8aVfCzkti8YcMlN2ZtP/xmJr11AQcBSZ4WVqHDabD8aDHH7SDse7eOWtfWWCBPtQpJHETfXxuSrsRYEiLgCyRjaSU8fLFXCUOyImUPXYQKmUpP9lPmmuA6+gwgbjNUjcsQ18ik8RVgj8=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776853675; c=relaxed/simple;\n\tbh=MhRAEEMGbnBHDRGro4rO/FZxLZZP36YJLyHA+aDpqGY=;\n\th=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc;\n b=aYJ7XRSAOuCUozvOnOMV3q69ZPTIbfA/63qJL+xaa48Fc7ShAI0H/4Tlv7wNhJ4q4WmDVbrc+oE9A2gNVX6iLiM/AEJfdYL8teVqWReEkXetAdZC6lHfHOSkI9L88wmJOgLtgNkRXb3/aixeJKt/IgEQEAEnotduhe1LHLpUL+c=", "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com;\n spf=pass smtp.mailfrom=oss.qualcomm.com;\n dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=MD/5iTWh;\n dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.b=KV6AUv7q; arc=none smtp.client-ip=205.220.180.131", "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n\tcc:content-transfer-encoding:content-type:date:from:message-id\n\t:mime-version:subject:to; s=qcppdkim1; bh=pqOLtoY+MEgSxGVOnMf4tN\n\tX2pzy3aBBfXouIfbANQQo=; b=MD/5iTWhu8MVZX6eRNC4dTFA7jYAYORkJuFPmJ\n\t7ulul9gGW0WD4p+DXOd8n6Plj/Y9QyeIF1KNAjd7GJLICXZIzwtbebfcDYD4ha3q\n\teE72uKHOcRvlGdgznaSe4tpK5bIgxMSKn38nqSmBkQDlV3qBHX7dIfOPVrMc+Aax\n\tgXWXlfWQl2uRKF+GVgbOJEbGjOKqZX4PgSRNNvX8CnMe29+H/EeUQPYBMwAix1yw\n\tH8NmNBg1TSp7DIg4cSfPLADMpZeqvW/TVmujPGv84I7GMiJgiuh/0xQ5zvkkVvuu\n\tRgrApMAZ8FiAcV+Aa2f6QwhYmh4RwTGla09wVTh75r3NHDlw==", "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=oss.qualcomm.com; s=google; t=1776853668; x=1777458468;\n darn=vger.kernel.org;\n h=cc:to:message-id:content-transfer-encoding:mime-version:subject\n :date:from:from:to:cc:subject:date:message-id:reply-to;\n bh=pqOLtoY+MEgSxGVOnMf4tNX2pzy3aBBfXouIfbANQQo=;\n b=KV6AUv7qh7TJ3uNcuwpLTnxnhZOXQ/iq2k88cOuMd8s1hY8LbvfXQEtlRhAFQQoXGV\n n39C6mLEcz+8ixKKkkbF1AlFy8Tkz21L7s9FUSacph5yJ99vacXfR/wDqJQfDYCdfzPs\n rkEW1j8qjGj1OvYumuhSirpP5p55XH6QkphKJRV2UksEtibxRo29C6pN3+aQXDRctqMZ\n qNYGpcifklgM5218Xs0DcFDPAV58HQTOgvb8Zixs9YVRq2nQfUafMn+vRYVvPMRSAdfH\n 4Yd7g/J3tqgQrGs91W8wj+38yp+jBqMtIbzRvj5kbqhjyN0zjMavSVDmwABWUg2UgmLH\n 086g==" ], "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776853668; x=1777458468;\n h=cc:to:message-id:content-transfer-encoding:mime-version:subject\n :date:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=pqOLtoY+MEgSxGVOnMf4tNX2pzy3aBBfXouIfbANQQo=;\n b=XDpP2kPXmIe/nPTc0j5wWhBj/xLNElhtxzEEGZJ8vfmbs4byD7PlXaiEi738SaQQXt\n FaUSEpeZOIde9SxCaS90wm/7WOJKAM+qXwdMzXLMU0uijknD8wNrpiO1z5VpJbL7H5No\n osKlN1uhFecZ6wjdoTrexmNv9cLVEhVfef7QWFXWb51iP6n00YF+pUn8sKosnHVl55BC\n rmp08CwSXZqZwGygfOz5KkwsP98DYq4FGtPfBoJN9MgF0RQALjglgRDVDnxWAd55IRUo\n Hc4HgNX7bHxoCXPaIRjtL7Fv8lYttGB8ChnXfnebQR1KvmKSN5ja3LYDPLmaTe3msJbS\n mFxQ==", "X-Forwarded-Encrypted": "i=1;\n AFNElJ9FLfZQdNC8riJUlMSRVVprIHb6khtYiQeZZpiNeaLXP+5afeP/cDtp6NsVI3aLheZoLJqSktNLdWAi@vger.kernel.org", "X-Gm-Message-State": "AOJu0Yw8Z2QYpjsDtGTIKv9De0EnDa3kbLOnZ2VtIUdU8mo87DOoz/Jk\n\tU9zyI8nfbKULa8nheUVUvVt8RwCRRf8QCBPV6rZl2SnUjYxIqpJccK4Yfq+te4By2uY9gqdkMIj\n\tNYMYvaIydgxxb+opWMV9eM0kkPwJIn66mPpVSiXc3dFOzSS/Q9y6wBpCZQDJ9GpyQJw65Pi+9", "X-Gm-Gg": "AeBDievIc5hTXIE1Lqvt0CViXKLtiIuqvJ4npgXSdbm6ZaSPBSjzLYaXYzw3oXziMXa\n\tS0bJ3YCRq7JihMqM2FgD7jnM5kXEj69ABNivUUuJzfffBOeNz+wnYLgy5zWYBWEyIavlIA00n07\n\tyMBTeuOkfRC9lQdRSqjDkzEnva3d/6I3Q4a2BnYESQp6A79FUxPaz0ia2KQc/w5e+0g28sX9kkf\n\tlxXej4HYvrQYQ5NZeRJm962xURsIZVIhXL3jQE+OlwfxwloMsPB/vSOdo2x+j+TT9ZslSfd0JVP\n\terjH3M9oZVSZPKIpLuS0EDV5Te5qWO/iyBN/lih0+m38ILN8lV5pjVjybQdKuRpg3wL7n4sPDNK\n\t8z54CeEybEWmiSV8y3awL+H0/RkDwEqtBKCHohj9MsFGXqtkWvgUdM8fcaJtWqQ==", "X-Received": [ "by 2002:a05:622a:550a:b0:50d:a8f5:1c02 with SMTP id\n d75a77b69052e-50e36c15ee8mr319514721cf.41.1776853666346;\n Wed, 22 Apr 2026 03:27:46 -0700 (PDT)", "by 2002:a05:622a:550a:b0:50d:a8f5:1c02 with SMTP id\n d75a77b69052e-50e36c15ee8mr319513581cf.41.1776853664562;\n Wed, 22 Apr 2026 03:27:44 -0700 (PDT)" ], "From": "Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>", "Date": "Wed, 22 Apr 2026 12:27:32 +0200", "Subject": "[PATCH libgpiod] build: replace autotools with meson & ninja", "Precedence": "bulk", "X-Mailing-List": "linux-gpio@vger.kernel.org", "List-Id": "<linux-gpio.vger.kernel.org>", "List-Subscribe": "<mailto:linux-gpio+subscribe@vger.kernel.org>", "List-Unsubscribe": "<mailto:linux-gpio+unsubscribe@vger.kernel.org>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "7bit", "Message-Id": "<20260422-meson-build-v1-1-a63a7a8b0d2f@oss.qualcomm.com>", "X-B4-Tracking": "v=1; b=H4sIAJOi6GkC/x3MQQqAIBBA0avErBNMq0VXiRajTjVQGkoRiHdPW\n r7F/xkSRaYEU5Mh0sOJg6/o2gbsjn4jwa4alFSj7JUUJ6Xghbn5cAL1YKRGu6IlqMUVaeX3v81\n wsNkuDg6WUj4cTvg6ZwAAAA==", "X-Change-ID": "20260420-meson-build-a35b03acface", "To": "Linus Walleij <linusw@kernel.org>, Vincent Fazio <vfazio@xes-inc.com>,\n Kent Gibson <warthog618@gmail.com>,\n Viresh Kumar <viresh.kumar@linaro.org>,\n Erik Wierich <erik@riscstar.com>", "Cc": "Bartosz Golaszewski <brgl@kernel.org>, linux-gpio@vger.kernel.org,\n Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>", "X-Mailer": "b4 0.14.2", "X-Developer-Signature": "v=1; a=openpgp-sha256; l=105726;\n i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id;\n bh=MhRAEEMGbnBHDRGro4rO/FZxLZZP36YJLyHA+aDpqGY=;\n b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBp6KKaUIj5w3yDvDwE4vfHeAP6iF86N4cH5oQd+\n heaL/f0GNqJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaeiimgAKCRAFnS7L/zaE\n w1gQD/9TSh1/zVUaMr45p/Twhj+ptozZPJ7EHwDJLp2moxv/SOOS3hP+OQExXwq5QA79oH8Q5s3\n f5MU0wdjz8cg4U9ckuFZidaExmmsWoLxblv694UNjHDa0FqkWN0QwaOnMVZ2CinQbmFoDEMnblw\n cfInQCaebSOUsCkrSGComLDq0u4bjkFYl6Usr8lgey9eRkglMe0C1FRS+Usl7b2SFILiEpN5ein\n jObX6Ah0MyYxZaSjdySYPeaO0AMkvl51FQsFPfcKcad3Bzvy/3/SGoHPzRj+9ZE3p/qJv+2oZUu\n YuU9PCvQ8Ze6POswxW3ZNdjLvfxBNOv3hcOdGohUq1xj1yCU0+aEbQDBlU+ezwKPi0DYg3EMvgg\n 4I9rLO0nRDO/fSv+6stJ/7FrWw7AsOPYccioUxzECAgjs/5qZ9K3viE8sfnGNfvkd2Y9LKWl2Ei\n NiOzNRxOLwHrGm1iDn7epfAWTBlZffZldM05LpFOui7izVHt8osx7Cgj2YC1dOha652JGyOXOI3\n zHd3r+Gxe90UN3W8U5eT1WV5+gQn4jybuKA9HvN+eo/P+rgtHUjfoCNr1nyqQU7lW6YwKRsEs51\n DUslWBAtuRLktyso7Tqhb7TdXIAIvT2kaqRIbsKsLIJOQWWcYLgTapr8VCI/ziyRiJ7hNs46ntF\n fLK0NlPBXc2rMog==", "X-Developer-Key": "i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp;\n fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772", "X-Proofpoint-GUID": "JcvglRplUKoh4p53uTBunuOfMd55Vxq7", "X-Authority-Analysis": "v=2.4 cv=YJuvDxGx c=1 sm=1 tr=0 ts=69e8a2a4 cx=c_pps\n a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10\n a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22\n a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=NEAV23lmAAAA:8\n a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=pGLkceISAAAA:8 a=KKAkSRfTAAAA:8\n a=Ikd4Dj_1AAAA:8 a=jk6p-1SlRD0Um2xNEMMA:9 a=QEXdDO2ut3YA:10\n a=uxP6HrT_eTzRwkO_Te1X:22 a=cvBusfyB2V15izCimMoJ:22", "X-Proofpoint-Spam-Details-Enc": "AW1haW4tMjYwNDIyMDA5OSBTYWx0ZWRfX0H6lQnfUw394\n 6rV3OnhUWGGU66dupEhnRslUEsCm7B6g1gDlSMDyes1RMyJTi0VTDgiGr8+6cW5h3bUZtBaT+bF\n en49I1Anq1bMZ66bHnBRXdYSk6eVjC42ht1gLE9pXN/rohMKTP28r3r2p4SDeqYyOGq55iFmAT1\n jd2eP61vYAxr1V8lBqXaamNob8ljdd7Dcij3Es2Hx6iNoFhkEWXIAPzFup2jR6UZ3M1egotRsay\n mjLqHk3x1VvcC/fiinjL0snWn7EDcSC0Sc65KERJH0Dwt2XeEe2S8YAtwB7N3+Fk3maGwUWn04W\n iy+LAMR5DRh6fk+M6flYEsNgVp6nJVg+RTO225POM+5716RHTdHLcn+OFLu0MGsJo06ERjcv+Pw\n IJj0TNmwUcUkyY/dyXbAfZt+2cWbUY6INBIEo4Sc4xWlobfbGRCgLYE/m+bb5h+6b6ymnfQSp1C\n 0Mr65kJPevo36TVDeqA==", "X-Proofpoint-ORIG-GUID": "JcvglRplUKoh4p53uTBunuOfMd55Vxq7", "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-22_01,2026-04-21_02,2025-10-01_01", "X-Proofpoint-Spam-Details": "rule=outbound_notspam policy=outbound score=0\n clxscore=1015 phishscore=0 lowpriorityscore=0 adultscore=0 spamscore=0\n malwarescore=0 impostorscore=0 priorityscore=1501 bulkscore=0 suspectscore=0\n classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0\n reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604220099" }, "content": "Port the project from autotools to meson. All build options are\npreserved with the same semantics.\n\nThe goal of this change is to produce the same set of files as the\ncurrent autotools approach: libraries with correct SONAME/version,\nheaders, pkg-config files, GObject introspection data, Python extension\nmodules, D-Bus interface and configuration files. This is done to enable\na one-liner test command running all available test suites.\n\nThe only thing we drop is the `make docs` target as it's rarely used and\ndocs can be generated easily with sphinx directly. They are also not\nrequired for testing.\n\nThe Rust workspace is built via a custom target that invokes cargo and\nuses SYSTEM_DEPS_* environment variables to point the libgpiod-sys and\ngpiosim-sys crates at the locally built C libraries.\n\nSigned-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>\n---\nI think this is the third or fourth time we try this, maybe this time\nit'll stick. This is a port of the current autotools build system to\nmeson & ninja. A PoC yocto recipe update[1] can be used for testing.\n\n[1] https://github.com/brgl/meta-openembedded/tree/topic/libgpiod-meson\n---\n Makefile.am | 62 ----\n autogen.sh | 17 -\n bindings/Makefile.am | 29 --\n bindings/cxx/Makefile.am | 47 ---\n bindings/cxx/examples/Makefile.am | 47 ---\n bindings/cxx/examples/meson.build | 27 ++\n bindings/cxx/gpiodcxx/Makefile.am | 20 --\n bindings/cxx/meson.build | 73 +++++\n bindings/cxx/tests/Makefile.am | 30 --\n bindings/cxx/tests/meson.build | 29 ++\n bindings/glib/Makefile.am | 133 --------\n bindings/glib/examples/Makefile.am | 22 --\n bindings/glib/examples/meson.build | 25 ++\n bindings/glib/gpiod-glib/meson.build | 18 ++\n bindings/glib/meson.build | 111 +++++++\n bindings/glib/tests/Makefile.am | 29 --\n bindings/glib/tests/meson.build | 27 ++\n bindings/meson.build | 18 ++\n bindings/python/Makefile.am | 58 ----\n bindings/python/examples/Makefile.am | 17 -\n bindings/python/gpiod/Makefile.am | 19 --\n bindings/python/gpiod/ext/Makefile.am | 11 -\n bindings/python/gpiod/meson.build | 41 +++\n bindings/python/meson.build | 10 +\n bindings/python/tests/Makefile.am | 18 --\n bindings/python/tests/gpiosim/Makefile.am | 8 -\n bindings/python/tests/gpiosim/meson.build | 14 +\n bindings/python/tests/meson.build | 34 ++\n bindings/python/tests/system/Makefile.am | 7 -\n bindings/python/tests/system/meson.build | 12 +\n bindings/rust/Makefile.am | 6 -\n bindings/rust/gpiosim-sys/Makefile.am | 6 -\n bindings/rust/gpiosim-sys/src/Makefile.am | 5 -\n bindings/rust/libgpiod-sys/Makefile.am | 6 -\n bindings/rust/libgpiod-sys/src/Makefile.am | 5 -\n bindings/rust/libgpiod/Makefile.am | 28 --\n bindings/rust/libgpiod/examples/Makefile.am | 18 --\n bindings/rust/libgpiod/src/Makefile.am | 15 -\n bindings/rust/libgpiod/tests/Makefile.am | 15 -\n bindings/rust/libgpiod/tests/common/Makefile.am | 5 -\n bindings/rust/meson.build | 40 +++\n configure.ac | 407 ------------------------\n contrib/Makefile.am | 4 -\n dbus/Makefile.am | 10 -\n dbus/client/Makefile.am | 31 --\n dbus/client/gpiocli-test.bash | 2 -\n dbus/client/meson.build | 30 ++\n dbus/data/Makefile.am | 14 -\n dbus/data/meson.build | 24 ++\n dbus/lib/Makefile.am | 29 --\n dbus/lib/meson.build | 35 ++\n dbus/manager/Makefile.am | 21 --\n dbus/manager/meson.build | 26 ++\n dbus/meson.build | 11 +\n dbus/tests/Makefile.am | 25 --\n dbus/tests/meson.build | 25 ++\n docs/Makefile.am | 65 ----\n examples/Makefile.am | 22 --\n examples/meson.build | 25 ++\n include/Makefile.am | 4 -\n include/meson.build | 4 +\n lib/Makefile.am | 28 --\n lib/meson.build | 37 +++\n man/Makefile.am | 70 ----\n man/meson.build | 82 +++++\n meson.build | 155 +++++++++\n meson_options.txt | 38 +++\n tests/Makefile.am | 31 --\n tests/gpiosim-glib/Makefile.am | 13 -\n tests/gpiosim-glib/meson.build | 11 +\n tests/gpiosim/Makefile.am | 15 -\n tests/gpiosim/meson.build | 19 ++\n tests/harness/Makefile.am | 12 -\n tests/harness/meson.build | 9 +\n tests/meson.build | 37 +++\n tests/scripts/Makefile.am | 4 -\n tests/scripts/gpiod-bash-test-helper.inc | 8 +-\n tools/Makefile.am | 25 --\n tools/gpio-tools-test.bash | 3 -\n tools/meson.build | 32 ++\n 80 files changed, 1083 insertions(+), 1522 deletions(-)\n\n\n---\nbase-commit: aff7a6143bea49e26208986aaa21bc4081146942\nchange-id: 20260420-meson-build-a35b03acface\n\nBest regards,", "diff": "diff --git a/Makefile.am b/Makefile.am\ndeleted file mode 100644\nindex 6cbae6d34df8997af720473fbf0f872658b80ee5..0000000000000000000000000000000000000000\n--- a/Makefile.am\n+++ /dev/null\n@@ -1,62 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2017-2021 Bartosz Golaszewski <bartekgola@gmail.com>\n-# SPDX-FileCopyrightText: 2022 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\n-\n-ACLOCAL_AMFLAGS = -I m4\n-AUTOMAKE_OPTIONS = foreign\n-SUBDIRS = include lib contrib\n-\n-EXTRA_DIST = \\\n-\tLICENSES/GPL-2.0-or-later.txt \\\n-\tLICENSES/Apache-2.0.txt \\\n-\tLICENSES/LGPL-2.1-or-later.txt \\\n-\tLICENSES/CC-BY-SA-4.0.txt \\\n-\tLICENSES/CC0-1.0.txt \\\n-\tLICENSES/GPL-2.0-only.txt \\\n-\tLICENSES/Linux-syscall-note.txt \\\n-\tLICENSES/BSD-3-Clause.txt\n-\n-if WITH_EXAMPLES\n-\n-SUBDIRS += examples\n-\n-endif\n-\n-if WITH_TOOLS\n-\n-SUBDIRS += tools\n-\n-endif\n-\n-if WITH_TESTS\n-\n-SUBDIRS += tests\n-\n-endif\n-\n-# Build bindings after core tests. When building tests for bindings, we need\n-# libgpiosim to be already present.\n-SUBDIRS += bindings\n-\n-if WITH_DBUS\n-\n-SUBDIRS += dbus\n-\n-endif\n-\n-if WITH_MANPAGES\n-\n-SUBDIRS += man\n-\n-endif\n-\n-if WITH_DOCS\n-\n-SUBDIRS += docs\n-\n-docs:\n-\t$(MAKE) -C docs docs\n-\n-.PHONY: docs\n-\n-endif\ndiff --git a/autogen.sh b/autogen.sh\ndeleted file mode 100755\nindex 420b821b78376873b8744bbdf09199c1ebfe6fb1..0000000000000000000000000000000000000000\n--- a/autogen.sh\n+++ /dev/null\n@@ -1,17 +0,0 @@\n-#!/bin/sh\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2017-2021 Bartosz Golaszewski <bartekgola@gmail.com>\n-# SPDX-FileCopyrightText: 2017 Thierry Reding <treding@nvidia.com>\n-\n-srcdir=`dirname $0`\n-test -z \"$srcdir\" && srcdir=.\n-\n-ORIGDIR=`pwd`\n-cd \"$srcdir\"\n-\n-autoreconf --force --install --verbose || exit 1\n-cd $ORIGDIR || exit $?\n-\n-if test -z \"$NOCONFIGURE\"; then\n-\texec \"$srcdir\"/configure \"$@\"\n-fi\ndiff --git a/bindings/Makefile.am b/bindings/Makefile.am\ndeleted file mode 100644\nindex a1771876b0d60edd3aedee766ad4e0d547104930..0000000000000000000000000000000000000000\n--- a/bindings/Makefile.am\n+++ /dev/null\n@@ -1,29 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2017-2021 Bartosz Golaszewski <bartekgola@gmail.com>\n-# SPDX-FileCopyrightText: 2022 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\n-\n-SUBDIRS = .\n-\n-if WITH_BINDINGS_CXX\n-\n-SUBDIRS += cxx\n-\n-endif\n-\n-if WITH_BINDINGS_PYTHON\n-\n-SUBDIRS += python\n-\n-endif\n-\n-if WITH_BINDINGS_RUST\n-\n-SUBDIRS += rust\n-\n-endif\n-\n-if WITH_BINDINGS_GLIB\n-\n-SUBDIRS += glib\n-\n-endif\ndiff --git a/bindings/cxx/Makefile.am b/bindings/cxx/Makefile.am\ndeleted file mode 100644\nindex e2a89cf4231312bef6a41057486ceb398626311e..0000000000000000000000000000000000000000\n--- a/bindings/cxx/Makefile.am\n+++ /dev/null\n@@ -1,47 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2017-2021 Bartosz Golaszewski <bartekgola@gmail.com>\n-\n-lib_LTLIBRARIES = libgpiodcxx.la\n-libgpiodcxx_la_SOURCES = \\\n-\tchip.cpp \\\n-\tchip-info.cpp \\\n-\tedge-event-buffer.cpp \\\n-\tedge-event.cpp \\\n-\texception.cpp \\\n-\tinfo-event.cpp \\\n-\tinternal.cpp \\\n-\tinternal.hpp \\\n-\tline.cpp \\\n-\tline-config.cpp \\\n-\tline-info.cpp \\\n-\tline-request.cpp \\\n-\tline-settings.cpp \\\n-\tmisc.cpp \\\n-\trequest-builder.cpp \\\n-\trequest-config.cpp\n-\n-libgpiodcxx_la_CXXFLAGS = -Wall -Wextra -g -std=gnu++17\n-libgpiodcxx_la_CXXFLAGS += -fvisibility=hidden -I$(top_srcdir)/include/\n-libgpiodcxx_la_CXXFLAGS += $(PROFILING_CFLAGS)\n-libgpiodcxx_la_LDFLAGS = -version-info $(subst .,:,$(ABI_CXX_VERSION))\n-libgpiodcxx_la_LDFLAGS += $(PROFILING_LDFLAGS)\n-libgpiodcxx_la_LIBADD = $(top_builddir)/lib/libgpiod.la\n-\n-include_HEADERS = gpiod.hpp\n-\n-pkgconfigdir = $(libdir)/pkgconfig\n-pkgconfig_DATA = libgpiodcxx.pc\n-\n-SUBDIRS = gpiodcxx .\n-\n-if WITH_TESTS\n-\n-SUBDIRS += tests\n-\n-endif\n-\n-if WITH_EXAMPLES\n-\n-SUBDIRS += examples\n-\n-endif\ndiff --git a/bindings/cxx/examples/Makefile.am b/bindings/cxx/examples/Makefile.am\ndeleted file mode 100644\nindex eca4d64a887e06f7f454f2719cd946cfbfcc3642..0000000000000000000000000000000000000000\n--- a/bindings/cxx/examples/Makefile.am\n+++ /dev/null\n@@ -1,47 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2017-2021 Bartosz Golaszewski <bartekgola@gmail.com>\n-\n-AM_CXXFLAGS = -I$(top_srcdir)/bindings/cxx/ -I$(top_srcdir)/include\n-AM_CXXFLAGS += -Wall -Wextra -g -std=gnu++17\n-LDADD = $(top_builddir)/bindings/cxx/libgpiodcxx.la\n-\n-noinst_PROGRAMS = \\\n-\tasync_watch_line_value \\\n-\tfind_line_by_name \\\n-\tget_chip_info \\\n-\tget_line_info \\\n-\tget_line_value \\\n-\tget_multiple_line_values \\\n-\treconfigure_input_to_output \\\n-\ttoggle_line_value \\\n-\ttoggle_multiple_line_values \\\n-\twatch_line_info \\\n-\twatch_line_rising \\\n-\twatch_line_value \\\n-\twatch_multiple_line_values\n-\n-async_watch_line_value_SOURCES = async_watch_line_value.cpp\n-\n-find_line_by_name_SOURCES = find_line_by_name.cpp\n-\n-get_chip_info_SOURCES = get_chip_info.cpp\n-\n-get_line_info_SOURCES = get_line_info.cpp\n-\n-get_line_value_SOURCES = get_line_value.cpp\n-\n-get_multiple_line_values_SOURCES = get_multiple_line_values.cpp\n-\n-reconfigure_input_to_output_SOURCES = reconfigure_input_to_output.cpp\n-\n-toggle_line_value_SOURCES = toggle_line_value.cpp\n-\n-toggle_multiple_line_values_SOURCES = toggle_multiple_line_values.cpp\n-\n-watch_line_info_SOURCES = watch_line_info.cpp\n-\n-watch_line_value_SOURCES = watch_line_value.cpp\n-\n-watch_line_rising_SOURCES = watch_line_rising.cpp\n-\n-watch_multiple_line_values_SOURCES = watch_multiple_line_values.cpp\ndiff --git a/bindings/cxx/examples/meson.build b/bindings/cxx/examples/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..b31e52b437b2378fd5ea7c8e8ea4f9d6e74bed38\n--- /dev/null\n+++ b/bindings/cxx/examples/meson.build\n@@ -0,0 +1,27 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+cxx_examples = [\n+ 'async_watch_line_value',\n+ 'find_line_by_name',\n+ 'get_chip_info',\n+ 'get_line_info',\n+ 'get_line_value',\n+ 'get_multiple_line_values',\n+ 'reconfigure_input_to_output',\n+ 'toggle_line_value',\n+ 'toggle_multiple_line_values',\n+ 'watch_line_info',\n+ 'watch_line_rising',\n+ 'watch_line_value',\n+ 'watch_multiple_line_values',\n+]\n+\n+foreach ex : cxx_examples\n+ # Use unique target names (not installed, name doesn't matter)\n+ executable('cxx_' + ex,\n+ sources: [ex + '.cpp'],\n+ include_directories: cxx_inc,\n+ dependencies: [libgpiodcxx_dep],\n+ )\n+endforeach\ndiff --git a/bindings/cxx/gpiodcxx/Makefile.am b/bindings/cxx/gpiodcxx/Makefile.am\ndeleted file mode 100644\nindex e3a3b9b38e613c60d4994e5d97151ff576aff54a..0000000000000000000000000000000000000000\n--- a/bindings/cxx/gpiodcxx/Makefile.am\n+++ /dev/null\n@@ -1,20 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2021 Bartosz Golaszewski <brgl@bgdev.pl>\n-\n-otherincludedir = $(includedir)/gpiodcxx\n-otherinclude_HEADERS = \\\n-\tchip.hpp \\\n-\tchip-info.hpp \\\n-\tedge-event-buffer.hpp \\\n-\tedge-event.hpp \\\n-\texception.hpp \\\n-\tinfo-event.hpp \\\n-\tline.hpp \\\n-\tline-config.hpp \\\n-\tline-info.hpp \\\n-\tline-request.hpp \\\n-\tline-settings.hpp \\\n-\tmisc.hpp \\\n-\trequest-builder.hpp \\\n-\trequest-config.hpp \\\n-\ttimestamp.hpp\ndiff --git a/bindings/cxx/meson.build b/bindings/cxx/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..467b0d18658cbf04bfc76cb167e5e18dd4a3a147\n--- /dev/null\n+++ b/bindings/cxx/meson.build\n@@ -0,0 +1,73 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+cxx_inc = include_directories('.', '../../include')\n+\n+libgpiodcxx_both = both_libraries('gpiodcxx',\n+ sources: [\n+ 'chip.cpp',\n+ 'chip-info.cpp',\n+ 'edge-event-buffer.cpp',\n+ 'edge-event.cpp',\n+ 'exception.cpp',\n+ 'info-event.cpp',\n+ 'internal.cpp',\n+ 'line.cpp',\n+ 'line-config.cpp',\n+ 'line-info.cpp',\n+ 'line-request.cpp',\n+ 'line-settings.cpp',\n+ 'misc.cpp',\n+ 'request-builder.cpp',\n+ 'request-config.cpp',\n+ ],\n+ include_directories: cxx_inc,\n+ cpp_args: ['-fvisibility=hidden'],\n+ dependencies: [libgpiod_dep],\n+ version: libgpiodcxx_version,\n+ soversion: libgpiodcxx_soversion,\n+ install: true,\n+)\n+libgpiodcxx_lib = libgpiodcxx_both.get_shared_lib()\n+\n+install_headers('gpiod.hpp')\n+\n+install_headers(\n+ 'gpiodcxx/chip.hpp',\n+ 'gpiodcxx/chip-info.hpp',\n+ 'gpiodcxx/edge-event-buffer.hpp',\n+ 'gpiodcxx/edge-event.hpp',\n+ 'gpiodcxx/exception.hpp',\n+ 'gpiodcxx/info-event.hpp',\n+ 'gpiodcxx/line.hpp',\n+ 'gpiodcxx/line-config.hpp',\n+ 'gpiodcxx/line-info.hpp',\n+ 'gpiodcxx/line-request.hpp',\n+ 'gpiodcxx/line-settings.hpp',\n+ 'gpiodcxx/misc.hpp',\n+ 'gpiodcxx/request-builder.hpp',\n+ 'gpiodcxx/request-config.hpp',\n+ 'gpiodcxx/timestamp.hpp',\n+ subdir: 'gpiodcxx',\n+)\n+\n+pkgconfig.generate(libgpiodcxx_lib,\n+ name: 'libgpiodcxx',\n+ description: 'C++ bindings for libgpiod',\n+ url: 'https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/',\n+ version: meson.project_version(),\n+ requires: ['libgpiod'],\n+)\n+\n+libgpiodcxx_dep = declare_dependency(\n+ link_with: libgpiodcxx_lib,\n+ include_directories: cxx_inc,\n+)\n+\n+if opt_examples.allowed()\n+ subdir('examples')\n+endif\n+\n+if opt_tests.allowed()\n+ subdir('tests')\n+endif\ndiff --git a/bindings/cxx/tests/Makefile.am b/bindings/cxx/tests/Makefile.am\ndeleted file mode 100644\nindex d9284da1b915e84ce7b8512ffa1da453192094bf..0000000000000000000000000000000000000000\n--- a/bindings/cxx/tests/Makefile.am\n+++ /dev/null\n@@ -1,30 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2017-2021 Bartosz Golaszewski <bartekgola@gmail.com>\n-\n-AM_CXXFLAGS = -I$(top_srcdir)/bindings/cxx/ -I$(top_srcdir)/include\n-AM_CXXFLAGS += -I$(top_srcdir)/tests/gpiosim/\n-AM_CXXFLAGS += -Wall -Wextra -g -std=gnu++17 $(CATCH2_CFLAGS)\n-AM_LDFLAGS = -pthread $(CATCH2_LIBS)\n-LDADD = $(top_builddir)/bindings/cxx/libgpiodcxx.la\n-LDADD += $(top_builddir)/tests/gpiosim/libgpiosim.la\n-\n-noinst_PROGRAMS = gpiod-cxx-test\n-\n-gpiod_cxx_test_SOURCES = \\\n-\tcheck-kernel.cpp \\\n-\tgpiod-cxx-test-main.cpp \\\n-\tgpiosim.cpp \\\n-\tgpiosim.hpp \\\n-\thelpers.cpp \\\n-\thelpers.hpp \\\n-\ttests-chip.cpp \\\n-\ttests-chip-info.cpp \\\n-\ttests-edge-event.cpp \\\n-\ttests-info-event.cpp \\\n-\ttests-line.cpp \\\n-\ttests-line-config.cpp \\\n-\ttests-line-info.cpp \\\n-\ttests-line-request.cpp \\\n-\ttests-line-settings.cpp \\\n-\ttests-misc.cpp \\\n-\ttests-request-config.cpp\ndiff --git a/bindings/cxx/tests/meson.build b/bindings/cxx/tests/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..acd6257c075b317fa746a504a249b4c3ae3bc0b8\n--- /dev/null\n+++ b/bindings/cxx/tests/meson.build\n@@ -0,0 +1,29 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+executable('gpiod-cxx-test',\n+ sources: [\n+ 'check-kernel.cpp',\n+ 'gpiod-cxx-test-main.cpp',\n+ 'gpiosim.cpp',\n+ 'helpers.cpp',\n+ 'tests-chip.cpp',\n+ 'tests-chip-info.cpp',\n+ 'tests-edge-event.cpp',\n+ 'tests-info-event.cpp',\n+ 'tests-line.cpp',\n+ 'tests-line-config.cpp',\n+ 'tests-line-info.cpp',\n+ 'tests-line-request.cpp',\n+ 'tests-line-settings.cpp',\n+ 'tests-misc.cpp',\n+ 'tests-request-config.cpp',\n+ ],\n+ include_directories: [\n+ cxx_inc,\n+ include_directories('../../..'),\n+ include_directories('../../../tests/gpiosim'),\n+ ],\n+ dependencies: [libgpiodcxx_dep, catch2_test_dep, threads_dep],\n+ link_with: [libgpiosim_lib],\n+)\ndiff --git a/bindings/glib/Makefile.am b/bindings/glib/Makefile.am\ndeleted file mode 100644\nindex f0241e8d947bd9aac83147618ce6d1e09908fddf..0000000000000000000000000000000000000000\n--- a/bindings/glib/Makefile.am\n+++ /dev/null\n@@ -1,133 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022-2023 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\n-\n-SUBDIRS = .\n-\n-if WITH_TESTS\n-\n-SUBDIRS += tests\n-\n-endif\n-\n-if WITH_EXAMPLES\n-\n-SUBDIRS += examples\n-\n-endif\n-\n-lib_LTLIBRARIES = libgpiod-glib.la\n-\n-libgpiod_glib_la_SOURCES = \\\n-\tchip.c \\\n-\tchip-info.c \\\n-\tedge-event.c \\\n-\terror.c \\\n-\tinfo-event.c \\\n-\tinternal.c \\\n-\tinternal.h \\\n-\tline-config.c \\\n-\tline-info.c \\\n-\tline-request.c \\\n-\tline-settings.c \\\n-\tmisc.c \\\n-\trequest-config.c\n-\n-otherincludedir = $(includedir)/gpiod-glib\n-otherinclude_HEADERS = \\\n-\tgpiod-glib/chip.h \\\n-\tgpiod-glib/chip-info.h \\\n-\tgpiod-glib/edge-event.h \\\n-\tgpiod-glib/error.h \\\n-\tgpiod-glib/generated-enums.h \\\n-\tgpiod-glib/info-event.h \\\n-\tgpiod-glib/line.h \\\n-\tgpiod-glib/line-config.h \\\n-\tgpiod-glib/line-info.h \\\n-\tgpiod-glib/line-request.h \\\n-\tgpiod-glib/line-settings.h \\\n-\tgpiod-glib/misc.h \\\n-\tgpiod-glib/request-config.h\n-\n-EXTRA_DIST = \\\n-\tgenerated-enums.c.template \\\n-\tgenerated-enums.h.template\n-\n-project_headers = \\\n-\t$(srcdir)/gpiod-glib/line.h \\\n-\t$(srcdir)/gpiod-glib/edge-event.h \\\n-\t$(srcdir)/gpiod-glib/info-event.h\n-\n-generated-enums.c: $(project_headers) generated-enums.c.template\n-\t$(AM_V_GEN)$(GLIB_MKENUMS) \\\n-\t\t--template=$(srcdir)/generated-enums.c.template \\\n-\t\t--output=$(builddir)/$@ \\\n-\t\t$(project_headers)\n-\n-gpiod-glib/generated-enums.h: $(project_headers) generated-enums.h.template\n-\t$(AM_V_GEN)$(GLIB_MKENUMS) \\\n-\t\t--template=$(srcdir)/generated-enums.h.template \\\n-\t\t--output=$(srcdir)/$@ \\\n-\t\t$(project_headers)\n-\n-nodist_libgpiod_glib_la_SOURCES = \\\n-\tgenerated-enums.c \\\n-\tgpiod-glib/generated-enums.h\n-\n-BUILT_SOURCES = $(nodist_libgpiod_glib_la_SOURCES)\n-CLEANFILES = $(nodist_libgpiod_glib_la_SOURCES)\n-\n-libgpiod_glib_la_CFLAGS = -Wall -Wextra -g\n-libgpiod_glib_la_CFLAGS += -I$(top_srcdir)/include/ -include $(top_builddir)/config.h\n-libgpiod_glib_la_CFLAGS += $(GLIB_CFLAGS) $(GIO_CFLAGS) $(GIO_UNIX_CFLAGS)\n-libgpiod_glib_la_CFLAGS += -DG_LOG_DOMAIN=\\\"gpiod-glib\\\"\n-libgpiod_glib_la_CFLAGS += $(PROFILING_CFLAGS)\n-libgpiod_glib_la_LDFLAGS = -version-info $(subst .,:,$(ABI_GLIB_VERSION))\n-libgpiod_glib_la_LDFLAGS += -lgpiod -L$(top_builddir)/lib\n-libgpiod_glib_la_LDFLAGS += $(GLIB_LIBS) $(GIO_LIBS) $(GIO_UNIX_LIBS)\n-libgpiod_glib_la_LDFLAGS += $(PROFILING_LDFLAGS)\n-\n-include_HEADERS = gpiod-glib.h\n-\n-pkgconfigdir = $(libdir)/pkgconfig\n-pkgconfig_DATA = gpiod-glib.pc\n-\n-if HAVE_INTROSPECTION\n-\n-INTROSPECTION_GIRS = Gpiodglib-1.0.gir\n-\n-girdir = $(INTROSPECTION_GIRDIR)\n-gir_DATA = Gpiodglib-1.0.gir\n-\n-typelibsdir = $(INTROSPECTION_TYPELIBDIR)\n-typelibs_DATA = Gpiodglib-1.0.typelib\n-\n-Gpiodglib_1_0_gir_SCANNERFLAGS = \\\n-\t--c-include=\"gpiod-glib.h\" \\\n-\t--warn-all \\\n-\t--namespace Gpiodglib \\\n-\t--identifier-prefix Gpiodglib \\\n-\t--symbol-prefix gpiodglib\n-\n-Gpiodglib_1_0_gir_CFLAGS = \\\n-\t$(libgpiod_glib_la_CFLAGS) \\\n-\t-DGPIODGLIB_COMPILATION\n-\n-Gpiodglib-1.0.gir: libgpiod-glib.la\n-Gpiodglib_1_0_gir_INCLUDES = Gio-2.0\n-Gpiodglib_1_0_gir_LIBS = libgpiod-glib.la\n-Gpiodglib_1_0_gir_FILES = $(otherinclude_HEADERS) $(libgpiod_glib_la_SOURCES)\n-Gpiodglib_1_0_gir_EXPORT_PACKAGES = gpiod-glib\n-\n-include $(INTROSPECTION_MAKEFILE)\n-\n-endif\n-\n-if HAS_GI_DOCGEN\n-\n-doc: Gpiodglib-1.0.gir gi-docgen.toml\n-\t$(AM_V_GEN)gi-docgen generate --config gi-docgen.toml Gpiodglib-1.0.gir\n-.PHONY: doc\n-\n-EXTRA_DIST += gi-docgen.toml\n-\n-endif\ndiff --git a/bindings/glib/examples/Makefile.am b/bindings/glib/examples/Makefile.am\ndeleted file mode 100644\nindex 47035bb686ab46da84678194ec1c1c74f24aea3b..0000000000000000000000000000000000000000\n--- a/bindings/glib/examples/Makefile.am\n+++ /dev/null\n@@ -1,22 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022-2023 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\n-\n-noinst_PROGRAMS = \\\n-\tfind_line_by_name_glib \\\n-\tget_chip_info_glib \\\n-\tget_line_info_glib \\\n-\tget_line_value_glib \\\n-\tget_multiple_line_values_glib \\\n-\treconfigure_input_to_output_glib \\\n-\ttoggle_line_value_glib \\\n-\ttoggle_multiple_line_values_glib \\\n-\twatch_line_info_glib \\\n-\twatch_line_value_glib \\\n-\twatch_multiple_edge_rising_glib\n-\n-AM_CFLAGS = -I$(top_srcdir)/bindings/glib/\n-AM_CFLAGS += -include $(top_builddir)/config.h\n-AM_CFLAGS += -Wall -Wextra -g -std=gnu89 $(GLIB_CFLAGS) $(GOBJECT_CFLAGS)\n-AM_CFLAGS += -DG_LOG_DOMAIN=\\\"gpiotools-glib\\\"\n-LDADD = $(top_builddir)/bindings/glib/libgpiod-glib.la\n-LDADD += $(GLIB_LIBS) $(GOBJECT_LIBS)\ndiff --git a/bindings/glib/examples/meson.build b/bindings/glib/examples/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..5d0976f19eecea2978ca88bbb05669fddcba966b\n--- /dev/null\n+++ b/bindings/glib/examples/meson.build\n@@ -0,0 +1,25 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+glib_examples = [\n+ 'find_line_by_name_glib',\n+ 'get_chip_info_glib',\n+ 'get_line_info_glib',\n+ 'get_line_value_glib',\n+ 'get_multiple_line_values_glib',\n+ 'reconfigure_input_to_output_glib',\n+ 'toggle_line_value_glib',\n+ 'toggle_multiple_line_values_glib',\n+ 'watch_line_info_glib',\n+ 'watch_line_value_glib',\n+ 'watch_multiple_edge_rising_glib',\n+]\n+\n+foreach ex : glib_examples\n+ executable(ex,\n+ sources: [ex + '.c'],\n+ include_directories: glib_inc,\n+ c_args: ['-DG_LOG_DOMAIN=\"gpiotools-glib\"'],\n+ dependencies: [libgpiod_glib_dep, glib_dep, gobject_dep],\n+ )\n+endforeach\ndiff --git a/bindings/glib/gpiod-glib/meson.build b/bindings/glib/gpiod-glib/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..8439ac7914c107bba619cbe8df98b5c7635ec72d\n--- /dev/null\n+++ b/bindings/glib/gpiod-glib/meson.build\n@@ -0,0 +1,18 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+gen_enum_h = custom_target('generated-enums-h',\n+ input: [\n+ files('line.h', 'edge-event.h', 'info-event.h'),\n+ files('../generated-enums.h.template'),\n+ ],\n+ output: 'generated-enums.h',\n+ command: [\n+ glib_mkenums,\n+ '--template', '@INPUT3@',\n+ '--output', '@OUTPUT@',\n+ '@INPUT0@', '@INPUT1@', '@INPUT2@',\n+ ],\n+ install: true,\n+ install_dir: get_option('includedir') / 'gpiod-glib',\n+)\ndiff --git a/bindings/glib/meson.build b/bindings/glib/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..dd817d9a7fa0e5c274bc837dba2d2a3a942d8e96\n--- /dev/null\n+++ b/bindings/glib/meson.build\n@@ -0,0 +1,111 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+subdir('gpiod-glib')\n+\n+project_headers = files(\n+ 'gpiod-glib/line.h',\n+ 'gpiod-glib/edge-event.h',\n+ 'gpiod-glib/info-event.h',\n+)\n+\n+gen_enum_c = custom_target('generated-enums-c',\n+ input: project_headers + [files('generated-enums.c.template')],\n+ output: 'generated-enums.c',\n+ command: [\n+ glib_mkenums,\n+ '--template', '@INPUT3@',\n+ '--output', '@OUTPUT@',\n+ '@INPUT0@', '@INPUT1@', '@INPUT2@',\n+ ],\n+)\n+\n+glib_sources = [\n+ 'chip.c',\n+ 'chip-info.c',\n+ 'edge-event.c',\n+ 'error.c',\n+ 'info-event.c',\n+ 'internal.c',\n+ 'line-config.c',\n+ 'line-info.c',\n+ 'line-request.c',\n+ 'line-settings.c',\n+ 'misc.c',\n+ 'request-config.c',\n+]\n+\n+glib_public_headers = files(\n+ 'gpiod-glib/chip.h',\n+ 'gpiod-glib/chip-info.h',\n+ 'gpiod-glib/edge-event.h',\n+ 'gpiod-glib/error.h',\n+ 'gpiod-glib/info-event.h',\n+ 'gpiod-glib/line.h',\n+ 'gpiod-glib/line-config.h',\n+ 'gpiod-glib/line-info.h',\n+ 'gpiod-glib/line-request.h',\n+ 'gpiod-glib/line-settings.h',\n+ 'gpiod-glib/misc.h',\n+ 'gpiod-glib/request-config.h',\n+)\n+\n+glib_inc = include_directories('.', '../../include')\n+\n+libgpiod_glib_both = both_libraries('gpiod-glib',\n+ sources: glib_sources + [gen_enum_c, gen_enum_h],\n+ include_directories: glib_inc,\n+ c_args: ['-DG_LOG_DOMAIN=\"gpiod-glib\"', '-DGPIODGLIB_COMPILATION'],\n+ dependencies: [libgpiod_dep, glib_dep, gobject_dep, gio_dep, gio_unix_dep],\n+ version: libgpiod_glib_version,\n+ soversion: libgpiod_glib_soversion,\n+ install: true,\n+)\n+libgpiod_glib_lib = libgpiod_glib_both.get_shared_lib()\n+\n+install_headers('gpiod-glib.h')\n+\n+install_headers(glib_public_headers, subdir: 'gpiod-glib')\n+\n+pkgconfig.generate(libgpiod_glib_lib,\n+ name: 'gpiod-glib',\n+ description: 'GObject bindings for libgpiod',\n+ url: 'https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/',\n+ version: meson.project_version(),\n+ requires_private: ['libgpiod >= 2.1'],\n+)\n+\n+libgpiod_glib_dep = declare_dependency(\n+ link_with: libgpiod_glib_lib,\n+ include_directories: glib_inc,\n+)\n+\n+if opt_introspection.allowed() and gir_dep.found()\n+ gnome = import('gnome')\n+\n+ glib_gir = gnome.generate_gir(libgpiod_glib_lib,\n+ sources: glib_sources + glib_public_headers + [gen_enum_c, gen_enum_h],\n+ namespace: 'Gpiodglib',\n+ nsversion: '1.0',\n+ identifier_prefix: 'Gpiodglib',\n+ symbol_prefix: 'gpiodglib',\n+ includes: ['Gio-2.0'],\n+ header: 'gpiod-glib.h',\n+ export_packages: 'gpiod-glib',\n+ extra_args: [\n+ '--c-include=gpiod-glib.h',\n+ '--warn-all',\n+ '-DGPIODGLIB_COMPILATION',\n+ ],\n+ include_directories: glib_inc,\n+ install: true,\n+ )\n+endif\n+\n+if opt_examples.allowed()\n+ subdir('examples')\n+endif\n+\n+if opt_tests.allowed()\n+ subdir('tests')\n+endif\ndiff --git a/bindings/glib/tests/Makefile.am b/bindings/glib/tests/Makefile.am\ndeleted file mode 100644\nindex a90587acfb274c994b654122342502e287df7a49..0000000000000000000000000000000000000000\n--- a/bindings/glib/tests/Makefile.am\n+++ /dev/null\n@@ -1,29 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022-2023 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\n-\n-noinst_PROGRAMS = gpiod-glib-test\n-gpiod_glib_test_SOURCES = \\\n-\thelpers.c \\\n-\thelpers.h \\\n-\ttests-chip.c \\\n-\ttests-chip-info.c \\\n-\ttests-edge-event.c \\\n-\ttests-info-event.c \\\n-\ttests-line-config.c \\\n-\ttests-line-info.c \\\n-\ttests-line-request.c \\\n-\ttests-line-settings.c \\\n-\ttests-misc.c \\\n-\ttests-request-config.c\n-\n-AM_CFLAGS = -I$(top_srcdir)/bindings/glib/\n-AM_CFLAGS += -I$(top_srcdir)/tests/gpiosim-glib/\n-AM_CFLAGS += -I$(top_srcdir)/tests/harness/\n-AM_CFLAGS += -include $(top_builddir)/config.h\n-AM_CFLAGS += -Wall -Wextra -g -std=gnu89 $(GLIB_CFLAGS) $(GIO_CFLAGS)\n-AM_CFLAGS += -DG_LOG_DOMAIN=\\\"gpiod-glib-test\\\"\n-LDADD = $(top_builddir)/bindings/glib/libgpiod-glib.la\n-LDADD += $(top_builddir)/tests/gpiosim/libgpiosim.la\n-LDADD += $(top_builddir)/tests/gpiosim-glib/libgpiosim-glib.la\n-LDADD += $(top_builddir)/tests/harness/libgpiod-test-harness.la\n-LDADD += $(GLIB_LIBS) $(GIO_LIBS)\ndiff --git a/bindings/glib/tests/meson.build b/bindings/glib/tests/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..1d38dee0f81c30a04539b6abdf1fe9907b10709f\n--- /dev/null\n+++ b/bindings/glib/tests/meson.build\n@@ -0,0 +1,27 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+executable('gpiod-glib-test',\n+ sources: [\n+ 'helpers.c',\n+ 'tests-chip.c',\n+ 'tests-chip-info.c',\n+ 'tests-edge-event.c',\n+ 'tests-info-event.c',\n+ 'tests-line-config.c',\n+ 'tests-line-info.c',\n+ 'tests-line-request.c',\n+ 'tests-line-settings.c',\n+ 'tests-misc.c',\n+ 'tests-request-config.c',\n+ ],\n+ include_directories: [\n+ glib_inc,\n+ include_directories('../../..'),\n+ include_directories('../../../tests/gpiosim-glib'),\n+ include_directories('../../../tests/harness'),\n+ ],\n+ c_args: ['-DG_LOG_DOMAIN=\"gpiod-glib-test\"'],\n+ dependencies: [libgpiod_glib_dep, glib_test_dep, gio_test_dep],\n+ link_with: [libgpiosim_lib, libgpiosim_glib_lib, libgpiod_test_harness_lib],\n+)\ndiff --git a/bindings/meson.build b/bindings/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..19700059d9870fc9c7f37c4ce7519536fbf36e9e\n--- /dev/null\n+++ b/bindings/meson.build\n@@ -0,0 +1,18 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+if opt_bindings_cxx.allowed()\n+ subdir('cxx')\n+endif\n+\n+if opt_bindings_glib.allowed()\n+ subdir('glib')\n+endif\n+\n+if opt_bindings_python.allowed()\n+ subdir('python')\n+endif\n+\n+if opt_bindings_rust.allowed()\n+ subdir('rust')\n+endif\ndiff --git a/bindings/python/Makefile.am b/bindings/python/Makefile.am\ndeleted file mode 100644\nindex 19ebb32214be6fa4e7186d666e661821c8f8327f..0000000000000000000000000000000000000000\n--- a/bindings/python/Makefile.am\n+++ /dev/null\n@@ -1,58 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022 Bartosz Golaszewski <brgl@bgdev.pl>\n-\n-EXTRA_DIST = \\\n-\tMANIFEST.in \\\n-\tREADME.md \\\n-\tbuild_tests.py \\\n-\tgenerate_pypi_artifacts.sh \\\n-\tpyproject.toml \\\n-\tsetup.py\n-\n-if WITH_TESTS\n-\n-python-tests:\n-\tTOP_SRCDIR=$(abs_top_builddir) \\\n-\tTOP_BUILDDIR=$(abs_top_builddir) \\\n-\t$(PYTHON) build_tests.py\n-\n-python-tests-run:\n-\tPYTHONPATH=$(abs_top_srcdir)/bindings/python \\\n-\tLD_LIBRARY_PATH=$(abs_top_builddir)/lib/.libs/:\\\n-\t$(abs_top_builddir)/tests/gpiosim/.libs/ \\\n-\t$(PYTHON) -B -m tests\n-\n-else\n-\n-python-tests:\n-\n-endif\n-\n-clean-local:\n-\trm -rf dist\n-\trm -rf gpiod.egg-info\n-\trm -f gpiod/_ext.*.so\n-\trm -f tests/*/_ext.*.so\n-\n-all-local: python-tests\n-\tCFLAGS=\"-I$(abs_top_srcdir)/include/ -I$(abs_top_srcdir)/tests/gpiosim \\\n-\t-L$(abs_top_builddir)/lib/.libs/ -L$(abs_top_builddir)/tests/gpiosim/.libs/\" \\\n-\t$(PYTHON) -m build\n-\n-install-exec-local:\n-\t$(PYTHON) -m pip install dist/*.whl \\\n-\t--ignore-installed --prefix=$(prefix) --root=$(if $(DESTDIR),$(DESTDIR),/)\n-\n-SUBDIRS = gpiod\n-\n-if WITH_TESTS\n-\n-SUBDIRS += tests\n-\n-endif\n-\n-if WITH_EXAMPLES\n-\n-SUBDIRS += examples\n-\n-endif\ndiff --git a/bindings/python/examples/Makefile.am b/bindings/python/examples/Makefile.am\ndeleted file mode 100644\nindex 88523125e86c5f64fa4bdd0802feb6cd1ef23bc5..0000000000000000000000000000000000000000\n--- a/bindings/python/examples/Makefile.am\n+++ /dev/null\n@@ -1,17 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022 Bartosz Golaszewski <brgl@bgdev.pl>\n-\n-EXTRA_DIST = \\\n-\tasync_watch_line_value.py \\\n-\tfind_line_by_name.py \\\n-\tget_chip_info.py \\\n-\tget_line_info.py \\\n-\tget_line_value.py \\\n-\tget_multiple_line_values.py \\\n-\treconfigure_input_to_output.py \\\n-\ttoggle_line_value.py \\\n-\ttoggle_multiple_line_values.py \\\n-\twatch_line_info.py \\\n-\twatch_line_value.py \\\n-\twatch_line_rising.py \\\n-\twatch_multiple_line_values.py\ndiff --git a/bindings/python/gpiod/Makefile.am b/bindings/python/gpiod/Makefile.am\ndeleted file mode 100644\nindex 7e37b8dee0010a2dd6c2d55d47de38f6f1e6d4f5..0000000000000000000000000000000000000000\n--- a/bindings/python/gpiod/Makefile.am\n+++ /dev/null\n@@ -1,19 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022 Bartosz Golaszewski <brgl@bgdev.pl>\n-\n-SUBDIRS = ext\n-\n-EXTRA_DIST = \\\n-\tchip_info.py \\\n-\tchip.py \\\n-\t_ext.pyi \\\n-\tedge_event.py \\\n-\texception.py \\\n-\tinfo_event.py \\\n-\t__init__.py \\\n-\t_internal.py \\\n-\tline_info.py \\\n-\tline.py \\\n-\tline_request.py \\\n-\tline_settings.py \\\n-\tversion.py\ndiff --git a/bindings/python/gpiod/ext/Makefile.am b/bindings/python/gpiod/ext/Makefile.am\ndeleted file mode 100644\nindex 3a8a0d1fb7f70c2511912bdd8b0d7a375e82d60e..0000000000000000000000000000000000000000\n--- a/bindings/python/gpiod/ext/Makefile.am\n+++ /dev/null\n@@ -1,11 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022 Bartosz Golaszewski <brgl@bgdev.pl>\n-\n-EXTRA_DIST = \\\n-\tchip.c \\\n-\tcommon.c \\\n-\tinternal.h \\\n-\tline-config.c \\\n-\tline-settings.c \\\n-\tmodule.c \\\n-\trequest.c\ndiff --git a/bindings/python/gpiod/meson.build b/bindings/python/gpiod/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..93d21a0e3f313ba0a432d118352627a0eb4702cc\n--- /dev/null\n+++ b/bindings/python/gpiod/meson.build\n@@ -0,0 +1,41 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+py.extension_module('_ext',\n+ sources: [\n+ 'ext/chip.c',\n+ 'ext/common.c',\n+ 'ext/line-config.c',\n+ 'ext/line-settings.c',\n+ 'ext/module.c',\n+ 'ext/request.c',\n+ ],\n+ include_directories: [libgpiod_inc],\n+ dependencies: [libgpiod_dep],\n+ c_args: ['-D_GNU_SOURCE=1', '-Wall', '-Wextra'],\n+ subdir: 'gpiod',\n+ install: true,\n+)\n+\n+py_sources = [\n+ '__init__.py',\n+ 'chip.py',\n+ 'chip_info.py',\n+ 'edge_event.py',\n+ 'exception.py',\n+ 'info_event.py',\n+ '_internal.py',\n+ 'line_info.py',\n+ 'line.py',\n+ 'line_request.py',\n+ 'line_settings.py',\n+ 'version.py',\n+ '_ext.pyi',\n+ 'py.typed',\n+]\n+\n+py.install_sources(files(py_sources), subdir: 'gpiod')\n+\n+foreach f : py_sources\n+ configure_file(input: f, output: f, copy: true)\n+endforeach\ndiff --git a/bindings/python/meson.build b/bindings/python/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..efd99a9d8118106005a4a42edcb906d6a5b65818\n--- /dev/null\n+++ b/bindings/python/meson.build\n@@ -0,0 +1,10 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+py = import('python').find_installation('python3', required: true)\n+\n+subdir('gpiod')\n+\n+if opt_tests.allowed()\n+ subdir('tests')\n+endif\ndiff --git a/bindings/python/tests/Makefile.am b/bindings/python/tests/Makefile.am\ndeleted file mode 100644\nindex 1809206beb5cf90f6f4a0bc93428579925d012eb..0000000000000000000000000000000000000000\n--- a/bindings/python/tests/Makefile.am\n+++ /dev/null\n@@ -1,18 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022 Bartosz Golaszewski <brgl@bgdev.pl>\n-\n-SUBDIRS = gpiosim system\n-\n-EXTRA_DIST = \\\n-\thelpers.py \\\n-\t__init__.py \\\n-\t__main__.py \\\n-\ttests_chip_info.py \\\n-\ttests_chip.py \\\n-\ttests_edge_event.py \\\n-\ttests_info_event.py \\\n-\ttests_line.py \\\n-\ttests_line_info.py \\\n-\ttests_line_request.py \\\n-\ttests_line_settings.py \\\n-\ttests_module.py\ndiff --git a/bindings/python/tests/gpiosim/Makefile.am b/bindings/python/tests/gpiosim/Makefile.am\ndeleted file mode 100644\nindex cc8c11a6bacf18ec54bc947959f84e29b9b3a0f0..0000000000000000000000000000000000000000\n--- a/bindings/python/tests/gpiosim/Makefile.am\n+++ /dev/null\n@@ -1,8 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022 Bartosz Golaszewski <brgl@bgdev.pl>\n-\n-EXTRA_DIST = \\\n-\tchip.py \\\n-\t_ext.pyi \\\n-\text.c \\\n-\t__init__.py\ndiff --git a/bindings/python/tests/gpiosim/meson.build b/bindings/python/tests/gpiosim/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..8933fc45dcef7e646adbd186248490d35d3df9b6\n--- /dev/null\n+++ b/bindings/python/tests/gpiosim/meson.build\n@@ -0,0 +1,14 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+py.extension_module('_ext',\n+ sources: ['ext.c'],\n+ include_directories: [libgpiosim_inc],\n+ link_with: [libgpiosim_lib],\n+ c_args: ['-D_GNU_SOURCE=1', '-Wall', '-Wextra'],\n+ install: false,\n+)\n+\n+foreach f : ['__init__.py', 'chip.py', '_ext.pyi']\n+ configure_file(input: f, output: f, copy: true)\n+endforeach\ndiff --git a/bindings/python/tests/meson.build b/bindings/python/tests/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..aad0c11a6fcf7723d095e2225465c606cbd30ca1\n--- /dev/null\n+++ b/bindings/python/tests/meson.build\n@@ -0,0 +1,34 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+subdir('gpiosim')\n+subdir('system')\n+\n+foreach f : [\n+ '__init__.py',\n+ '__main__.py',\n+ 'helpers.py',\n+ 'tests_chip.py',\n+ 'tests_chip_info.py',\n+ 'tests_edge_event.py',\n+ 'tests_info_event.py',\n+ 'tests_line.py',\n+ 'tests_line_info.py',\n+ 'tests_line_request.py',\n+ 'tests_line_settings.py',\n+ 'tests_module.py',\n+]\n+ configure_file(input: f, output: f, copy: true)\n+endforeach\n+\n+test_env = environment()\n+test_env.set('PYTHONPATH', meson.global_build_root() / 'bindings' / 'python')\n+test_env.append('LD_LIBRARY_PATH', meson.global_build_root() / 'lib')\n+test_env.append('LD_LIBRARY_PATH', meson.global_build_root() / 'tests' / 'gpiosim')\n+\n+test('python-tests',\n+ py,\n+ args: ['-B', '-m', 'tests'],\n+ env: test_env,\n+ is_parallel: false,\n+)\ndiff --git a/bindings/python/tests/system/Makefile.am b/bindings/python/tests/system/Makefile.am\ndeleted file mode 100644\nindex 3590be3962603ffc13ff18785f1de0c005be67a4..0000000000000000000000000000000000000000\n--- a/bindings/python/tests/system/Makefile.am\n+++ /dev/null\n@@ -1,7 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022 Bartosz Golaszewski <brgl@bgdev.pl>\n-\n-EXTRA_DIST = \\\n-\t_ext.pyi \\\n-\text.c \\\n-\t__init__.py\ndiff --git a/bindings/python/tests/system/meson.build b/bindings/python/tests/system/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..aec6f7cf784eb1c116eb0351db6858de07fa6004\n--- /dev/null\n+++ b/bindings/python/tests/system/meson.build\n@@ -0,0 +1,12 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+py.extension_module('_ext',\n+ sources: ['ext.c'],\n+ c_args: ['-D_GNU_SOURCE=1', '-Wall', '-Wextra'],\n+ install: false,\n+)\n+\n+foreach f : ['__init__.py', '_ext.pyi']\n+ configure_file(input: f, output: f, copy: true)\n+endforeach\ndiff --git a/bindings/rust/Makefile.am b/bindings/rust/Makefile.am\ndeleted file mode 100644\nindex e89c39327c898c7798b24fcd7ab38c6cd3e22273..0000000000000000000000000000000000000000\n--- a/bindings/rust/Makefile.am\n+++ /dev/null\n@@ -1,6 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022 Linaro Ltd.\n-# SPDX-FileCopyrightText: 2022 Viresh Kumar <viresh.kumar@linaro.org>\n-\n-EXTRA_DIST = Cargo.toml\n-SUBDIRS = gpiosim-sys libgpiod libgpiod-sys\ndiff --git a/bindings/rust/gpiosim-sys/Makefile.am b/bindings/rust/gpiosim-sys/Makefile.am\ndeleted file mode 100644\nindex 3107223198356f3a49ef1b41f17cd9f05eecd5fa..0000000000000000000000000000000000000000\n--- a/bindings/rust/gpiosim-sys/Makefile.am\n+++ /dev/null\n@@ -1,6 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022 Linaro Ltd.\n-# SPDX-FileCopyrightText: 2022 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\n-\n-EXTRA_DIST = build.rs Cargo.toml README.md\n-SUBDIRS = src\ndiff --git a/bindings/rust/gpiosim-sys/src/Makefile.am b/bindings/rust/gpiosim-sys/src/Makefile.am\ndeleted file mode 100644\nindex e88f477083a0c114b0d3693f99808be6de165b2b..0000000000000000000000000000000000000000\n--- a/bindings/rust/gpiosim-sys/src/Makefile.am\n+++ /dev/null\n@@ -1,5 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022 Linaro Ltd.\n-# SPDX-FileCopyrightText: 2022 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\n-\n-EXTRA_DIST = lib.rs sim.rs\ndiff --git a/bindings/rust/libgpiod-sys/Makefile.am b/bindings/rust/libgpiod-sys/Makefile.am\ndeleted file mode 100644\nindex 667f3de89100a494732b2fd228bab764fc202168..0000000000000000000000000000000000000000\n--- a/bindings/rust/libgpiod-sys/Makefile.am\n+++ /dev/null\n@@ -1,6 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022 Linaro Ltd.\n-# SPDX-FileCopyrightText: 2022 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\n-\n-EXTRA_DIST = build.rs Cargo.toml README.md wrapper.h\n-SUBDIRS = src\ndiff --git a/bindings/rust/libgpiod-sys/src/Makefile.am b/bindings/rust/libgpiod-sys/src/Makefile.am\ndeleted file mode 100644\nindex 0ef728b7ffac9271c37aef1ea8172ba765ce1504..0000000000000000000000000000000000000000\n--- a/bindings/rust/libgpiod-sys/src/Makefile.am\n+++ /dev/null\n@@ -1,5 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022 Linaro Ltd.\n-# SPDX-FileCopyrightText: 2022 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\n-\n-EXTRA_DIST = lib.rs\ndiff --git a/bindings/rust/libgpiod/Makefile.am b/bindings/rust/libgpiod/Makefile.am\ndeleted file mode 100644\nindex 619e36caadcc5fefc5d3c3b4dd3ed2a19e0dbcfb..0000000000000000000000000000000000000000\n--- a/bindings/rust/libgpiod/Makefile.am\n+++ /dev/null\n@@ -1,28 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022 Linaro Ltd.\n-# SPDX-FileCopyrightText: 2022 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\n-\n-# We do not want to build against the system libs when building with make. So we\n-# specify the paths to the build directory of the C lib.\n-command = SYSTEM_DEPS_LIBGPIOD_NO_PKG_CONFIG=1 \\\n-\t\tSYSTEM_DEPS_LIBGPIOD_SEARCH_NATIVE=\"${PWD}/../../../lib/.libs/\" \\\n-\t\tSYSTEM_DEPS_LIBGPIOD_LIB=gpiod \\\n-\t\tSYSTEM_DEPS_LIBGPIOD_INCLUDE=\"${PWD}/../../../include/\" \\\n-\t\tcargo build --features=vnext --release --lib\n-\n-if WITH_TESTS\n-command += --tests\n-endif\n-\n-if WITH_EXAMPLES\n-command += --examples\n-endif\n-\n-all:\n-\t$(command)\n-\n-clean:\n-\tcargo clean\n-\n-EXTRA_DIST = Cargo.toml\n-SUBDIRS = examples src tests\ndiff --git a/bindings/rust/libgpiod/examples/Makefile.am b/bindings/rust/libgpiod/examples/Makefile.am\ndeleted file mode 100644\nindex 48b182c5b677694b42ac1f171f68d35c90b722c8..0000000000000000000000000000000000000000\n--- a/bindings/rust/libgpiod/examples/Makefile.am\n+++ /dev/null\n@@ -1,18 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022 Linaro Ltd.\n-# SPDX-FileCopyrightText: 2022 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\n-\n-EXTRA_DIST = \\\n-\tbuffered_event_lifetimes.rs \\\n-\tfind_line_by_name.rs \\\n-\tget_chip_info.rs \\\n-\tget_line_info.rs \\\n-\tget_line_value.rs \\\n-\tget_multiple_line_values.rs \\\n-\treconfigure_input_to_output.rs \\\n-\ttoggle_line_value.rs \\\n-\ttoggle_multiple_line_values.rs \\\n-\twatch_line_info.rs \\\n-\twatch_line_rising.rs \\\n-\twatch_line_value.rs \\\n-\twatch_multiple_line_values.rs\ndiff --git a/bindings/rust/libgpiod/src/Makefile.am b/bindings/rust/libgpiod/src/Makefile.am\ndeleted file mode 100644\nindex 5892600694645a317eb1966c61563e30e7703822..0000000000000000000000000000000000000000\n--- a/bindings/rust/libgpiod/src/Makefile.am\n+++ /dev/null\n@@ -1,15 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022 Linaro Ltd.\n-# SPDX-FileCopyrightText: 2022 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\n-\n-EXTRA_DIST = \\\n-\tchip.rs \\\n-\tedge_event.rs \\\n-\tevent_buffer.rs \\\n-\tinfo_event.rs \\\n-\tlib.rs \\\n-\tline_config.rs \\\n-\tline_info.rs \\\n-\tline_request.rs \\\n-\tline_settings.rs \\\n-\trequest_config.rs\ndiff --git a/bindings/rust/libgpiod/tests/Makefile.am b/bindings/rust/libgpiod/tests/Makefile.am\ndeleted file mode 100644\nindex 8927649d07e029a042962efef152b5198225a5e4..0000000000000000000000000000000000000000\n--- a/bindings/rust/libgpiod/tests/Makefile.am\n+++ /dev/null\n@@ -1,15 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022 Linaro Ltd.\n-# SPDX-FileCopyrightText: 2022 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\n-\n-EXTRA_DIST = \\\n-\tchip.rs \\\n-\tedge_event.rs \\\n-\tinfo_event.rs \\\n-\tline_config.rs \\\n-\tline_info.rs \\\n-\tline_request.rs \\\n-\tline_settings.rs \\\n-\trequest_config.rs\n-\n-SUBDIRS = common\ndiff --git a/bindings/rust/libgpiod/tests/common/Makefile.am b/bindings/rust/libgpiod/tests/common/Makefile.am\ndeleted file mode 100644\nindex 6a32db427eccdff5ae6ff952ba2986568234dcd1..0000000000000000000000000000000000000000\n--- a/bindings/rust/libgpiod/tests/common/Makefile.am\n+++ /dev/null\n@@ -1,5 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022 Linaro Ltd.\n-# SPDX-FileCopyrightText: 2022 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\n-\n-EXTRA_DIST = config.rs mod.rs\ndiff --git a/bindings/rust/meson.build b/bindings/rust/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..4b38298a0c4dfc880a1e320f892e07a0d0e85b6f\n--- /dev/null\n+++ b/bindings/rust/meson.build\n@@ -0,0 +1,40 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+fs = import('fs')\n+libgpiod_so_dir = fs.parent(libgpiod_lib.full_path())\n+libgpiosim_a_dir = fs.parent(libgpiosim_static.full_path())\n+libgpiod_src_inc = meson.project_source_root() / 'include'\n+rust_src_dir = meson.current_source_dir()\n+rust_build_dir = meson.current_build_dir()\n+\n+# We do not want to build against the system libs when building with meson. So\n+# we specify the paths to the build directory of the C lib.\n+cargo_env = environment()\n+cargo_env.set('SYSTEM_DEPS_LIBGPIOD_NO_PKG_CONFIG', '1')\n+cargo_env.set('SYSTEM_DEPS_LIBGPIOD_SEARCH_NATIVE', libgpiod_so_dir)\n+cargo_env.set('SYSTEM_DEPS_LIBGPIOD_LIB', 'gpiod')\n+cargo_env.set('SYSTEM_DEPS_LIBGPIOD_INCLUDE', libgpiod_src_inc)\n+# gpiosim-sys links against the static gpiosim archive via a hardcoded\n+# relative path in its build.rs, override that with RUSTFLAGS so the\n+# build succeeds with an out-of-tree meson build.\n+cargo_env.set('RUSTFLAGS', '-L ' + libgpiosim_a_dir)\n+\n+# We use a stamp file as the custom_target output because cargo manages its\n+# own build artifacts inside the target directory.\n+rust_stamp = custom_target('rust-bindings',\n+ output: 'rust-bindings.stamp',\n+ command: [\n+ cargo,\n+ 'build',\n+ '--features=vnext',\n+ '--release',\n+ '--lib',\n+ '--manifest-path', rust_src_dir / 'Cargo.toml',\n+ '--target-dir', rust_build_dir / 'target',\n+ '&&', 'touch', '@OUTPUT@',\n+ ],\n+ env: cargo_env,\n+ depends: [libgpiod_lib, libgpiosim_static],\n+ build_by_default: true,\n+)\ndiff --git a/configure.ac b/configure.ac\ndeleted file mode 100644\nindex c1bae2af351003bfc4acecb70afbf64b55b3b383..0000000000000000000000000000000000000000\n--- a/configure.ac\n+++ /dev/null\n@@ -1,407 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2017-2022 Bartosz Golaszewski <brgl@bgdev.pl>\n-\n-AC_PREREQ([2.71])\n-\n-AC_INIT([libgpiod], [2.3], [], [],\n-\t[https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/])\n-AC_SUBST(EXTRA_VERSION, [-devel])\n-\n-AC_DEFINE_UNQUOTED([GPIOD_VERSION_STR],\n-\t\t\t[\"$PACKAGE_VERSION$EXTRA_VERSION\"],\n-\t\t\t[Full library version string.])\n-AC_SUBST(VERSION_STR, [$PACKAGE_VERSION$EXTRA_VERSION])\n-\n-# From the libtool manual:\n-#\n-# (...)\n-# 3. If the library source code has changed at all since the last update, then\n-# increment revision ('c:r:a' becomes 'c:r+1:a').\n-# 4. If any interfaces have been added, removed, or changed since the last\n-# update, increment current, and set revision to 0.\n-# 5. If any interfaces have been added since the last public release, then\n-# increment age.\n-# 6. If any interfaces have been removed or changed since the last public\n-# release, then set age to 0.\n-#\n-# Define the libtool version as (C.R.A):\n-# NOTE: this version only applies to the core C library.\n-AC_SUBST(ABI_VERSION, [4.1.1])\n-# Have a separate ABI version for C++ bindings:\n-AC_SUBST(ABI_CXX_VERSION, [3.0.1])\n-# ABI version for libgpiosim (we need this since it can be installed if we\n-# enable tests).\n-AC_SUBST(ABI_GPIOSIM_VERSION, [1.1.0])\n-# ... and another one for GLib bindings:\n-AC_SUBST(ABI_GLIB_VERSION, [1.0.0])\n-\n-# Core libgpiod API version.\n-AC_SUBST(API_VERSION, [2.2.0])\n-AC_DEFINE_UNQUOTED([GPIOD_API_VERSION_STR], [\"$API_VERSION\"], [Library API version string.])\n-\n-AC_CONFIG_AUX_DIR([autostuff])\n-AC_CONFIG_MACRO_DIRS([m4])\n-AM_INIT_AUTOMAKE([foreign subdir-objects])\n-\n-m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])\n-m4_pattern_forbid([^AX_],\n-\t[Unexpanded AX_ macro found. Please install GNU autoconf-archive.])\n-\n-AC_CONFIG_SRCDIR([lib])\n-AC_CONFIG_HEADERS([config.h])\n-\n-AC_DEFINE([_GNU_SOURCE], [], [We want GNU extensions])\n-\n-# Silence warning: ar: 'u' modifier ignored since 'D' is the default\n-AC_SUBST(AR_FLAGS, [cr])\n-\n-AM_PROG_AR\n-AC_PROG_CC\n-AC_PROG_CXX\n-AC_PROG_INSTALL\n-AC_PROG_EGREP\n-\n-LT_INIT\n-PKG_PROG_PKG_CONFIG([0.28])\n-\n-AC_DEFUN([ERR_NOT_FOUND],\n-\t[AC_MSG_ERROR([$1 not found (needed to build $2)], [1])])\n-\n-AC_DEFUN([FUNC_NOT_FOUND_LIB],\n-\t[ERR_NOT_FOUND([$1()], [the library])])\n-\n-AC_DEFUN([HEADER_NOT_FOUND_LIB],\n-\t[ERR_NOT_FOUND([$1 header], [the library])])\n-\n-# This is always checked (library needs this)\n-AC_CHECK_INCLUDES_DEFAULT\n-\n-AC_FUNC_MALLOC\n-AC_HEADER_STDBOOL\n-AC_CHECK_FUNC([ioctl], [], [FUNC_NOT_FOUND_LIB([ioctl])])\n-AC_CHECK_FUNC([open], [], [FUNC_NOT_FOUND_LIB([open])])\n-AC_CHECK_FUNC([close], [], [FUNC_NOT_FOUND_LIB([close])])\n-AC_CHECK_FUNC([read], [], [FUNC_NOT_FOUND_LIB([read])])\n-AC_CHECK_FUNC([ppoll], [], [FUNC_NOT_FOUND_LIB([ppoll])])\n-AC_CHECK_FUNC([realpath], [], [FUNC_NOT_FOUND_LIB([realpath])])\n-AC_CHECK_FUNC([readlink], [], [FUNC_NOT_FOUND_LIB([readlink])])\n-AC_CHECK_HEADERS([fcntl.h], [], [HEADER_NOT_FOUND_LIB([fcntl.h])])\n-AC_CHECK_HEADERS([getopt.h], [], [HEADER_NOT_FOUND_LIB([getopt.h])])\n-AC_CHECK_HEADERS([dirent.h], [], [HEADER_NOT_FOUND_LIB([dirent.h])])\n-AC_CHECK_HEADERS([poll.h], [], [HEADER_NOT_FOUND_LIB([poll.h])])\n-AC_CHECK_HEADERS([sys/sysmacros.h], [], [HEADER_NOT_FOUND_LIB([sys/sysmacros.h])])\n-AC_CHECK_HEADERS([sys/ioctl.h], [], [HEADER_NOT_FOUND_LIB([sys/ioctl.h])])\n-AC_CHECK_HEADERS([sys/param.h], [], [HEADER_NOT_FOUND_LIB([sys/param.h])])\n-AC_CHECK_HEADERS([sys/stat.h], [], [HEADER_NOT_FOUND_LIB([sys/stat.h])])\n-AC_CHECK_HEADERS([sys/types.h], [], [HEADER_NOT_FOUND_LIB([sys/types.h])])\n-AC_CHECK_HEADERS([linux/const.h], [], [HEADER_NOT_FOUND_LIB([linux/const.h])])\n-AC_CHECK_HEADERS([linux/ioctl.h], [], [HEADER_NOT_FOUND_LIB([linux/ioctl.h])])\n-AC_CHECK_HEADERS([linux/types.h], [], [HEADER_NOT_FOUND_LIB([linux/types.h])])\n-\n-AC_ARG_ENABLE([tools],\n-\t[AS_HELP_STRING([--enable-tools],[enable libgpiod command-line tools [default=no]])],\n-\t[if test \"x$enableval\" = xyes; then with_tools=true; fi],\n-\t[with_tools=false])\n-AM_CONDITIONAL([WITH_TOOLS], [test \"x$with_tools\" = xtrue])\n-\n-AC_DEFUN([FUNC_NOT_FOUND_TOOLS],\n-\t[ERR_NOT_FOUND([$1()], [tools])])\n-\n-AC_ARG_ENABLE([gpioset-interactive],\n-\t[AS_HELP_STRING([--enable-gpioset-interactive],\n-\t\t[enable gpioset interactive mode [default=no]])],\n-\t[if test \"x$enableval\" = xyes; then with_gpioset_interactive=true; fi],\n-\t[with_gpioset_interactive=false])\n-AM_CONDITIONAL([WITH_GPIOSET_INTERACTIVE],\n-\t[test \"x$with_gpioset_interactive\" = xtrue])\n-\n-if test \"x$with_tools\" = xtrue\n-then\n-\t# These are only needed to build tools\n-\tAC_CHECK_FUNC([daemon], [], [FUNC_NOT_FOUND_TOOLS([daemon])])\n-\tAC_CHECK_FUNC([asprintf], [], [FUNC_NOT_FOUND_TOOLS([asprintf])])\n-\tAC_CHECK_FUNC([scandir], [], [FUNC_NOT_FOUND_TOOLS([scandir])])\n-\tAC_CHECK_FUNC([versionsort], [], [FUNC_NOT_FOUND_TOOLS([versionsort])])\n-\tAC_CHECK_FUNC([strtoull], [], [FUNC_NOT_FOUND_TOOLS([strtoull])])\n-\tAC_CHECK_FUNC([nanosleep], [], [FUNC_NOT_FOUND_TOOLS([nanosleep])])\n-\tif test \"x$with_gpioset_interactive\" = xtrue\n-\tthen\n-\t\tPKG_CHECK_MODULES([LIBEDIT], [libedit >= 3.1])\n-\tfi\n-fi\n-\n-AC_ARG_ENABLE([tests],\n-\t[AS_HELP_STRING([--enable-tests],[enable libgpiod tests [default=no]])],\n-\t[if test \"x$enableval\" = xyes; then with_tests=true; fi],\n-\t[with_tests=false])\n-AM_CONDITIONAL([WITH_TESTS], [test \"x$with_tests\" = xtrue])\n-\n-AC_ARG_ENABLE([profiling],\n-\t[AS_HELP_STRING([--enable-profiling],\n-\t\t[enable gcov profiling on the core library and tests [default=no]])],\n-\t[if test \"x$enableval\" = xyes; then with_profiling=true; fi],\n-\t[with_profiling=false])\n-if test \"x$with_profiling\" = xtrue\n-then\n-\tAC_SUBST(PROFILING_CFLAGS, [\"-fprofile-arcs -ftest-coverage\"])\n-\tAC_SUBST(PROFILING_LDFLAGS, [\"-lgcov\"])\n-fi\n-\n-AC_DEFUN([FUNC_NOT_FOUND_TESTS],\n-\t[ERR_NOT_FOUND([$1()], [tests])])\n-\n-AC_DEFUN([HEADER_NOT_FOUND_TESTS],\n-\t[ERR_NOT_FOUND([$1 header], [the test suite])])\n-\n-if test \"x$with_tests\" = xtrue\n-then\n-\t# For libgpiosim\n-\tPKG_CHECK_MODULES([KMOD], [libkmod >= 18])\n-\tPKG_CHECK_MODULES([MOUNT], [mount >= 2.33.1])\n-\n-\t# For core library tests\n-\tPKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.74])\n-\tPKG_CHECK_MODULES([GIO], [gio-2.0 >= 2.74])\n-\n-\tAC_CHECK_FUNC([atexit], [], [FUNC_NOT_FOUND_TESTS([atexit])])\n-\tAC_CHECK_FUNC([asprintf], [], [FUNC_NOT_FOUND_TESTS([asprintf])])\n-\tAC_CHECK_FUNC([prctl], [], [FUNC_NOT_FOUND_TESTS([prctl])])\n-\tAC_CHECK_FUNC([unlink], [], [FUNC_NOT_FOUND_TESTS([unlink])])\n-\tAC_CHECK_FUNC([unlinkat], [], [FUNC_NOT_FOUND_TESTS([unlinkat])])\n-\tAC_CHECK_FUNC([openat], [], [FUNC_NOT_FOUND_TESTS([openat])])\n-\tAC_CHECK_FUNC([mkdirat], [], [FUNC_NOT_FOUND_TESTS([mkdirat])])\n-\tAC_CHECK_FUNC([write], [], [FUNC_NOT_FOUND_TESTS([write])])\n-\tAC_CHECK_FUNC([twalk], [], [FUNC_NOT_FOUND_TESTS([twalk])])\n-\tAC_CHECK_FUNC([tsearch], [], [FUNC_NOT_FOUND_TESTS([tsearch])])\n-\tAC_CHECK_FUNC([tdestroy], [], [FUNC_NOT_FOUND_TESTS([tdestroy])])\n-\tAC_CHECK_FUNC([tdelete], [], [FUNC_NOT_FOUND_TESTS([tdelete])])\n-\tAC_CHECK_FUNC([setrlimit], [], [FUNC_NOT_FOUND_TESTS([setrlimit])])\n-\tAC_CHECK_HEADERS([sys/utsname.h], [], [FUNC_NOT_FOUND_TESTS([sys/utsname.h])])\n-\tAC_CHECK_HEADERS([sys/mount.h], [], [FUNC_NOT_FOUND_TESTS([sys/mount.h])])\n-\tAC_CHECK_HEADERS([sys/prctl.h], [], [FUNC_NOT_FOUND_TESTS([sys/prctl.h])])\n-\tAC_CHECK_HEADERS([sys/random.h], [], [FUNC_NOT_FOUND_TESTS([sys/random.h])])\n-\tAC_CHECK_HEADERS([linux/version.h], [], [FUNC_NOT_FOUND_TESTS([linux/version.h])])\n-\tAC_CHECK_HEADERS([pthread.h], [], [FUNC_NOT_FOUND_TESTS([pthread.h])])\n-\tAC_CHECK_LIB(pthread, pthread_mutex_lock, [], ERR_NOT_FOUND([pthread library], [tests]))\n-\n-\tif test \"x$with_tools\" = xtrue\n-\tthen\n-\t\tAC_CHECK_PROG([has_shunit2], [shunit2], [true], [false])\n-\t\tif test \"x$has_shunit2\" = \"xfalse\"\n-\t\tthen\n-\t\t\tAC_MSG_NOTICE([shunit2 not found - gpio-tools tests cannot be run])\n-\t\tfi\n-\tfi\n-fi\n-\n-AC_ARG_ENABLE([examples],\n-\t[AS_HELP_STRING([--enable-examples], [enable building code examples[default=no]])],\n-\t[if test \"x$enableval\" = xyes; then with_examples=true; fi],\n-\t[with_examples=false])\n-AM_CONDITIONAL([WITH_EXAMPLES], [test \"x$with_examples\" = xtrue])\n-\n-AC_ARG_ENABLE([bindings-cxx],\n-\t[AS_HELP_STRING([--enable-bindings-cxx],[enable C++ bindings [default=no]])],\n-\t[if test \"x$enableval\" = xyes; then with_bindings_cxx=true; fi],\n-\t[with_bindings_cxx=false])\n-AM_CONDITIONAL([WITH_BINDINGS_CXX], [test \"x$with_bindings_cxx\" = xtrue])\n-\n-AC_DEFUN([HEADER_NOT_FOUND_CXX],\n-\t[ERR_NOT_FOUND([$1 header], [C++ bindings])])\n-\n-if test \"x$with_bindings_cxx\" = xtrue\n-then\n-\tLT_LANG([C++])\n-\t# This needs autoconf-archive\n-\tAX_CXX_COMPILE_STDCXX_17([ext], [mandatory])\n-\n-\tif test \"x$with_tests\" = xtrue\n-\tthen\n-\t\tPKG_CHECK_MODULES([CATCH2], [catch2-with-main >= 3.0],, [\n-\t\t\tAC_LANG_PUSH([C++])\n-\t\t\tAC_CHECK_HEADERS([catch2/catch_all.hpp], [],\n-\t\t\t\t\t [HEADER_NOT_FOUND_CXX([catch2/catch_all.hpp])])\n-\t\t\tAC_LANG_POP([C++])\n-\t\t])\n-\tfi\n-fi\n-\n-AC_ARG_ENABLE([bindings-python],\n-\t[AS_HELP_STRING([--enable-bindings-python],[enable python3 bindings [default=no]])],\n-\t[if test \"x$enableval\" = xyes; then with_bindings_python=true; fi],\n-\t[with_bindings_python=false])\n-AM_CONDITIONAL([WITH_BINDINGS_PYTHON], [test \"x$with_bindings_python\" = xtrue])\n-\n-if test \"x$with_bindings_python\" = xtrue\n-then\n-\tAM_PATH_PYTHON([3.10], [],\n-\t\t[AC_MSG_ERROR([python3 not found - needed for python bindings])])\n-fi\n-\n-AC_ARG_ENABLE([bindings-rust],\n-\t[AS_HELP_STRING([--enable-bindings-rust],[enable rust bindings [default=no]])],\n-\t[if test \"x$enableval\" = xyes; then with_bindings_rust=true; fi],\n-\t[with_bindings_rust=false])\n-AM_CONDITIONAL([WITH_BINDINGS_RUST], [test \"x$with_bindings_rust\" = xtrue])\n-\n-if test \"x$with_bindings_rust\" = xtrue\n-then\n-\tAC_CHECK_PROG([has_cargo], [cargo], [true], [false])\n-\tif test \"x$has_cargo\" = xfalse\n-\tthen\n-\t\tAC_MSG_ERROR([cargo not found - needed for rust bindings])\n-\tfi\n-fi\n-\n-AC_ARG_ENABLE([dbus],\n-\t[AS_HELP_STRING([--enable-dbus], [build dbus daemon [default=no]])],\n-\t[if test \"x$enableval\" == xyes; then with_dbus=true; fi],\n-\t[with_dbus=false])\n-AM_CONDITIONAL([WITH_DBUS], [test \"x$with_dbus\" = xtrue])\n-\n-AC_ARG_ENABLE([bindings-glib],\n-\t[AS_HELP_STRING([--enable-bindings-glib],[enable GLib 2.0 bindings [default=no]])],\n-\t[if test \"x$enableval\" = xyes; then with_bindings_glib=true; fi],\n-\t[with_bindings_glib=false])\n-\n-AC_DEFUN([FUNC_NOT_FOUND_DBUS],\n-\t[ERR_NOT_FOUND([$1()], [dbus daemon])])\n-\n-if test \"x$with_dbus\" = xtrue\n-then\n-\tAC_CHECK_FUNC([daemon], [], [FUNC_NOT_FOUND_DBUS([daemon])])\n-\tAC_CHECK_FUNC([strverscmp], [], [FUNC_NOT_FOUND_DBUS([strverscmp])])\n-\tPKG_CHECK_MODULES([GUDEV], [gudev-1.0 >= 230])\n-\tAC_CHECK_PROG([has_gdbus_codegen], [gdbus-codegen], [true], [false])\n-\tif test \"x$has_gdbus_codegen\" = xfalse\n-\tthen\n-\t\tAC_MSG_ERROR([gdbus-codegen not found - needed to build dbus daemon])\n-\tfi\n-\n-\t# Imply GLib bindings for D-Bus\n-\twith_bindings_glib=true\n-fi\n-\n-AM_CONDITIONAL([WITH_BINDINGS_GLIB], [test \"x$with_bindings_glib\" = xtrue])\n-\n-AC_DEFUN([GLIB_MKENUMS_NOT_FOUND],\n-\t [AC_MSG_ERROR([glib-mkenums not found - needed to build GLib bindings])])\n-\n-if test \"x$with_bindings_glib\" = xtrue\n-then\n-\tPKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.80])\n-\tPKG_CHECK_MODULES([GOBJECT], [gobject-2.0 >= 2.80])\n-\tPKG_CHECK_MODULES([GIO], [gio-2.0 >= 2.80])\n-\tPKG_CHECK_MODULES([GIO_UNIX], [gio-unix-2.0 >= 2.80])\n-\tPKG_CHECK_VAR([GLIB_MKENUMS], [glib-2.0], [glib_mkenums], [], GLIB_MKENUMS_NOT_FOUND)\n-\tAC_CHECK_PROG([has_glib_mkenums], [glib-mkenums], [true], [false])\n-\tif test \"x$has_glib_mkenums\" == xfalse\n-\tthen\n-\t\tGLIB_MKENUMS_NOT_FOUND\n-\tfi\n-\n-\tAC_CHECK_PROG([has_gi_docgen], [gi-docgen], [true], [false])\n-\tif test \"x$has_gi_docgen\" = xfalse\n-\tthen\n-\t\tAC_MSG_NOTICE([gi-docgen not found - GLib documentation cannot be generated])\n-\tfi\n-fi\n-AM_CONDITIONAL([HAS_GI_DOCGEN], [test \"x$has_gi_docgen\" = xtrue])\n-AM_COND_IF([HAS_GI_DOCGEN], [AC_CONFIG_FILES([bindings/glib/gi-docgen.toml])])\n-\n-# GObject-introspection\n-found_introspection=no\n-m4_ifdef([GOBJECT_INTROSPECTION_CHECK],\n-\t[GOBJECT_INTROSPECTION_CHECK([0.6.2])],\n-\t[AM_CONDITIONAL(HAVE_INTROSPECTION, test \"x$found_introspection\" = \"xyes\")])\n-\n-AC_ARG_ENABLE([systemd],\n-\t[AS_HELP_STRING([--enable-systemd], [enable systemd support [default=no]])],\n-\t[if test \"x$enableval\" == xyes; then with_systemd=true; fi],\n-\t[with_systemd=false])\n-AM_CONDITIONAL([WITH_SYSTEMD], [test \"x$with_systemd\" = xtrue])\n-\n-if test \"x$with_systemd\" = xtrue\n-then\n-\tPKG_CHECK_VAR([systemdsystemunitdir], [systemd], [systemdsystemunitdir], [],\n-\t\t AC_MSG_ERROR([systemdsystemunitdir not found - needed to enable systemd support]))\n-\tAC_CONFIG_FILES([dbus/data/gpio-manager.service])\n-fi\n-\n-if test \"x$cross_compiling\" = xno\n-then\n-\tAC_CHECK_PROG([has_help2man], [help2man], [true], [false])\n-fi\n-AM_CONDITIONAL([WITH_MANPAGES], [test \"x$has_help2man\" = xtrue])\n-if test \"x$has_help2man\" = xfalse\n-then\n-\tAC_MSG_NOTICE([help2man not found - man pages and documentation cannot be generated])\n-fi\n-\n-AC_DEFUN([DOC_PROG_NOT_FOUND], [AC_MSG_NOTICE([$1 not found - documentation cannot be generated])])\n-AC_CHECK_PROG([has_doxygen], [doxygen], [true], [false])\n-AC_CHECK_PROG([has_sphinx], [sphinx-build], [true], [false])\n-AC_CHECK_PROG([has_pandoc], [pandoc], [true], [false])\n-AM_CONDITIONAL([WITH_DOCS], [test \"x$has_doxygen\" = xtrue && test \"x$has_sphinx\" = xtrue && test \"x$has_pandoc\" = xtrue && test \"x$has_help2man\" = xtrue])\n-if test \"x$has_doxygen\" = xfalse\n-then\n-\tDOC_PROG_NOT_FOUND([\"doxygen\"])\n-fi\n-if test \"x$has_sphinx\" = xfalse\n-then\n-\tDOC_PROG_NOT_FOUND([\"sphinx-build\"])\n-fi\n-if test \"x$has_pandoc\" = xfalse\n-then\n-\tDOC_PROG_NOT_FOUND([\"pandoc\"])\n-fi\n-\n-AC_CONFIG_FILES([Makefile\n-\t\t include/Makefile\n-\t\t lib/Makefile\n-\t\t lib/libgpiod.pc\n-\t\t contrib/Makefile\n-\t\t docs/Makefile\n-\t\t examples/Makefile\n-\t\t tools/Makefile\n-\t\t tests/Makefile\n-\t\t tests/gpiosim/Makefile\n-\t\t tests/gpiosim-glib/Makefile\n-\t\t tests/harness/Makefile\n-\t\t tests/scripts/Makefile\n-\t\t bindings/cxx/libgpiodcxx.pc\n-\t\t bindings/Makefile\n-\t\t bindings/cxx/Makefile\n-\t\t bindings/cxx/gpiodcxx/Makefile\n-\t\t bindings/cxx/examples/Makefile\n-\t\t bindings/cxx/tests/Makefile\n-\t\t bindings/glib/gpiod-glib.pc\n-\t\t bindings/glib/Makefile\n-\t\t bindings/glib/examples/Makefile\n-\t\t bindings/glib/tests/Makefile\n-\t\t bindings/python/Makefile\n-\t\t bindings/python/gpiod/Makefile\n-\t\t bindings/python/gpiod/ext/Makefile\n-\t\t bindings/python/examples/Makefile\n-\t\t bindings/python/tests/Makefile\n-\t\t bindings/python/tests/gpiosim/Makefile\n-\t\t bindings/python/tests/system/Makefile\n-\t\t bindings/rust/libgpiod-sys/src/Makefile\n-\t\t bindings/rust/libgpiod-sys/Makefile\n-\t\t bindings/rust/libgpiod/src/Makefile\n-\t\t bindings/rust/libgpiod/tests/common/Makefile\n-\t\t bindings/rust/libgpiod/tests/Makefile\n-\t\t bindings/rust/libgpiod/Makefile\n-\t\t bindings/rust/libgpiod/examples/Makefile\n-\t\t bindings/rust/Makefile\n-\t\t bindings/rust/gpiosim-sys/src/Makefile\n-\t\t bindings/rust/gpiosim-sys/Makefile\n-\t\t dbus/Makefile\n-\t\t dbus/client/Makefile\n-\t\t dbus/data/Makefile\n-\t\t dbus/lib/Makefile\n-\t\t dbus/manager/Makefile\n-\t\t dbus/tests/Makefile\n-\t\t man/Makefile])\n-\n-AC_OUTPUT\ndiff --git a/contrib/Makefile.am b/contrib/Makefile.am\ndeleted file mode 100644\nindex 1b50e86ba89164f72623bb70bb0c2747185ca7b8..0000000000000000000000000000000000000000\n--- a/contrib/Makefile.am\n+++ /dev/null\n@@ -1,4 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2023 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\n-\n-EXTRA_DIST = Android.bp\ndiff --git a/dbus/Makefile.am b/dbus/Makefile.am\ndeleted file mode 100644\nindex 7868a96c2bed9fe92d36224017028209b887d25f..0000000000000000000000000000000000000000\n--- a/dbus/Makefile.am\n+++ /dev/null\n@@ -1,10 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022-2023 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\n-\n-SUBDIRS = data lib manager client\n-\n-if WITH_TESTS\n-\n-SUBDIRS += tests\n-\n-endif\ndiff --git a/dbus/client/Makefile.am b/dbus/client/Makefile.am\ndeleted file mode 100644\nindex 519e37738167f4c764a567a4c71ca432cd1ee9da..0000000000000000000000000000000000000000\n--- a/dbus/client/Makefile.am\n+++ /dev/null\n@@ -1,31 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022-2024 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\n-\n-AM_CFLAGS = -include $(top_builddir)/config.h\n-AM_CFLAGS += -I$(top_builddir)/dbus/lib/ -I$(top_srcdir)/dbus/lib/\n-AM_CFLAGS += -Wall -Wextra -g\n-AM_CFLAGS += $(GLIB_CFLAGS) $(GIO_CFLAGS) $(GIO_UNIX_CFLAGS)\n-AM_CFLAGS += -DG_LOG_DOMAIN=\\\"gpiocli\\\"\n-AM_LDFLAGS = $(GLIB_LIBS) $(GIO_LIBS) $(GIO_UNIX_LIBS)\n-LDADD = $(top_builddir)/dbus/lib/libgpiodbus.la\n-\n-bin_PROGRAMS = gpiocli\n-\n-gpiocli_SOURCES = \\\n-\tcommon.c \\\n-\tcommon.h \\\n-\tdetect.c \\\n-\tfind.c \\\n-\tget.c \\\n-\tgpiocli.c \\\n-\tinfo.c \\\n-\tmonitor.c \\\n-\tnotify.c \\\n-\treconfigure.c \\\n-\trelease.c \\\n-\trequest.c \\\n-\trequests.c \\\n-\tset.c \\\n-\twait.c\n-\n-dist_noinst_SCRIPTS = gpiocli-test.bash\ndiff --git a/dbus/client/gpiocli-test.bash b/dbus/client/gpiocli-test.bash\nindex 1d2337d0a13e2cb4868d91249690a70d6b2d25b5..5160f57ee33a0585b847f1dacc530e2be4f1f625 100755\n--- a/dbus/client/gpiocli-test.bash\n+++ b/dbus/client/gpiocli-test.bash\n@@ -7,8 +7,6 @@\n # is already running.\n #\n \n-SOURCE_DIR=\"$(dirname \"${BASH_SOURCE[0]}\")\"\n-\n wait_for_sim() {\n \tCOUNTER=100\n \ndiff --git a/dbus/client/meson.build b/dbus/client/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..925e7f6a468795176fa9d6d1e1390f068481c920\n--- /dev/null\n+++ b/dbus/client/meson.build\n@@ -0,0 +1,30 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+gpiocli_exe = executable('gpiocli',\n+ sources: [\n+ 'common.c',\n+ 'common.h',\n+ 'detect.c',\n+ 'find.c',\n+ 'get.c',\n+ 'gpiocli.c',\n+ 'info.c',\n+ 'monitor.c',\n+ 'notify.c',\n+ 'reconfigure.c',\n+ 'release.c',\n+ 'request.c',\n+ 'requests.c',\n+ 'set.c',\n+ 'wait.c',\n+ ],\n+ c_args: ['-DG_LOG_DOMAIN=\"gpiocli\"'],\n+ dependencies: [\n+ libgpiodbus_dep,\n+ glib_dep,\n+ gio_dep,\n+ gio_unix_dep,\n+ ],\n+ install: true,\n+)\ndiff --git a/dbus/data/Makefile.am b/dbus/data/Makefile.am\ndeleted file mode 100644\nindex 5c0ad9304b3249e34936a40f970cf50e34946abf..0000000000000000000000000000000000000000\n--- a/dbus/data/Makefile.am\n+++ /dev/null\n@@ -1,14 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022-2023 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\n-\n-dbusdir = $(sysconfdir)/dbus-1/system.d/\n-dist_dbus_DATA = io.gpiod1.conf\n-\n-if WITH_SYSTEMD\n-\n-dist_systemdsystemunit_DATA = gpio-manager.service\n-\n-udevdir = $(libdir)/udev/rules.d/\n-dist_udev_DATA = 90-gpio.rules\n-\n-endif\ndiff --git a/dbus/data/meson.build b/dbus/data/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..8af178bb98c12f7d7b25461c445779b1e29dad7e\n--- /dev/null\n+++ b/dbus/data/meson.build\n@@ -0,0 +1,24 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+install_data('io.gpiod1.conf',\n+ install_dir: get_option('sysconfdir') / 'dbus-1' / 'system.d',\n+)\n+\n+if opt_systemd.allowed() and systemd_dep.found()\n+ service_conf = configuration_data()\n+ service_conf.set('prefix', get_option('prefix'))\n+\n+ gpio_manager_service = configure_file(\n+ input: 'gpio-manager.service.in',\n+ output: 'gpio-manager.service',\n+ configuration: service_conf,\n+ )\n+\n+ install_data(gpio_manager_service,\n+ install_dir: systemd_unit_dir,\n+ )\n+ install_data('90-gpio.rules',\n+ install_dir: get_option('libdir') / 'udev' / 'rules.d',\n+ )\n+endif\ndiff --git a/dbus/lib/Makefile.am b/dbus/lib/Makefile.am\ndeleted file mode 100644\nindex bb452d663869167bf1189074c2fb7e92298714f2..0000000000000000000000000000000000000000\n--- a/dbus/lib/Makefile.am\n+++ /dev/null\n@@ -1,29 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022-2023 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\n-\n-libgpiodbus_la_CFLAGS = -include $(top_builddir)/config.h -Wall -Wextra -g\n-libgpiodbus_la_CFLAGS += $(GLIB_CFLAGS) $(GIO_CFLAGS)\n-libgpiodbus_la_CFLAGS += -DG_LOG_DOMAIN=\\\"gpiodbus\\\"\n-libgpiodbus_la_LDFLAGS = -version-info 1\n-\n-generated-gpiodbus.h generated-gpiodbus.c: io.gpiod1.xml\n-\t$(AM_V_GEN)gdbus-codegen \\\n-\t\t--interface-prefix io.gpiod1 \\\n-\t\t--c-namespace Gpiodbus \\\n-\t\t--generate-c-code generated-gpiodbus \\\n-\t\t--c-generate-object-manager \\\n-\t\t--c-generate-autocleanup=all \\\n-\t\t--glib-min-required 2.74.0 \\\n-\t\t$(srcdir)/io.gpiod1.xml\n-\n-lib_LTLIBRARIES = libgpiodbus.la\n-libgpiodbus_la_SOURCES = \\\n-\tgenerated-gpiodbus.c \\\n-\tgenerated-gpiodbus.h \\\n-\tgpiodbus.h\n-\n-BUILT_SOURCES = generated-gpiodbus.c generated-gpiodbus.h\n-CLEANFILES = $(BUILT_SOURCES)\n-\n-dbusdir = $(datadir)/dbus-1/interfaces\n-dist_dbus_DATA = io.gpiod1.xml\ndiff --git a/dbus/lib/meson.build b/dbus/lib/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..9acf5e1f1d4cb9c7c30dbfbadf49755c26abb00e\n--- /dev/null\n+++ b/dbus/lib/meson.build\n@@ -0,0 +1,35 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+gnome = import('gnome')\n+\n+generated_dbus = gnome.gdbus_codegen('generated-gpiodbus',\n+ sources: 'io.gpiod1.xml',\n+ interface_prefix: 'io.gpiod1',\n+ namespace: 'Gpiodbus',\n+ object_manager: true,\n+ autocleanup: 'all',\n+ extra_args: ['--glib-min-required', '2.74.0'],\n+)\n+\n+dbus_lib_inc = include_directories('.', '../../include')\n+\n+libgpiodbus_both = both_libraries('gpiodbus',\n+ sources: ['gpiodbus.h', generated_dbus],\n+ include_directories: dbus_lib_inc,\n+ c_args: ['-DG_LOG_DOMAIN=\"gpiodbus\"'],\n+ dependencies: [glib_dep, gio_dep],\n+ soversion: 1,\n+ install: true,\n+)\n+libgpiodbus_lib = libgpiodbus_both.get_shared_lib()\n+\n+install_data('io.gpiod1.xml',\n+ install_dir: get_option('datadir') / 'dbus-1' / 'interfaces',\n+)\n+\n+libgpiodbus_dep = declare_dependency(\n+ link_with: libgpiodbus_lib,\n+ include_directories: dbus_lib_inc,\n+ sources: generated_dbus,\n+)\ndiff --git a/dbus/manager/Makefile.am b/dbus/manager/Makefile.am\ndeleted file mode 100644\nindex d1cef8e144c2083163f65367fe4a4959d4d2e5a1..0000000000000000000000000000000000000000\n--- a/dbus/manager/Makefile.am\n+++ /dev/null\n@@ -1,21 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022-2023 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\n-\n-AM_CFLAGS = -I$(top_srcdir)/bindings/glib/ -include $(top_builddir)/config.h\n-AM_CFLAGS += -Wall -Wextra -g\n-AM_CFLAGS += -I$(top_builddir)/dbus/lib/ -I$(top_srcdir)/dbus/lib/\n-AM_CFLAGS += $(GLIB_CFLAGS) $(GIO_CFLAGS) $(GIO_UNIX_CFLAGS) $(GUDEV_CFLAGS)\n-AM_CFLAGS += -DG_LOG_DOMAIN=\\\"gpio-manager\\\"\n-AM_CFLAGS += $(PROFILING_CFLAGS)\n-AM_LDFLAGS = $(GLIB_LIBS) $(GIO_LIBS) $(GIO_UNIX_LIBS) $(GUDEV_LIBS)\n-AM_LDFLAGS += $(PROFILING_LDFLAGS)\n-LDADD = $(top_builddir)/bindings/glib/libgpiod-glib.la\n-LDADD += $(top_builddir)/dbus/lib/libgpiodbus.la\n-\n-bin_PROGRAMS = gpio-manager\n-gpio_manager_SOURCES = \\\n-\tdaemon.c \\\n-\tdaemon.h \\\n-\thelpers.c \\\n-\thelpers.h \\\n-\tgpio-manager.c\ndiff --git a/dbus/manager/meson.build b/dbus/manager/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..1016a87228f1819cc8a626f1fd4c6e040e501356\n--- /dev/null\n+++ b/dbus/manager/meson.build\n@@ -0,0 +1,26 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+gpio_manager_exe = executable('gpio-manager',\n+ sources: [\n+ 'daemon.c',\n+ 'daemon.h',\n+ 'helpers.c',\n+ 'helpers.h',\n+ 'gpio-manager.c',\n+ ],\n+ include_directories: [\n+ libgpiod_inc,\n+ include_directories('../../bindings/glib'),\n+ ],\n+ c_args: ['-DG_LOG_DOMAIN=\"gpio-manager\"'],\n+ dependencies: [\n+ libgpiod_glib_dep,\n+ libgpiodbus_dep,\n+ glib_dep,\n+ gio_dep,\n+ gio_unix_dep,\n+ gudev_dep,\n+ ],\n+ install: true,\n+)\ndiff --git a/dbus/meson.build b/dbus/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..2df5906298c4edd20377d5f90d62189f46d17eb9\n--- /dev/null\n+++ b/dbus/meson.build\n@@ -0,0 +1,11 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+subdir('data')\n+subdir('lib')\n+subdir('manager')\n+subdir('client')\n+\n+if opt_tests.allowed()\n+ subdir('tests')\n+endif\ndiff --git a/dbus/tests/Makefile.am b/dbus/tests/Makefile.am\ndeleted file mode 100644\nindex ec4e26c8185b71d7315d252e1cd43181fd69fb37..0000000000000000000000000000000000000000\n--- a/dbus/tests/Makefile.am\n+++ /dev/null\n@@ -1,25 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022-2023 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\n-\n-noinst_PROGRAMS = gpiodbus-test\n-gpiodbus_test_SOURCES = \\\n-\tdaemon-process.c \\\n-\tdaemon-process.h \\\n-\thelpers.c \\\n-\thelpers.h \\\n-\ttests-chip.c \\\n-\ttests-line.c \\\n-\ttests-request.c\n-\n-AM_CFLAGS = -I$(top_srcdir)/tests/gpiosim-glib/\n-AM_CFLAGS += -I$(top_builddir)/dbus/lib/ -I$(top_srcdir)/dbus/lib/\n-AM_CFLAGS += -I$(top_srcdir)/tests/harness/\n-AM_CFLAGS += -include $(top_builddir)/config.h\n-AM_CFLAGS += -Wall -Wextra -g -std=gnu89\n-AM_CFLAGS += $(GLIB_CFLAGS) $(GIO_CFLAGS)\n-AM_CFLAGS += -DG_LOG_DOMAIN=\\\"gpiodbus-test\\\"\n-LDADD = $(top_builddir)/tests/gpiosim/libgpiosim.la\n-LDADD += $(top_builddir)/tests/gpiosim-glib/libgpiosim-glib.la\n-LDADD += $(top_builddir)/tests/harness/libgpiod-test-harness.la\n-LDADD += $(top_builddir)/dbus/lib/libgpiodbus.la\n-LDADD += $(GLIB_LIBS) $(GIO_LIBS)\ndiff --git a/dbus/tests/meson.build b/dbus/tests/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..4bb930f7f9f08c13ed4020ace482a828f2c29387\n--- /dev/null\n+++ b/dbus/tests/meson.build\n@@ -0,0 +1,25 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+executable('gpiodbus-test',\n+ sources: [\n+ 'daemon-process.c',\n+ 'daemon-process.h',\n+ 'helpers.c',\n+ 'helpers.h',\n+ 'tests-chip.c',\n+ 'tests-line.c',\n+ 'tests-request.c',\n+ ],\n+ include_directories: [\n+ include_directories('../../tests/gpiosim-glib'),\n+ include_directories('../../tests/harness'),\n+ ],\n+ c_args: ['-DG_LOG_DOMAIN=\"gpiodbus-test\"'],\n+ dependencies: [\n+ libgpiodbus_dep,\n+ glib_test_dep,\n+ gio_test_dep,\n+ ],\n+ link_with: [libgpiosim_lib, libgpiosim_glib_lib, libgpiod_test_harness_lib],\n+)\ndiff --git a/docs/Makefile.am b/docs/Makefile.am\ndeleted file mode 100644\nindex a03fdb9482010bfb845b911b904355b45b56f5f0..0000000000000000000000000000000000000000\n--- a/docs/Makefile.am\n+++ /dev/null\n@@ -1,65 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2024-2025 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\n-\n-DOCS_DEPS = \\\n-\tbindings.rst \\\n-\tbuilding.rst \\\n-\tconf.py \\\n-\tcontributing.rst \\\n-\tcore_api.rst \\\n-\tcore_chip_info.rst \\\n-\tcore_chips.rst \\\n-\tcore_edge_event.rst \\\n-\tcore_line_config.rst \\\n-\tcore_line_defs.rst \\\n-\tcore_line_info.rst \\\n-\tcore_line_request.rst \\\n-\tcore_line_settings.rst \\\n-\tcore_line_watch.rst \\\n-\tcore_misc.rst \\\n-\tcore_request_config.rst \\\n-\tcpp_api.rst \\\n-\tcpp_chip_info.rst \\\n-\tcpp_chip.rst \\\n-\tcpp_edge_event_buffer.rst \\\n-\tcpp_edge_event.rst \\\n-\tcpp_exceptions.rst \\\n-\tcpp_info_event.rst \\\n-\tcpp_line_config.rst \\\n-\tcpp_line_info.rst \\\n-\tcpp_line_request.rst \\\n-\tcpp_line.rst \\\n-\tcpp_line_settings.rst \\\n-\tcpp_misc.rst \\\n-\tcpp_request_config.rst \\\n-\tdbus.rst \\\n-\tdbus_api.rst \\\n-\tDoxyfile \\\n-\tindex.rst \\\n-\tglib_api.rst \\\n-\tgpio_tools.rst \\\n-\tgpiocli_top.rst \\\n-\tpython_api.rst \\\n-\tpython_chip_info.rst \\\n-\tpython_chip.rst \\\n-\tpython_edge_event.rst \\\n-\tpython_exceptions.rst \\\n-\tpython_info_event.rst \\\n-\tpython_line_info.rst \\\n-\tpython_line_request.rst \\\n-\tpython_line.rst \\\n-\tpython_line_settings.rst \\\n-\tpython_misc.rst \\\n-\trust_api.rst \\\n-\ttesting.rst\n-\n-docs: $(DOCS_DEPS)\n-\tpushd ..; sphinx-build ./docs/ ./docs/sphinx-output; popd\n-\n-.PHONY: docs\n-\n-clean-local:\n-\trm -rf sphinx-output\n-\trm -rf doxygen-output\n-\n-EXTRA_DIST = $(DOCS_DEPS) requirements.txt\ndiff --git a/examples/Makefile.am b/examples/Makefile.am\ndeleted file mode 100644\nindex ed01dbc73a104d998493e7845079725ca0117e52..0000000000000000000000000000000000000000\n--- a/examples/Makefile.am\n+++ /dev/null\n@@ -1,22 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2023 Kent Gibson <warthog618@gmail.com>\n-\n-AM_CFLAGS = -I$(top_srcdir)/include/ -include $(top_builddir)/config.h\n-AM_CFLAGS += -Wall -Wextra -g -std=gnu89\n-\n-LDADD = $(top_builddir)/lib/libgpiod.la\n-\n-noinst_PROGRAMS = \\\n-\tasync_watch_line_value \\\n-\tfind_line_by_name \\\n-\tget_chip_info \\\n-\tget_line_info \\\n-\tget_line_value \\\n-\tget_multiple_line_values \\\n-\treconfigure_input_to_output \\\n-\ttoggle_line_value \\\n-\ttoggle_multiple_line_values \\\n-\twatch_line_info \\\n-\twatch_line_rising \\\n-\twatch_line_value \\\n-\twatch_multiple_line_values\ndiff --git a/examples/meson.build b/examples/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..257a439aada49a560936197b5c1d69fba7cffa9f\n--- /dev/null\n+++ b/examples/meson.build\n@@ -0,0 +1,25 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+c_examples = [\n+ 'async_watch_line_value',\n+ 'find_line_by_name',\n+ 'get_chip_info',\n+ 'get_line_info',\n+ 'get_line_value',\n+ 'get_multiple_line_values',\n+ 'reconfigure_input_to_output',\n+ 'toggle_line_value',\n+ 'toggle_multiple_line_values',\n+ 'watch_line_info',\n+ 'watch_line_rising',\n+ 'watch_line_value',\n+ 'watch_multiple_line_values',\n+]\n+\n+foreach ex : c_examples\n+ executable(ex,\n+ sources: [ex + '.c'],\n+ dependencies: [libgpiod_dep],\n+ )\n+endforeach\ndiff --git a/include/Makefile.am b/include/Makefile.am\ndeleted file mode 100644\nindex 7f986ec61169ba60284f33fe5eb2325d05459d22..0000000000000000000000000000000000000000\n--- a/include/Makefile.am\n+++ /dev/null\n@@ -1,4 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2017-2021 Bartosz Golaszewski <bartekgola@gmail.com>\n-\n-include_HEADERS = gpiod.h\ndiff --git a/include/meson.build b/include/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..c390581244b9479abd32ca0d080d48a5223fea5d\n--- /dev/null\n+++ b/include/meson.build\n@@ -0,0 +1,4 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+install_headers('gpiod.h')\ndiff --git a/lib/Makefile.am b/lib/Makefile.am\ndeleted file mode 100644\nindex 8915e783283a1f7e12471b3af3adc8cf971e060b..0000000000000000000000000000000000000000\n--- a/lib/Makefile.am\n+++ /dev/null\n@@ -1,28 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2017-2021 Bartosz Golaszewski <bartekgola@gmail.com>\n-\n-lib_LTLIBRARIES = libgpiod.la\n-libgpiod_la_SOURCES = \\\n-\tchip.c \\\n-\tchip-info.c \\\n-\tedge-event.c \\\n-\tinfo-event.c \\\n-\tinternal.h \\\n-\tinternal.c \\\n-\tline-config.c \\\n-\tline-info.c \\\n-\tline-request.c \\\n-\tline-settings.c \\\n-\tmisc.c \\\n-\trequest-config.c \\\n-\tuapi/gpio.h\n-\n-libgpiod_la_CFLAGS = -Wall -Wextra -g -std=gnu89\n-libgpiod_la_CFLAGS += -fvisibility=hidden -I$(top_srcdir)/include/\n-libgpiod_la_CFLAGS += -include $(top_builddir)/config.h\n-libgpiod_la_CFLAGS += $(PROFILING_CFLAGS)\n-libgpiod_la_LDFLAGS = -version-info $(subst .,:,$(ABI_VERSION))\n-libgpiod_la_LDFLAGS += $(PROFILING_LDFLAGS)\n-\n-pkgconfigdir = $(libdir)/pkgconfig\n-pkgconfig_DATA = libgpiod.pc\ndiff --git a/lib/meson.build b/lib/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..c13be2be2c757813e6204feddcc773ce3bffed0c\n--- /dev/null\n+++ b/lib/meson.build\n@@ -0,0 +1,37 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+libgpiod_both = both_libraries('gpiod',\n+ sources: [\n+ 'chip.c',\n+ 'chip-info.c',\n+ 'edge-event.c',\n+ 'info-event.c',\n+ 'internal.c',\n+ 'line-config.c',\n+ 'line-info.c',\n+ 'line-request.c',\n+ 'line-settings.c',\n+ 'misc.c',\n+ 'request-config.c',\n+ ],\n+ include_directories: [libgpiod_inc, include_directories('.')],\n+ c_args: ['-fvisibility=hidden'],\n+ version: libgpiod_version,\n+ soversion: libgpiod_soversion,\n+ install: true,\n+)\n+libgpiod_lib = libgpiod_both.get_shared_lib()\n+\n+pkgconfig = import('pkgconfig')\n+pkgconfig.generate(libgpiod_lib,\n+ name: 'libgpiod',\n+ description: 'Library and tools for the Linux GPIO chardev',\n+ url: 'https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/',\n+ version: meson.project_version(),\n+)\n+\n+libgpiod_dep = declare_dependency(\n+ link_with: libgpiod_lib,\n+ include_directories: libgpiod_inc,\n+)\ndiff --git a/man/Makefile.am b/man/Makefile.am\ndeleted file mode 100644\nindex 8d8bc468d86976895a3fb53ac48c91e65a5ecdd0..0000000000000000000000000000000000000000\n--- a/man/Makefile.am\n+++ /dev/null\n@@ -1,70 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2017-2021 Bartosz Golaszewski <bartekgola@gmail.com>\n-# SPDX-FileCopyrightText: 2025 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\n-\n-MAN_ENTRIES =\n-MAN_DEPS =\n-\n-if WITH_TOOLS\n-\n-TOOLS = \\\n-\tgpiodetect \\\n-\tgpioinfo \\\n-\tgpioget \\\n-\tgpioset \\\n-\tgpiomon \\\n-\tgpionotify\n-\n-MAN_ENTRIES += $(TOOLS)\n-MAN_DEPS += $(foreach dep,$(TOOLS),$(top_builddir)/tools/$(dep))\n-\n-endif\n-\n-if WITH_DBUS\n-\n-GPIOCLI_CMDS = \\\n-\tdetect \\\n-\tfind \\\n-\tinfo \\\n-\tget \\\n-\tmonitor \\\n-\tnotify \\\n-\treconfigure \\\n-\trelease \\\n-\trequest \\\n-\trequests \\\n-\tset \\\n-\twait\n-\n-MAN_ENTRIES += \\\n-\tgpio-manager \\\n-\tgpiocli \\\n-\t$(foreach cmd,$(GPIOCLI_CMDS),gpiocli-$(cmd))\n-\n-MAN_DEPS += \\\n-\t$(top_builddir)/dbus/manager/gpio-manager\n-\t$(top_builddir)/dbus/client/gpiocli\n-\n-endif\n-\n-dist_man1_MANS := $(foreach entry,$(MAN_ENTRIES),$(entry).man)\n-\n-%.man: $(MAN_DEPS)\n-\t$(AM_V_GEN)export PATH=$(top_builddir)/dbus/manager/:$(top_builddir)/dbus/client/:$(top_builddir)/tools/:$$PATH; \\\n-\tif [ \"$(*F)\" = \"gpio-manager\" ]; then \\\n-\t\tEXEC=$(*F); \\\n-\t\tNAME=\"libgpiod D-Bus daemon\"; \\\n-\t\tHELP=--help-option=--help; \\\n-\telse \\\n-\t\tEXEC=$(if $(findstring -,$(*F)),$(word 1,$(subst -, ,$(*F))),$(*F)); \\\n-\t\tNAME=$(if $(findstring -,$(*F)),$(word 2,$(subst -, ,$(*F))),\"libgpiod command-line utility\"); \\\n-\t\tHELP=$(if $(findstring -,$(*F)),--help-option=\"$(word 2,$(subst -, ,$(*F))) --help\",--help-option=--help); \\\n-\tfi; \\\n-\thelp2man $$EXEC \\\n-\t\t--include=$(srcdir)/template --output=$(builddir)/$@ --no-info \\\n-\t\t--name=\"$$NAME\" \"$$HELP\" --manual=$(*F)\n-\n-clean-local:\n-\trm -f $(dist_man1_MANS)\n-\n-EXTRA_DIST = template\ndiff --git a/man/meson.build b/man/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..27b99ac98afc873554cabd5a01a4a50439286298\n--- /dev/null\n+++ b/man/meson.build\n@@ -0,0 +1,82 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+man_template = files('template')\n+man1_dir = get_option('mandir') / 'man1'\n+\n+if opt_tools.allowed()\n+ foreach tool : ['gpiodetect', 'gpioinfo', 'gpioget', 'gpioset', 'gpiomon', 'gpionotify']\n+ custom_target(tool + '.1',\n+ output: tool + '.1',\n+ command: [\n+ help2man,\n+ tools_exes[tool],\n+ '--include', man_template,\n+ '--no-info',\n+ '--name=libgpiod command-line utility',\n+ '--help-option=--help',\n+ '--manual=' + tool,\n+ '--output=@OUTPUT@',\n+ ],\n+ install: true,\n+ install_dir: man1_dir,\n+ )\n+ endforeach\n+endif\n+\n+if opt_dbus.allowed()\n+ gpiocli_cmds = [\n+ 'detect', 'find', 'info', 'get', 'monitor', 'notify',\n+ 'reconfigure', 'release', 'request', 'requests', 'set', 'wait',\n+ ]\n+\n+ custom_target('gpio-manager.1',\n+ output: 'gpio-manager.1',\n+ command: [\n+ help2man,\n+ gpio_manager_exe,\n+ '--include', man_template,\n+ '--no-info',\n+ '--name=libgpiod D-Bus daemon',\n+ '--help-option=--help',\n+ '--manual=gpio-manager',\n+ '--output=@OUTPUT@',\n+ ],\n+ install: true,\n+ install_dir: man1_dir,\n+ )\n+\n+ custom_target('gpiocli.1',\n+ output: 'gpiocli.1',\n+ command: [\n+ help2man,\n+ gpiocli_exe,\n+ '--include', man_template,\n+ '--no-info',\n+ '--name=libgpiod command-line utility',\n+ '--help-option=--help',\n+ '--manual=gpiocli',\n+ '--output=@OUTPUT@',\n+ ],\n+ install: true,\n+ install_dir: man1_dir,\n+ )\n+\n+ foreach cmd : gpiocli_cmds\n+ custom_target('gpiocli-' + cmd + '.1',\n+ output: 'gpiocli-' + cmd + '.1',\n+ command: [\n+ help2man,\n+ gpiocli_exe,\n+ '--include', man_template,\n+ '--no-info',\n+ '--name=' + cmd,\n+ '--help-option=' + cmd + ' --help',\n+ '--manual=gpiocli-' + cmd,\n+ '--output=@OUTPUT@',\n+ ],\n+ install: true,\n+ install_dir: man1_dir,\n+ )\n+ endforeach\n+endif\ndiff --git a/meson.build b/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..10df7969d0f6e8f157e9f1b39bd8cc90b2092d47\n--- /dev/null\n+++ b/meson.build\n@@ -0,0 +1,155 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+project('libgpiod', ['c', 'cpp'],\n+ version: '2.3',\n+ license: 'LGPL-2.1-or-later',\n+ default_options: [\n+ 'c_std=gnu89',\n+ 'cpp_std=gnu++17',\n+ 'warning_level=2',\n+ ],\n+ meson_version: '>= 0.63.0',\n+)\n+\n+extra_version = '-devel'\n+version_str = meson.project_version() + extra_version\n+\n+# Core libgpiod API version.\n+api_version = '2.2.0'\n+\n+# Core C library ABI version.\n+libgpiod_soversion = '3'\n+libgpiod_version = '3.1.1'\n+# Have a separate ABI version for C++ bindings:\n+libgpiodcxx_soversion = '2'\n+libgpiodcxx_version = '2.1.0'\n+# ABI version for libgpiosim (we need this since it can be installed if we\n+# enable tests).\n+libgpiosim_soversion = '1'\n+libgpiosim_version = '1.0.1'\n+# ... and another one for GLib bindings:\n+libgpiod_glib_soversion = '1'\n+libgpiod_glib_version = '1.0.0'\n+\n+add_project_arguments(\n+ '-D_GNU_SOURCE',\n+ '-DGPIOD_VERSION_STR=\"@0@\"'.format(version_str),\n+ '-DGPIOD_API_VERSION_STR=\"@0@\"'.format(api_version),\n+ language: ['c', 'cpp'],\n+)\n+\n+opt_tools = get_option('tools')\n+opt_gpioset_interactive = get_option('gpioset-interactive')\n+opt_tests = get_option('tests')\n+opt_examples = get_option('examples')\n+opt_bindings_cxx = get_option('bindings-cxx')\n+opt_bindings_python = get_option('bindings-python')\n+opt_bindings_rust = get_option('bindings-rust')\n+opt_bindings_glib = get_option('bindings-glib')\n+opt_dbus = get_option('dbus')\n+opt_introspection = get_option('introspection')\n+opt_systemd = get_option('systemd')\n+\n+# D-Bus implies glib bindings.\n+if opt_dbus.enabled() and not opt_bindings_glib.enabled()\n+ opt_bindings_glib = opt_dbus\n+endif\n+\n+# Introspection requires glib bindings.\n+if opt_introspection.enabled()\n+ assert(opt_bindings_glib.allowed(),\n+ 'introspection requires -Dbindings-glib=enabled')\n+endif\n+\n+# systemd requires D-Bus.\n+if opt_systemd.enabled()\n+ assert(opt_dbus.allowed(),\n+ 'systemd support requires -Ddbus=enabled')\n+endif\n+\n+libgpiod_inc = include_directories('include')\n+\n+libedit_dep = dependency('libedit', version: '>= 3.1', required: opt_gpioset_interactive)\n+\n+if opt_tests.allowed()\n+ libkmod_dep = dependency('libkmod', version: '>= 18', required: opt_tests)\n+ mount_dep = dependency('mount', version: '>= 2.33.1', required: opt_tests)\n+ threads_dep = dependency('threads', required: opt_tests)\n+ # glib/gio are also used by tests (different min-version from bindings).\n+ glib_test_dep = dependency('glib-2.0', version: '>= 2.74', required: opt_tests)\n+ gio_test_dep = dependency('gio-2.0', version: '>= 2.74', required: opt_tests)\n+endif\n+\n+if opt_bindings_cxx.allowed() and opt_tests.allowed()\n+ catch2_test_dep = dependency('catch2-with-main', version: '>= 3.0', required: false)\n+ if not catch2_test_dep.found()\n+ cxx = meson.get_compiler('cpp')\n+ if cxx.has_header('catch2/catch_all.hpp')\n+ catch2_test_dep = declare_dependency()\n+ endif\n+ endif\n+endif\n+\n+if opt_bindings_glib.allowed()\n+ glib_dep = dependency('glib-2.0', version: '>= 2.80', required: opt_bindings_glib)\n+ gobject_dep = dependency('gobject-2.0', version: '>= 2.80', required: opt_bindings_glib)\n+ gio_dep = dependency('gio-2.0', version: '>= 2.80', required: opt_bindings_glib)\n+ gio_unix_dep = dependency('gio-unix-2.0', version: '>= 2.80', required: opt_bindings_glib)\n+ glib_mkenums = find_program('glib-mkenums', required: opt_bindings_glib)\n+endif\n+\n+if opt_dbus.allowed()\n+ gudev_dep = dependency('gudev-1.0', version: '>= 230', required: opt_dbus)\n+ gdbus_codegen = find_program('gdbus-codegen', required: opt_dbus)\n+endif\n+\n+if opt_introspection.allowed()\n+ gir_dep = dependency('gobject-introspection-1.0', version: '>= 0.6.2',\n+ required: opt_introspection)\n+ g_ir_scanner = find_program('g-ir-scanner', required: opt_introspection)\n+ g_ir_compiler = find_program('g-ir-compiler', required: opt_introspection)\n+endif\n+\n+if opt_systemd.allowed()\n+ systemd_dep = dependency('systemd', required: opt_systemd)\n+ if systemd_dep.found()\n+ opt_systemd_unit_dir = get_option('systemd-unit-dir')\n+ if opt_systemd_unit_dir != ''\n+ systemd_unit_dir = opt_systemd_unit_dir\n+ else\n+ systemd_unit_dir = systemd_dep.get_variable('systemdsystemunitdir')\n+ endif\n+ endif\n+endif\n+\n+if opt_bindings_rust.allowed()\n+ cargo = find_program('cargo', required: opt_bindings_rust)\n+endif\n+\n+help2man = find_program('help2man', required: false)\n+\n+subdir('include')\n+subdir('lib')\n+\n+if opt_tools.allowed()\n+ subdir('tools')\n+endif\n+\n+if opt_examples.allowed()\n+ subdir('examples')\n+endif\n+\n+if opt_tests.allowed()\n+ subdir('tests')\n+endif\n+\n+subdir('bindings')\n+\n+if opt_dbus.allowed()\n+ subdir('dbus')\n+endif\n+\n+if help2man.found()\n+ subdir('man')\n+endif\ndiff --git a/meson_options.txt b/meson_options.txt\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..9b9a5ed6b28347b213cf78df23bbeb2214e8c248\n--- /dev/null\n+++ b/meson_options.txt\n@@ -0,0 +1,38 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+option('tools', type: 'feature', value: 'disabled',\n+ description: 'Build libgpiod command-line tools')\n+\n+option('gpioset-interactive', type: 'feature', value: 'disabled',\n+ description: 'Enable gpioset interactive mode (requires libedit >= 3.1)')\n+\n+option('tests', type: 'feature', value: 'disabled',\n+ description: 'Build the test suite')\n+\n+option('examples', type: 'feature', value: 'disabled',\n+ description: 'Build code examples')\n+\n+option('bindings-cxx', type: 'feature', value: 'disabled',\n+ description: 'Build C++ bindings')\n+\n+option('bindings-python', type: 'feature', value: 'disabled',\n+ description: 'Build Python 3 bindings (requires Python >= 3.10)')\n+\n+option('bindings-rust', type: 'feature', value: 'disabled',\n+ description: 'Build Rust bindings (requires cargo)')\n+\n+option('bindings-glib', type: 'feature', value: 'disabled',\n+ description: 'Build GLib 2.0 / GObject bindings')\n+\n+option('dbus', type: 'feature', value: 'disabled',\n+ description: 'Build the D-Bus daemon and client (implies bindings-glib)')\n+\n+option('introspection', type: 'feature', value: 'disabled',\n+ description: 'Generate GObject introspection data (requires bindings-glib)')\n+\n+option('systemd', type: 'feature', value: 'disabled',\n+ description: 'Install systemd unit and udev rules (requires dbus)')\n+\n+option('systemd-unit-dir', type: 'string', value: '',\n+ description: 'Directory for systemd system unit files (default: from pkg-config)')\ndiff --git a/tests/Makefile.am b/tests/Makefile.am\ndeleted file mode 100644\nindex 7049d21b7c06bc195212cb0f0208c4c1a5d69fe9..0000000000000000000000000000000000000000\n--- a/tests/Makefile.am\n+++ /dev/null\n@@ -1,31 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2017-2022 Bartosz Golaszewski <brgl@bgdev.pl>\n-\n-SUBDIRS = gpiosim gpiosim-glib harness scripts\n-\n-AM_CFLAGS = -I$(top_srcdir)/include/ -I$(top_srcdir)/tests/gpiosim-glib/\n-AM_CFLAGS += -I$(top_srcdir)/tests/harness/\n-AM_CFLAGS += -include $(top_builddir)/config.h\n-AM_CFLAGS += -Wall -Wextra -g -std=gnu89 $(GLIB_CFLAGS) $(GIO_CFLAGS)\n-AM_CFLAGS += -DG_LOG_DOMAIN=\\\"gpiod-test\\\"\n-LDADD = $(top_builddir)/lib/libgpiod.la\n-LDADD += $(top_builddir)/tests/gpiosim/libgpiosim.la\n-LDADD += $(top_builddir)/tests/gpiosim-glib/libgpiosim-glib.la\n-LDADD += $(top_builddir)/tests/harness/libgpiod-test-harness.la\n-LDADD += $(GLIB_LIBS) $(GIO_LIBS)\n-\n-noinst_PROGRAMS = gpiod-test\n-\n-gpiod_test_SOURCES = \\\n-\thelpers.h \\\n-\ttests-chip.c \\\n-\ttests-chip-info.c \\\n-\ttests-edge-event.c \\\n-\ttests-info-event.c \\\n-\ttests-kernel-uapi.c \\\n-\ttests-line-config.c \\\n-\ttests-line-info.c \\\n-\ttests-line-request.c \\\n-\ttests-line-settings.c \\\n-\ttests-misc.c \\\n-\ttests-request-config.c\ndiff --git a/tests/gpiosim-glib/Makefile.am b/tests/gpiosim-glib/Makefile.am\ndeleted file mode 100644\nindex 1c016296a1c31df0a26a5d8049098b0366608ed0..0000000000000000000000000000000000000000\n--- a/tests/gpiosim-glib/Makefile.am\n+++ /dev/null\n@@ -1,13 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\n-\n-noinst_LTLIBRARIES = libgpiosim-glib.la\n-libgpiosim_glib_la_SOURCES = \\\n-\tgpiosim-glib.c \\\n-\tgpiosim-glib.h\n-\n-AM_CFLAGS = -I$(top_srcdir)/tests/gpiosim/\n-AM_CFLAGS += -include $(top_builddir)/config.h\n-AM_CFLAGS += -Wall -Wextra -g -std=gnu89 $(GLIB_CFLAGS) $(GIO_CFLAGS)\n-AM_CFLAGS += -DG_LOG_DOMAIN=\\\"gpiosim-glib\\\"\n-libgpiosim_glib_la_LDFLAGS = -lgpiosim\ndiff --git a/tests/gpiosim-glib/meson.build b/tests/gpiosim-glib/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..1efa8f5873f22824426f5d432f326c3c3d843145\n--- /dev/null\n+++ b/tests/gpiosim-glib/meson.build\n@@ -0,0 +1,11 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+libgpiosim_glib_lib = static_library('gpiosim-glib',\n+ sources: ['gpiosim-glib.c'],\n+ include_directories: [include_directories('../gpiosim')],\n+ c_args: ['-DG_LOG_DOMAIN=\"gpiosim-glib\"'],\n+ dependencies: [glib_test_dep, gio_test_dep],\n+ link_with: [libgpiosim_lib],\n+ pic: true,\n+)\ndiff --git a/tests/gpiosim/Makefile.am b/tests/gpiosim/Makefile.am\ndeleted file mode 100644\nindex 58888737bbe4dbc1743ca6684ce11fe9dc98a271..0000000000000000000000000000000000000000\n--- a/tests/gpiosim/Makefile.am\n+++ /dev/null\n@@ -1,15 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski <brgl@bgdev.pl>\n-\n-lib_LTLIBRARIES = libgpiosim.la\n-noinst_PROGRAMS = gpiosim-selftest\n-\n-AM_CFLAGS = -Wall -Wextra -g -fvisibility=hidden -std=gnu89\n-AM_CFLAGS += -include $(top_builddir)/config.h\n-\n-libgpiosim_la_SOURCES = gpiosim.c gpiosim.h\n-libgpiosim_la_CFLAGS = $(AM_CFLAGS) $(KMOD_CFLAGS) $(MOUNT_CFLAGS)\n-libgpiosim_la_LDFLAGS = -version-info $(subst .,:,$(ABI_GPIOSIM_VERSION))\n-libgpiosim_la_LDFLAGS += $(KMOD_LIBS) $(MOUNT_LIBS) -pthread\n-\n-gpiosim_selftest_LDADD = libgpiosim.la\ndiff --git a/tests/gpiosim/meson.build b/tests/gpiosim/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..078a2418496352f3b4bb1bd0286f3e05d589f959\n--- /dev/null\n+++ b/tests/gpiosim/meson.build\n@@ -0,0 +1,19 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+libgpiosim_both = both_libraries('gpiosim',\n+ sources: ['gpiosim.c'],\n+ c_args: ['-fvisibility=hidden'],\n+ dependencies: [libkmod_dep, mount_dep, threads_dep],\n+ version: libgpiosim_version,\n+ soversion: libgpiosim_soversion,\n+ install: true,\n+)\n+libgpiosim_lib = libgpiosim_both.get_shared_lib()\n+libgpiosim_static = libgpiosim_both.get_static_lib()\n+libgpiosim_inc = include_directories('.')\n+\n+executable('gpiosim-selftest',\n+ sources: ['gpiosim-selftest.c'],\n+ link_with: [libgpiosim_lib],\n+)\ndiff --git a/tests/harness/Makefile.am b/tests/harness/Makefile.am\ndeleted file mode 100644\nindex 185c00f1bb40b0756753515e053ae5754d8bc5d6..0000000000000000000000000000000000000000\n--- a/tests/harness/Makefile.am\n+++ /dev/null\n@@ -1,12 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2022 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\n-\n-noinst_LTLIBRARIES = libgpiod-test-harness.la\n-libgpiod_test_harness_la_SOURCES = \\\n-\tgpiod-test.c \\\n-\tgpiod-test.h \\\n-\tgpiod-test-common.h\n-\n-AM_CFLAGS = -include $(top_builddir)/config.h\n-AM_CFLAGS += -Wall -Wextra -g -std=gnu89 $(GLIB_CFLAGS)\n-AM_CFLAGS += -DG_LOG_DOMAIN=\\\"gpiod-test\\\"\ndiff --git a/tests/harness/meson.build b/tests/harness/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..881e9781455d20f997f180477a2b49cd3189ffd4\n--- /dev/null\n+++ b/tests/harness/meson.build\n@@ -0,0 +1,9 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+libgpiod_test_harness_lib = static_library('gpiod-test-harness',\n+ sources: ['gpiod-test.c'],\n+ c_args: ['-DG_LOG_DOMAIN=\"gpiod-test\"'],\n+ dependencies: [glib_test_dep],\n+ pic: true,\n+)\ndiff --git a/tests/meson.build b/tests/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..0b99205dfaa1a161a45a028af1fb4e089d509f66\n--- /dev/null\n+++ b/tests/meson.build\n@@ -0,0 +1,37 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+subdir('gpiosim')\n+subdir('gpiosim-glib')\n+subdir('harness')\n+\n+executable('gpiod-test',\n+ sources: [\n+ 'helpers.h',\n+ 'tests-chip.c',\n+ 'tests-chip-info.c',\n+ 'tests-edge-event.c',\n+ 'tests-info-event.c',\n+ 'tests-kernel-uapi.c',\n+ 'tests-line-config.c',\n+ 'tests-line-info.c',\n+ 'tests-line-request.c',\n+ 'tests-line-settings.c',\n+ 'tests-misc.c',\n+ 'tests-request-config.c',\n+ ],\n+ include_directories: [\n+ libgpiod_inc,\n+ include_directories('gpiosim'),\n+ include_directories('gpiosim-glib'),\n+ include_directories('harness'),\n+ ],\n+ c_args: ['-DG_LOG_DOMAIN=\"gpiod-test\"'],\n+ dependencies: [\n+ libgpiod_dep,\n+ glib_test_dep,\n+ gio_test_dep,\n+ threads_dep,\n+ ],\n+ link_with: [libgpiosim_lib, libgpiosim_glib_lib, libgpiod_test_harness_lib],\n+)\ndiff --git a/tests/scripts/Makefile.am b/tests/scripts/Makefile.am\ndeleted file mode 100644\nindex 5766593a1a6f46e3e30861e690f20d268c6b57a3..0000000000000000000000000000000000000000\n--- a/tests/scripts/Makefile.am\n+++ /dev/null\n@@ -1,4 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2023 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\n-\n-EXTRA_DIST = gpiod-bash-test-helper.inc\ndiff --git a/tests/scripts/gpiod-bash-test-helper.inc b/tests/scripts/gpiod-bash-test-helper.inc\nindex d0f8a6d12d9dd4c2d6ed0a02f957679b5d997c8c..d3c5a75a5d46da38250e39a11af18d09ffaca123 100644\n--- a/tests/scripts/gpiod-bash-test-helper.inc\n+++ b/tests/scripts/gpiod-bash-test-helper.inc\n@@ -176,14 +176,14 @@ run_prog() {\n \t# testing script.\n \tcmd=$1\n \tshift\n-\toutput=$(timeout 10s \"$SOURCE_DIR/$cmd\" \"$@\" 2>&1)\n+\toutput=$(timeout 10s \"$cmd\" \"$@\" 2>&1)\n \tstatus=$?\n }\n \n dut_run() {\n \tcmd=$1\n \tshift\n-\tcoproc timeout 10s \"$SOURCE_DIR/$cmd\" \"$@\" 2>&1\n+\tcoproc timeout 10s \"$cmd\" \"$@\" 2>&1\n \tDUT_PID=$COPROC_PID\n \tread -r -t1 -n1 -u \"${COPROC[0]}\" DUT_FIRST_CHAR\n }\n@@ -191,7 +191,7 @@ dut_run() {\n dut_run_redirect() {\n \tcmd=$1\n \tshift\n-\tcoproc timeout 10s \"$SOURCE_DIR/$cmd\" \"$@\" > \"$SHUNIT_TMPDIR/$DUT_OUTPUT\" 2>&1\n+\tcoproc timeout 10s \"$cmd\" \"$@\" > \"$SHUNIT_TMPDIR/$DUT_OUTPUT\" 2>&1\n \tDUT_PID=$COPROC_PID\n \t# give the process time to spin up\n \t# FIXME - find a better solution\n@@ -278,7 +278,7 @@ tearDown() {\n }\n \n request_release_line() {\n-\t\"$SOURCE_DIR/gpioget\" -c \"$@\" >/dev/null\n+\t\"gpioget\" -c \"$@\" >/dev/null\n }\n \n die() {\ndiff --git a/tools/Makefile.am b/tools/Makefile.am\ndeleted file mode 100644\nindex bf6170a11f9538bcb09bdce2389d73133dbb3d28..0000000000000000000000000000000000000000\n--- a/tools/Makefile.am\n+++ /dev/null\n@@ -1,25 +0,0 @@\n-# SPDX-License-Identifier: GPL-2.0-or-later\n-# SPDX-FileCopyrightText: 2017-2021 Bartosz Golaszewski <bartekgola@gmail.com>\n-\n-AM_CFLAGS = -I$(top_srcdir)/include/ -include $(top_builddir)/config.h\n-AM_CFLAGS += -Wall -Wextra -g -std=gnu89\n-\n-noinst_LTLIBRARIES = libtools-common.la\n-libtools_common_la_SOURCES = tools-common.c tools-common.h\n-\n-LDADD = libtools-common.la $(top_builddir)/lib/libgpiod.la\n-\n-if WITH_GPIOSET_INTERACTIVE\n-\n-AM_CFLAGS += -DGPIOSET_INTERACTIVE $(LIBEDIT_CFLAGS)\n-LDADD += $(LIBEDIT_LIBS)\n-\n-endif\n-\n-bin_PROGRAMS = gpiodetect gpioinfo gpioget gpioset gpiomon gpionotify\n-\n-if WITH_TESTS\n-\n-dist_noinst_SCRIPTS = gpio-tools-test.bash\n-\n-endif\ndiff --git a/tools/gpio-tools-test.bash b/tools/gpio-tools-test.bash\nindex 0bc6e7db590921a4afee6cb417ac64da2b77d9e2..3ec76dfac95ee276c78dac0c2f9792d8439f5418 100755\n--- a/tools/gpio-tools-test.bash\n+++ b/tools/gpio-tools-test.bash\n@@ -4,9 +4,6 @@\n # SPDX-FileCopyrightText: 2022 Kent Gibson <warthog618@gmail.com>\n # SPDX-FileCopyrightText: 2023 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\n \n-export SOURCE_DIR\n-SOURCE_DIR=\"$(dirname \"${BASH_SOURCE[0]}\")\"\n-\n #\n # gpiodetect test cases\n #\ndiff --git a/tools/meson.build b/tools/meson.build\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..b26718ba69679d03d210562768f71ea02bc3ed01\n--- /dev/null\n+++ b/tools/meson.build\n@@ -0,0 +1,32 @@\n+# SPDX-License-Identifier: GPL-2.0-or-later\n+# SPDX-FileCopyrightText: 2026 Qualcomm Technologies, Inc. and/or its subsidiaries\n+\n+tools_common_lib = static_library('tools-common',\n+ sources: ['tools-common.c'],\n+ include_directories: libgpiod_inc,\n+ pic: true,\n+)\n+\n+tools_common_dep = declare_dependency(\n+ link_with: tools_common_lib,\n+ include_directories: include_directories('.'),\n+)\n+\n+tools_c_args = []\n+tools_deps = [libgpiod_dep, tools_common_dep]\n+\n+if opt_gpioset_interactive.allowed() and libedit_dep.found()\n+ tools_c_args += ['-DGPIOSET_INTERACTIVE']\n+ tools_deps += [libedit_dep]\n+endif\n+\n+tools_exes = {}\n+foreach tool : ['gpiodetect', 'gpioinfo', 'gpioget', 'gpioset', 'gpiomon', 'gpionotify']\n+ tools_exes += {tool: executable(tool,\n+ sources: [tool + '.c'],\n+ include_directories: libgpiod_inc,\n+ dependencies: tools_deps,\n+ c_args: tools_c_args,\n+ install: true,\n+ )}\n+endforeach\n", "prefixes": [ "libgpiod" ] }