From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 7F325456A3;
	Fri, 26 Jul 2024 14:43:03 +0200 (CEST)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 7A37740DFD;
	Fri, 26 Jul 2024 14:43:02 +0200 (CEST)
Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9])
 by mails.dpdk.org (Postfix) with ESMTP id 23FB040263
 for <dev@dpdk.org>; Fri, 26 Jul 2024 14:42:59 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
 d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
 t=1721997779; x=1753533779;
 h=from:to:cc:subject:date:message-id:mime-version:
 content-transfer-encoding;
 bh=Fkbgpitu2QUdbfgoZRZtj4x9qwT7whQFDEb0xfv3VCg=;
 b=gRkxUFPoYttP+LsTPzg8sFQxfbdPFQLWQrqFFSq1Ykez+g/2jU+i+oO3
 TUa0B5ATaDj4QtVnmiXycb7v8Zm1w995u8xv/npUFtdqhAyzMxy+t7ZSj
 zQCU+0M2UEQElnlg3ANu555BJ1gxxUZDzpyyFUO8SIsxz5lMEjBRq9Bfo
 j+Qa9e0hAUc+uYpE2kVsiUvpQZqKchD0N9pMFRFQVFTqYE1Ckr9LC3nFw
 6CesXP37lANGtQLZLIaefk7N/S1OK7IjStafNXzS5sLgrv+iBNDb1Uy8H
 dvAEtr8r1BrezAx58k544XXE3MJ0ySRnJQgZCOmuwdzUniZj44vc5UeOw w==;
X-CSE-ConnectionGUID: 24CXEgKQRjKHWpMu2RLrig==
X-CSE-MsgGUID: rfQYCtVzTiW77dlSiBw7vA==
X-IronPort-AV: E=McAfee;i="6700,10204,11144"; a="42316441"
X-IronPort-AV: E=Sophos;i="6.09,238,1716274800"; d="scan'208";a="42316441"
Received: from orviesa004.jf.intel.com ([10.64.159.144])
 by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 26 Jul 2024 05:42:58 -0700
X-CSE-ConnectionGUID: T9WUnjcRTZOCShGvwF9w5g==
X-CSE-MsgGUID: BKR/Ia04QKurraCBUIj9Sg==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.09,238,1716274800"; d="scan'208";a="58365790"
Received: from silpixa00401119.ir.intel.com ([10.55.129.167])
 by orviesa004.jf.intel.com with ESMTP; 26 Jul 2024 05:42:58 -0700
From: Anatoly Burakov <anatoly.burakov@intel.com>
To: dev@dpdk.org
Cc: john.mcnamara@intel.com
Subject: [RFC PATCH v1 0/1] Add Visual Studio Code configuration script
Date: Fri, 26 Jul 2024 13:42:55 +0100
Message-ID: <cover.1721997016.git.anatoly.burakov@intel.com>
X-Mailer: git-send-email 2.43.5
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

Lots of developers (myself included) uses Visual Studio Code as their primary
IDE for DPDK development. I have been successfully using various incarnations
of this script internally to quickly set up my development trees whenever I
need a new configuration, so this script is being shared in hopes that it will
be useful both to new developers starting with DPDK, and to seasoned DPDK
developers who are already using Visual Studio Code. It makes starting working
on DPDK in Visual Studio Code so much easier!

Philosophy behind this script is as follows:

- The assumption is made that a developer will not be using wildly different
  configurations from build to build - usually, they build the same things,
  work with the same set of apps/drivers for a while, then switch to something
  else, at which point a new configuration is needed
- Some configurations I consider to be "common" are included: debug build, debug
  optimized build, release build with docs, and ASan build
  (feel free to make suggestions here!)
- By default, the script will suggest enabling test, testpmd, and helloworld example
- No drivers are being enabled by default - use needs to explicitly enable them
  (another option could be to leave things as default and build everything, but I
  rather prefer minimalistic builds as they're faster to compile, and it would be
  semantically weird to not have any drivers selected yet all of them being built)
- All parameters that can be adjusted by TUI are also available as command line
  arguments, so while user interaction is the default (using whiptail), it's
  actually not required and can be bypassed.
- I usually work as a local user not as root, so by default the script will attempt
  to use "gdbsudo" (a "sudo gdb $@" script in /usr/local/bin) for launch tasks,
  and stop if it is not available.

Currently, it is only possible to define custom per-build configurations, while
any "global" meson settings would have to involve editing settings.json file. This
can be changed easily if required, but I've never needed this functionality.

Please feel free to make any suggestions!

Anatoly Burakov (1):
  devtools: add vscode configuration generator

 devtools/gen-vscode-config.py | 640 ++++++++++++++++++++++++++++++++++
 1 file changed, 640 insertions(+)
 create mode 100755 devtools/gen-vscode-config.py

-- 
2.43.5