View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0015724CMakeCMakepublic2015-09-02 19:412016-02-01 09:10
ReporterJeremie Delaitre 
Assigned ToBill Hoffman 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionno change required 
PlatformlinuxOSfedoraOS Version22
Product VersionCMake 3.3 
Target VersionFixed in Version 
Summary0015724: Unable to specify iwyu options
DescriptionI am trying the new include-what-you-use support of CMake (3.3.0).
It is working fine when I just run iwyu, but I'd like to specify some additional options (most importantly "-Xiwyu --mapping-file=...").

I could not find a way to make it work. I tried to specify the options with: set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE "/usr/bin/iwyu -Xiwyu --mapping-file=...") without success (I tried other iwyu options too).

The command line generated looks like:

FAILED: /usr/bin/cmake -E __run_iwyu --iwyu="/usr/bin/include-what-you-use -Xiwyu --mapping_file=<path-to-mapping-file>" -- <path-to-compiler>/g++ --sysroot=<path-to-sysroot> <other compiler options> <file to compile>
Error running '/usr/bin/include-what-you-use -Xiwyu --mapping_file="<path-to-mapping-file>"': No such file or directory

I tried to change the command by hand (e.g. moving the iwyu option after the "--") but it did not work neither.

Any hint?
Additional Information- CMake 3.3.0
- include-what-you-use 0.3 based on clang version 3.5.0 (tags/RELEASE_350/final)
TagsNo tags attached.
Attached Files

 Relationships

  Notes
(0039369)
Bill Hoffman (manager)
2015-09-03 13:22

http://www.cmake.org/cmake/help/v3.3/prop_tgt/LANG_INCLUDE_WHAT_YOU_USE.html [^]

"Specify a ;-list containing a command line for the include-what-you-use tool."

So, this should work:
set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE "/usr/bin/iwyu;-Xiwyu;--mapping-file=...")
(0039370)
Brad King (manager)
2015-09-03 13:31

The set() command constructs a ;-list from its arguments so one can simply write:

 set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE /usr/bin/iwyu -Xiwyu --mapping-file=...)
(0039371)
Jeremie Delaitre (reporter)
2015-09-03 17:19

Both way actually works! The only one not working was the one I was using (i.e. quoting the whole command, using spaces to separate args).

I did not quite understand the documentation, ";-list" was not very meaningful for me (next time, I'll read the linked page more carefully...), but now I understand what you meant!

Sorry for the noise.
(0040389)
Robert Maynard (manager)
2016-02-01 09:10

Closing resolved issues that have not been updated in more than 4 months.

 Issue History
Date Modified Username Field Change
2015-09-02 19:41 Jeremie Delaitre New Issue
2015-09-03 13:18 Bill Hoffman Assigned To => Bill Hoffman
2015-09-03 13:18 Bill Hoffman Status new => assigned
2015-09-03 13:22 Bill Hoffman Note Added: 0039369
2015-09-03 13:31 Brad King Note Added: 0039370
2015-09-03 17:19 Jeremie Delaitre Note Added: 0039371
2015-09-08 09:31 Brad King Status assigned => resolved
2015-09-08 09:31 Brad King Resolution open => no change required
2016-02-01 09:10 Robert Maynard Note Added: 0040389
2016-02-01 09:10 Robert Maynard Status resolved => closed


Copyright © 2000 - 2018 MantisBT Team