Skip to content

XPCF-gRPC-gen does not seem to support -isystem #20

@jim-bcom

Description

@jim-bcom

HOW TO REPRODUCE

  1. Get project and generate a compilation database that contains -isystem
  • git clone https://github.com/SolarFramework/SolARFramework.git -b develop && cd SolARFramework && git checkout be919630e0b6d1192f4278707bdf78453a4ec48e
  • Open QtCreator and open SolARFramework.pro
  • Go to projects tab, and select run for qmake_system()
  • Build project and then generate compilation database: Build -> Run Generator -> Generate Compilation Database
  • The location of the generated compilation database should be indicated in the Genera Messages window. This should be something like ../build-SolARFramework-Desktop_Qt_6_5_3_GCC_64bit-Release/compile_commands.json

The compilation database should be ill-formed as long as the issue b-com-software-basis/builddefs-qmake#13 is not resolved.
To reproduce this bug, you must manually alter the JSON file by replacing -I-isystem/ string by -system/.

  1. Get project that uses XPCF-gRPC-gen on the previous project.
  • git clone https://github.com/SolarFramework/SolARFrameworkGRPCRemote.git -b develop && cd SolARFrameworkGRPCRemote && git checkout 8ca88680ec599d97d3d4d0c51cd69bb5072689ca
  • run generate.sh

EXPECTED BEHAVIOR
Script exits with code 0.

OBSERVED BEHAVIOR

[simple file parser] [info] parsing file '/home/user/dev/SolAR/core/SolARFramework/src/api/reloc/IKeyframeRetriever.cpp'
[preprocessor] [error] In file included from /home/user/dev/SolAR/core/SolARFramework/src/api/reloc/IKeyframeRetriever.cpp: 17:
[preprocessor] [error] In file included from /home/user/dev/SolAR/core/SolARFramework/interfaces/api/reloc/IKeyframeRetriever.h: 20:
[preprocessor] [error] In file included from /home/user/dev/SolAR/core/SolARFramework/interfaces/datastructure/Keyframe.h: 22:
[preprocessor] [critical] /home/user/dev/SolAR/core/SolARFramework/interfaces/datastructure/GeometryDefinitions.h:22: 'xpcf/xpcf.h' file not found

NOTES

  • XPCF headers directory is specified by the compilation database as
"-isystem/home/jmhenaff/.remaken/packages/linux-gcc/xpcf/2.7.0/interfaces",

after the manual find'n replace that removes the erroneous -I-isystem/ part.

  • If all occurences of -isystem are replaced by -I, the project compiles successfully.

OS: Linux Ubuntu 22.04
XPCF: 2.7.0 (static)
remaken: 1.10.0
Qt Creator: 11.0.2
Qt: 6.4.3

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions