From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?UTF-8?Q?Augustin_Ch=c3=a9neau_=28BTuin=29?= Newsgroups: gmane.emacs.devel Subject: Re: Builder, a build system integration for Emacs Date: Wed, 24 May 2023 22:09:52 +0200 Message-ID: <583a1524-e94a-2097-52d1-dfdd547dd91c@mailo.com> References: <95980ffc-86e7-ad54-4a20-539d8c6ea5d0@mailo.com> <87jzwzh2bm.fsf@posteo.net> <83cz2rpa73.fsf@gnu.org> <6b01a5ba-e60b-9ecc-8e94-5bef156c83b3@mailo.com> <86zg5uxp0i.fsf@mail.linkov.net> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="18169"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed May 24 22:10:54 2023 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1q1uow-0004Yi-R2 for ged-emacs-devel@m.gmane-mx.org; Wed, 24 May 2023 22:10:54 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q1uo4-0000Da-PD; Wed, 24 May 2023 16:10:00 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q1uo2-0000Cb-Pp for emacs-devel@gnu.org; Wed, 24 May 2023 16:09:58 -0400 Original-Received: from msg-2.mailo.com ([213.182.54.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q1uo0-0003F2-Pd for emacs-devel@gnu.org; Wed, 24 May 2023 16:09:58 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=mailo.com; s=mailo; t=1684958992; bh=rYVn2zBuYmn3XzTQ2sY2z+L2tUhW9Z0E/VuUbrUJrl8=; h=X-EA-Auth:Message-ID:Date:MIME-Version:Subject:To:References:From: In-Reply-To:Content-Type:Content-Transfer-Encoding; b=CxuQ7NajZaUCgqezm+Dvxz42rZRqsbIQWiCKLC0zPjBClZLJ/YX0tnLsnm1MA9Iwg wxI08wsqdzIjVHbKb3Td1hcq1gZAAHXDSynrg6SLJVi3KoGuzU/QrBhI43Vm4dZ8JA /xye7oP1RbV67cQkOiLLGsH1pXD9B0kPj8mmRYpc= Original-Received: by b221-1.in.mailobj.net [192.168.90.21] with ESMTP via ip-20.mailobj.net [213.182.54.20] Wed, 24 May 2023 22:09:52 +0200 (CEST) X-EA-Auth: yfxJNO/kco5kjLe4R01y4f8ckLhDNCaIZU4tnYdmXZnyIojCOIgiKryjjY3SOmqZqAHc/szArACsIXjtftTxXeMApaHbxSpm Content-Language: fr, en-US In-Reply-To: <86zg5uxp0i.fsf@mail.linkov.net> Received-SPF: pass client-ip=213.182.54.12; envelope-from=btuin@mailo.com; helo=msg-2.mailo.com X-Spam_score_int: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, NICE_REPLY_A=-0.107, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:306307 Archived-At: Le 24/05/2023 à 08:32, Juri Linkov a écrit : >> This is exactly what Builder does: if you want to compile, it will detect >> which build systems are present in the project and provide you choices of >> commands to execute. You can see that as an autocomplete for M-x compile. >> >> After asking you to chose the command, it will actually pass the string to >> the function `compile'. So it doesn't re-implement anything. >> It's just a layer over `compile', to remove repetitive tasks. >> >> I know you can customize `compile-command', but you can only have one value >> by project, you need to set it for each project and you can't switch >> between values. It doesn't help you if you want to switch to debug or >> another target, or to run tests, or if you have multiple build systems on >> your project. > > Like 'tex-compile-commands', a new variable 'compile-commands' could > support a list of default commands. You can fill it with default values, > then the user can select one of them by using completion. > Of course, but then you'll want to filter according to the available build systems on the project to make it more convenient, because there are a lot of build systems. Also, you'd want to create categories (such as compile, test, configure...) so you don't have to search for your command. Add some facilities to make it more configurable and flexible... And finally you would have, well, more or less Builder :D `tex-compile-commands' works fine because its scope is very limited: only one "build system". But with Make, Autotools, CMake, Meson, Cargo, Xmake, Dune, QMake, ASDF, and many, many more, it would get messy very quickly.