[ 
https://issues.apache.org/jira/browse/DISPATCH-836?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17315058#comment-17315058
 ] 

Jiri Daněk commented on DISPATCH-836:
-------------------------------------

bq. Proton includes should be delimited with angle brackets. In the /src 
directory all the includes already use the angle brackets so there is no change 
needed there. In the /tests directory there are many instances of proton 
inclusions with quoted file names and these should be changed.

I think quotes should be used in case of Proton, too. That's because the user 
has the option to configure Proton location during {{cmake ..}} configure, 
using {{-DProton_DIR}}. If user specifies a custom location, but then includes 
from the system location are used instead, that's an error, too. Same for all 
the other dependencies, libwebsockets, libnghttp2, ...

IMO the only includes that should use angle brackets are cstdlib ones.

(In the PR, I am changing Dispatch includes to use quotes; I am not changing 
any other includes.)

> Source file organization suffers from include hell
> --------------------------------------------------
>
>                 Key: DISPATCH-836
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-836
>             Project: Qpid Dispatch
>          Issue Type: Improvement
>          Components: Container, Router Node, Routing Engine
>    Affects Versions: 0.8.0
>            Reporter: Charles E. Rolke
>            Assignee: Jiri Daněk
>            Priority: Minor
>             Fix For: 1.16.0
>
>
> Adding an innocent looking #include to some module may unleash a barrage of 
> errors instead of simply defining the header's interface. Reordering and/or 
> adding more #include statements is required to get it right.
> A good way to address this is to make certain that each module.h file 
> compiles cleanly on its own. It is tedious and pretty unrewarding to check 
> each file. One strategy to address this problem is for each module to 
> _#include module.h_ as the first include\[1\]. Then every compile checks that 
> the module.h files compiles cleanly. This strategy is recommended by 
> astitcher and used by qpid-cpp with great results.
> \[1\] One exception to this rule is including the #include Python.h ahead of 
> all others. This is a requirement.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to