Skip to content

header "relative/path/to/header.h" in module.modulemap not honored by rootcling #13689

Open
@greenc-FNAL

Description

@greenc-FNAL

Check duplicate issues.

  • Checked for duplicates

Description

With a simple module.modulemap along the lines of:

module "critic_test_art_sampling-input_dict" {
  requires cplusplus
  header "canvas/Persistency/Common/Sampled.h"
  export *
  link "libcanvas.so"
}

The specified header is not found—as it would be in C++ source—even in the presence of

-I<path/to/parent/of/relative/path>

on the rootcling command line.

Reproducer

  1. Put a header from which to make a ROOT PCM in a directory not under the intended rootcling execution directory.
  2. Make a suitable module.modulemap specifying the location of the header relative to an ancestor directory not the immediate parent.
  3. Invoke rootcling to produce the PCM using the command line option -I<ancestor>
  4. Observe the failure to find the header.

ROOT version

   ------------------------------------------------------------------
  | Welcome to ROOT 6.28/04                        https://root.cern |
  | (c) 1995-2022, The ROOT Team; conception: R. Brun, F. Rademakers |
  | Built for linuxx8664gcc on May 08 2023, 02:44:07                 |
  | From tags/v6-28-04@v6-28-04                                      |
  | With g++ (GCC) 13.1.0                                            |
  | Try '.help'/'.?', '.demo', '.license', '.credits', '.quit'/'.q'  |
   ------------------------------------------------------------------

Installation method

UPS

Operating system

SL7

Additional context

See also #13675.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions