def prepare_arguments(parser): parser.description = "This verb is used to configure a catkin workspace's\ configuration and layout. Calling `catkin config` with no arguments will\ display the current config and affect no changes if a config already exists\ for the current workspace and profile." # Workspace / profile args add_context_args(parser) behavior_group = parser.add_argument_group( 'Behavior', 'Options affecting argument handling.') add = behavior_group.add_mutually_exclusive_group().add_argument add('--append-args', '-a', action='store_true', default=False, help='For list-type arguments, append elements.') add('--remove-args', '-r', action='store_true', default=False, help='For list-type arguments, remove elements.') context_group = parser.add_argument_group( 'Workspace Context', 'Options affecting the context of the workspace.') add = context_group.add_argument add('--init', action='store_true', default=False, help='Initialize a workspace if it does not yet exist.') add = context_group.add_mutually_exclusive_group().add_argument add('--extend', '-e', dest='extend_path', type=str, help='Explicitly extend the result-space of another catkin workspace, ' 'overriding the value of $CMAKE_PREFIX_PATH.') add('--no-extend', dest='extend_path', action='store_const', const='', help= 'Un-set the explicit extension of another workspace as set by --extend.' ) add = context_group.add_argument add('--mkdirs', action='store_true', default=False, help= 'Create directories required by the configuration (e.g. source space) if they do not already exist.' ) lists_group = parser.add_argument_group( 'Package Build Defaults', 'Packages to include or exclude from default build behavior.') add = lists_group.add_mutually_exclusive_group().add_argument add('--whitelist', metavar="PKG", dest='whitelist', nargs="+", required=False, type=str, default=None, help='Set the packages on the whitelist. If the whitelist is non-empty, ' 'only the packages on the whitelist are built with a bare call to ' '`catkin build`.') add('--no-whitelist', dest='whitelist', action='store_const', const=[], default=None, help='Clear all packages from the whitelist.') add = lists_group.add_mutually_exclusive_group().add_argument add('--blacklist', metavar="PKG", dest='blacklist', nargs="+", required=False, type=str, default=None, help='Set the packages on the blacklist. Packages on the blacklist are ' 'not built with a bare call to `catkin build`.') add('--no-blacklist', dest='blacklist', action='store_const', const=[], default=None, help='Clear all packages from the blacklist.') spaces_group = parser.add_argument_group( 'Spaces', 'Location of parts of the catkin workspace.') Context.setup_space_keys() for space, space_dict in Context.SPACES.items(): add = spaces_group.add_mutually_exclusive_group().add_argument flags = ['--{}-space'.format(space)] flags.extend([space_dict['short_flag']] if 'short_flag' in space_dict else []) add(*flags, default=None, help='The path to the {} space.'.format(space)) add('--default-{}-space'.format(space), action='store_const', dest='{}_space'.format(space), default=None, const=space_dict['default'], help='Use the default path to the {} space ("{}")'.format( space, space_dict['default'])) add = spaces_group.add_argument add('-x', '--space-suffix', help= 'Suffix for build, devel, and install space if they are not otherwise explicitly set.' ) devel_group = parser.add_argument_group( 'Devel Space', 'Options for configuring the structure of the devel space.') add = devel_group.add_mutually_exclusive_group().add_argument add('--link-devel', dest='devel_layout', action='store_const', const='linked', default=None, help='Build products from each catkin package into isolated spaces,' ' then symbolically link them into a merged devel space.') add('--merge-devel', dest='devel_layout', action='store_const', const='merged', default=None, help= 'Build products from each catkin package into a single merged devel spaces.' ) add('--isolate-devel', dest='devel_layout', action='store_const', const='isolated', default=None, help= 'Build products from each catkin package into isolated devel spaces.') install_group = parser.add_argument_group( 'Install Space', 'Options for configuring the structure of the install space.') add = install_group.add_mutually_exclusive_group().add_argument add('--install', action='store_true', default=None, help='Causes each package to be installed to the install space.') add('--no-install', dest='install', action='store_false', default=None, help='Disables installing each package into the install space.') add = install_group.add_mutually_exclusive_group().add_argument add('--isolate-install', action='store_true', default=None, help='Install each catkin package into a separate install space.') add('--merge-install', dest='isolate_install', action='store_false', default=None, help='Install each catkin package into a single merged install space.') build_group = parser.add_argument_group( 'Build Options', 'Options for configuring the way packages are built.') add_cmake_and_make_and_catkin_make_args(build_group) return parser
def prepare_arguments(parser): add_context_args( parser) # Adds the --profile option, possibly other things. # Behavior behavior_group = parser.add_argument_group('Behavior') add = behavior_group.add_argument add('-e', '--existing-only', action='store_true', help="Only print paths to existing directories.") add('-r', '--relative', action='store_true', help="Print relative paths instead of the absolute paths.") add('-q', '--quiet', action='store_true', help="Suppress warning output.") # Path options spaces_group = parser.add_argument_group( 'Sub-Space Options', 'Get the absolute path to one of the following locations in the given ' 'workspace with the given profile.') Context.setup_space_keys() add = spaces_group.add_mutually_exclusive_group().add_argument for space, space_dict in Context.SPACES.items(): flags = [space_dict['short_flag'] ] if 'short_flag' in space_dict else [] flags.append('--{}'.format(space_dict['default'])) flags.append('--{}-space'.format(space)) add(*flags, dest='space', action='store_const', const=space, help='Get the path to the {} space.'.format(space)) pkg_group = parser.add_argument_group( 'Package Directories', "Get the absolute path to package directories in the given workspace " "and sub-space. By default this will output paths in the workspace's " "source space. If the -b (--build) flag is given, it will output the " "path to the package's build directory. If the -d or -i (--devel or " "--install) flags are given, it will output the path to the package's " "share directory in that space. If no package is provided, the base " "space paths are printed, e.g. `catkin locate -s` might return " "`/path/to/ws/src` and `catkin locate -s foo` might return " "`/path/to/ws/src/foo`.") pkg_group_mut = pkg_group.add_mutually_exclusive_group() add = pkg_group_mut.add_argument add('package', metavar='PACKAGE', nargs='?', help="The name of a package to locate.") add('--this', action="store_true", help="Locate package containing current working directory.") special_group = parser.add_argument_group( 'Special Directories', 'Get the absolute path to a special catkin location') add = special_group.add_argument add('--shell-verbs', action='store_true', help="Get the path to the shell verbs script.") add('--examples', action='store_true', help="Get the path to the examples directory.") return parser
def prepare_arguments(parser): # Workspace / profile args add_context_args(parser) add = parser.add_argument add('--dry-run', '-n', action='store_true', default=False, help='Show the effects of the clean action without modifying the workspace.') add('--verbose', '-v', action='store_true', default=False, help='Verbose status output.') add('--yes', '-y', action='store_true', default=False, help='Assume "yes" to all interactive checks.') add('--force', '-f', action='store_true', default=False, help='Allow cleaning files outside of the workspace root.') add('--all-profiles', action='store_true', default=False, help='Apply the specified clean operation for all profiles in this workspace.') full_group = parser.add_argument_group( 'Full', 'Remove everything except the source space.') add = full_group.add_argument add('--deinit', action='store_true', default=False, help='De-initialize the workspace, delete all build profiles and' ' configuration. This will also clean subdirectories for all profiles in' ' the workspace.') # Basic group spaces_group = parser.add_argument_group( 'Spaces', 'Clean workspace subdirectories for the selected profile.') Context.setup_space_keys() add = spaces_group.add_argument for space, space_dict in Context.SPACES.items(): if space == 'source': continue flags = [space_dict['short_flag']] if 'short_flag' in space_dict else [] flags.append('--{}'.format(space_dict['default'])) flags.append('--{}-space'.format(space)) add(*flags, dest='spaces', action='append_const', const=space, help='Remove the entire {} space.'.format(space)) # Packages group packages_group = parser.add_argument_group( 'Packages', "Clean products from specific packages in the workspace. Note that" " these options are only available in a `linked` devel space layout." " These options will also automatically enable the --force-cmake" " option for the next build invocation.") add = packages_group.add_argument add('packages', metavar='PKGNAME', nargs='*', help='Explicilty specify a list of specific packages to clean from the build, devel, and install space.') add('--this', dest='clean_this', action='store_true', default=False, help='Clean the package containing the current working directory from the build, devel, and install space.') add('--dependents', '--deps', action='store_true', default=False, help='Clean the packages which depend on the packages to be cleaned.') add('--orphans', action='store_true', default=False, help='Remove products from packages are no longer in the source space. ' 'Note that this also removes packages which are ' 'skiplisted or which contain `CATKIN_IGNORE` marker files.') # Advanced group advanced_group = parser.add_argument_group( 'Advanced', "Clean other specific parts of the workspace.") add = advanced_group.add_argument add('--setup-files', action='store_true', default=False, help='Clear the catkin-generated setup files from the devel and install spaces.') return parser
def prepare_arguments(parser): parser.description = "This verb is used to configure a catkin workspace's\ configuration and layout. Calling `catkin config` with no arguments will\ display the current config and affect no changes if a config already exists\ for the current workspace and profile." # Workspace / profile args add_context_args(parser) behavior_group = parser.add_argument_group('Behavior', 'Options affecting argument handling.') add = behavior_group.add_mutually_exclusive_group().add_argument add('--append-args', '-a', action='store_true', default=False, help='For list-type arguments, append elements.') add('--remove-args', '-r', action='store_true', default=False, help='For list-type arguments, remove elements.') context_group = parser.add_argument_group('Workspace Context', 'Options affecting the context of the workspace.') add = context_group.add_argument add('--init', action='store_true', default=False, help='Initialize a workspace if it does not yet exist.') add = context_group.add_mutually_exclusive_group().add_argument add('--extend', '-e', dest='extend_path', type=str, help='Explicitly extend the result-space of another catkin workspace, ' 'overriding the value of $CMAKE_PREFIX_PATH.') add('--no-extend', dest='extend_path', action='store_const', const='', help='Un-set the explicit extension of another workspace as set by --extend.') add = context_group.add_argument add('--mkdirs', action='store_true', default=False, help='Create directories required by the configuration (e.g. source space) if they do not already exist.') lists_group = parser.add_argument_group( 'Package Build Defaults', 'Packages to include or exclude from default build behavior.') add = lists_group.add_mutually_exclusive_group().add_argument add('--whitelist', metavar="PKG", dest='whitelist', nargs="+", required=False, type=str, default=None, help='Set the packages on the whitelist. If the whitelist is non-empty, ' 'only the packages on the whitelist are built with a bare call to ' '`catkin build`.') add('--no-whitelist', dest='whitelist', action='store_const', const=[], default=None, help='Clear all packages from the whitelist.') add = lists_group.add_mutually_exclusive_group().add_argument add('--blacklist', metavar="PKG", dest='blacklist', nargs="+", required=False, type=str, default=None, help='Set the packages on the blacklist. Packages on the blacklist are ' 'not built with a bare call to `catkin build`.') add('--no-blacklist', dest='blacklist', action='store_const', const=[], default=None, help='Clear all packages from the blacklist.') spaces_group = parser.add_argument_group('Spaces', 'Location of parts of the catkin workspace.') Context.setup_space_keys() for space, space_dict in Context.SPACES.items(): add = spaces_group.add_mutually_exclusive_group().add_argument flags = ['--{}-space'.format(space)] flags.extend([space_dict['short_flag']] if 'short_flag' in space_dict else []) add(*flags, default=None, help='The path to the {} space.'.format(space)) add('--default-{}-space'.format(space), action='store_const', dest='{}_space'.format(space), default=None, const=space_dict['default'], help='Use the default path to the {} space ("{}")'.format(space, space_dict['default'])) add = spaces_group.add_argument add('-x', '--space-suffix', help='Suffix for build, devel, and install space if they are not otherwise explicitly set.') devel_group = parser.add_argument_group( 'Devel Space', 'Options for configuring the structure of the devel space.') add = devel_group.add_mutually_exclusive_group().add_argument add('--link-devel', dest='devel_layout', action='store_const', const='linked', default=None, help='Build products from each catkin package into isolated spaces,' ' then symbolically link them into a merged devel space.') add('--merge-devel', dest='devel_layout', action='store_const', const='merged', default=None, help='Build products from each catkin package into a single merged devel spaces.') add('--isolate-devel', dest='devel_layout', action='store_const', const='isolated', default=None, help='Build products from each catkin package into isolated devel spaces.') install_group = parser.add_argument_group( 'Install Space', 'Options for configuring the structure of the install space.') add = install_group.add_mutually_exclusive_group().add_argument add('--install', action='store_true', default=None, help='Causes each package to be installed to the install space.') add('--no-install', dest='install', action='store_false', default=None, help='Disables installing each package into the install space.') add = install_group.add_mutually_exclusive_group().add_argument add('--isolate-install', action='store_true', default=None, help='Install each catkin package into a separate install space.') add('--merge-install', dest='isolate_install', action='store_false', default=None, help='Install each catkin package into a single merged install space.') build_group = parser.add_argument_group('Build Options', 'Options for configuring the way packages are built.') add_cmake_and_make_and_catkin_make_args(build_group) return parser