bob-project
Name
bob-project - Create IDE project files
Synopsis
bob project [-h] [--list] [-D DEFINES] [-c CONFIGFILE] [-e NAME] [-E]
[--download MODE] [--resume] [-n] [-b] [-j [JOBS]]
[--sandbox | --slim-sandbox | --dev-sandbox | --strict-sandbox | --no-sandbox]
[projectGenerator] [package] ...
Description
Generate Project Files.
Options
-c CONFIGFILEUse config File
--dev-sandboxEnable development sandboxing.
Always build packages in an isolated environment where only declared dependencies are visible. If a sandbox image is available, it is used. Otherwise the host paths are made read-only.
--download MODEDownload from binary archive (yes, no, deps, packages)
See bob-dev(1) for details.
-D DEFINESOverride default environment variable
-e NAMEPreserve environment variable
-EPreserve whole environment
-j, --jobsSpecifies the number of jobs to run simultaneously.
--listList available Generators
-nDo not build (bob dev) before generate project Files. RunTargets may not work
--no-sandboxDisable sandboxing. This is the default.
-bDo build only (bob dev -b) before generate project Files. No checkout
--resumeResume build where it was previously interrupted
--sandboxEnable partial sandboxing.
Build packages in an ephemeral container if a sandbox image is available for the package. Inside the sandbox, stable execution paths are used. In absence of a sandbox image, no isolation is performed.
--slim-sandboxEnable slim sandboxing.
Build packages in an isolated mount namespace. Most of the host paths are available read-only. Other workspaces are hidden when building a package unless they are a declared dependency. An optionally available sandbox image is not used.
--strict-sandboxEnable strict sandboxing.
Always build packages in an isolated environment where only declared dependencies are visible. If a sandbox image is available, it is used. Otherwise the host paths are made read-only. The build path is always a reproducible, stable path.
Eclipse CDT project generator
bob project eclipseCdt <package> [-h] [-u] [--buildCfg BUILDCFG] [--overwrite]
[--destination DEST] [--name NAME]
[--exclude EXCLUDES] [-I ADDITIONAL_INCLUDES]
The Eclipse CDT generator has the following specific options. They have to be passed on the command line after the package name.
--buildCfg BUILDCFGAdds a new buildconfiguration. Format: <Name>::<flags>. Flags are passed to bob dev. See bob dev for a list of availabe flags.
--destination DESTDestination of project files.
--exclude EXCLUDESPackages will be marked as ‘exclude from build’ in eclipse. Usefull if indexer runs OOM.
-I ADDITIONAL_INCLUDESAdditional include directories.
--name NAMEName of project. Default is complete_path_to_package
--overwriteRemove destination folder before generating.
-u, --updateUpdate project files (.project).
QtCreator project generator
bob project qt-project <package> [-h] [-u] [--buildCfg BUILDCFG] [--overwrite]
[--destination DEST] [--name NAME]
[-I ADDITIONAL_INCLUDES] [-f Filter]
[--exclude Excludes] [--include Includes] [--kit KIT]
[-S START_INCLUDES] [-C CONFIG_DEF]
This generator also supports generation of project files for native Windows QtCreator by using MSYS2. The prerequisite is, that MSYS2 must be started by msys2_shell.cmd script.
The QtCreator project generator has the following specific options. They have to be passed on the command line after the package name.
--buildCfg BUILDCFGAdds a new buildconfiguration. Format: <Name>::<flags>
--destination DESTDestination of project files
-f Filter, --filter FilterFile filter. A regex for matching additional files.
--exclude ExcludesPackage filter. A regex for excluding packages in QTCreator.
--include IncludesInclude package filter. A regex for including only the specified packages in QTCreator. Use single quotes to specify your regex. For exmaple: –include ‘foobar-.*’ You can also mix the Includes with the Excludes. In this case always use the Includes option beforehand. For example: –include ‘foobar-.*’ –exclude ‘foobar-baz’ This will ensure you only include packages wtih foobar-* but excludes the foobar-baz package.
-I ADDITIONAL_INCLUDESAdditional include directories.
--kit KITName of the kit to use for this project.
Qt Creator usually auto-detects your installed compilers on the system and creates one or more “kits” based on the detected settings. Bob will use the “Desktop” kit by default. The generator cannot create a project if QtCreator is not installed. If the “Desktop” kit is missing you have to create one or specify an existing one with the
--kitoption.See the online documentation [1] for more information.
--name NAMEName of project. Default is complete_path_to_package
--overwriteRemove destination folder before generating.
-u, --updateUpdate project files (.files, .includes, .config)
-S START_INCLUDESAdditional include directories, will be placed at the beginning of the include list.
-C CONFIG_DEFAdd line to .config file. Can be used to specify preprocessor defines used by the QTCreator.
Visual Studio Code project generator
bob project vscode <package> [-h] [--name NAME] [--destination DEST]
[--exclude EXCLUDES]
[--include INCLUDE] [-I ADDITIONAL_INCLUDES]
[-S START_INCLUDES] [--sort]
The Visual Studio Code generator will generate a single .code-workspace file which could be opened in the Visual Studio Code.
The Visual Studio Code generator has the following specific options. They have to be passed on the command line after the package name.
--name NAMEName of project. Default is package_name
--destination DESTDestination of project files.
--exclude EXCLUDESPackage filter. A regex for excluding packages in VSCode.
--include INCLUDEInclude package filter. A regex for including only the specified packages in VSCode. Use single quotes to specify your regex. For exmaple: –include ‘foobar-.*’ You can also mix the Includes with the Excludes. In this case always use the Includes option beforehand. For example: –include ‘foobar-.*’ –exclude ‘foobar-baz’ This will ensure you only include packages wtih foobar-* but excludes the foobar-baz package.
-I ADDITIONAL_INCLUDESAdditional include directories.
-S START_INCLUDESAdditional include directories, will be placed at the beginning of the include list.
--sortSort the dependend packages by name (default: unsorted)