Just make a build script and then write a flatpak build file that'll package it as a flatpak. Here's an example.
Linux
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
Not sure I follow. I'm talking about using the clangd language server to give me code completion, etc. when developing a flatpak application. I've already got it making the package and running it through the vscode debugger
I'm not sure I understand what you're asking. It seems like you're asking why your clangd extension isn't working? But then you say:
BTW I'm not talking about using clangd with the vscode flatpak package
I was asking about getting the clangd extension to work when developing an application against the freedesktop sdk as a flatpak. I've worked it out now, thanks for your interest
I've worked it out, thanks for the responses, maybe I didn't word the question properly or something, but here's what I did for anyone interested in the future:
You only need to do this once for every machine you want to work on.
Add the llvm freedesktop sdk extensions to get a clangd executable to your flatpak manifest:
"sdk-extensions": [
"org.freedesktop.Sdk.Extension.llvm18"
],
Install these extensions:
- Native Debug
- Flatpak
- Meson Build
- clangd (optional)
Run the Flatpak: Build
command in the command palette (Ctrl+Shift+P
) this might take a minute. Make sure you have the required sdks installed (see the manifest for details).
There should now be two folders: .flatpak
and _build
. There should also be a script generated at .flatpak/meson.sh
. Run:
python gen-flatpak-scripts.py
This will generate .flatpak/gdb.sh
and .flatpak/clangd.sh
. If you want to use the clangd vscode extension extension add this to .vscode/settings.json
:
"clangd.path": "./.flatpak/clangd.sh"
Now run the clangd: Restart language server
command in the command palette (Ctrl+Shift+P
) and you should be good to go!
gen-flatpak-scripts.py
:
# Simple script to generate scripts to make life easy when using flatpak with vscode
import subprocess;
def gen_script(outfile, exec):
with open(".flatpak/meson.sh", "rt") as fin:
with open(outfile, "wt") as fout:
for line in fin:
fout.write(line.replace("/usr/bin/meson", exec))
subprocess.run(["chmod", "+x", outfile])
# GDB for debugging
gen_script(".flatpak/gdb.sh", "/usr/bin/gdb")
# clangd for suggestions
gen_script(".flatpak/clangd.sh", "/usr/lib/sdk/llvm18/bin/clangd")