View Issue Details [ Jump to Notes ] | [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0012258 | CMake | CMake | public | 2011-06-09 00:42 | 2011-11-11 10:45 | ||||
Reporter | Campbell Barton | ||||||||
Assigned To | Brad King | ||||||||
Priority | normal | Severity | minor | Reproducibility | always | ||||
Status | closed | Resolution | fixed | ||||||
Platform | x86-64 | OS | linux | OS Version | arch/latest | ||||
Product Version | |||||||||
Target Version | CMake 2.8.5 | Fixed in Version | CMake 2.8.5 | ||||||
Summary | 0012258: include_directories(SYSTEM ...) not functional with GNU Makefiles | ||||||||
Description | There were some system headers giving warnings compiling on linux, since I like to have warnings as errors, and not edit system headers, I used: include_directories(SYSTEM dir1 dir2 ...) ... for system directories only. However this does not result in -isystem being used in C because GNU.cmake does not set: set(CMAKE_INCLUDE_SYSTEM_FLAG_C "-isystem ") ... as it does for C++. I tried adding this directly after the project(), call (beforehand it fails to have any effect): if(CMAKE_COMPILER_IS_GNUCC) if(NOT APPLE) set(CMAKE_INCLUDE_SYSTEM_FLAG_C "-isystem ") endif() endif() So now it almost works, but I've noticed that If "include_directories(SYSTEM" is called after a non system include, ALL includes then use -isystem. Putting "include_directories(SYSTEM" first mostly works out OK, but I found a few cases where the order isn't so easy to set in our own CMakeLists.txt and still incorrectly uses -isystem where it shouldn't. Also found using the BEFORE / AFTER arguments to include_directories( doesn't make any difference to the use of -isystem. Is this a known problem or is there a way to get this working? | ||||||||
Tags | No tags attached. | ||||||||
Attached Files | |||||||||
Relationships | |
Relationships |
Notes | |
(0026829) Campbell Barton (reporter) 2011-06-11 05:48 |
Update, ignore the order of calling include_directories(SYSTEM / include_directories(, this was an error on my part. So the only problem is with CMAKE_INCLUDE_SYSTEM_FLAG_C not being set According to Michael Hertling, GNU.cmake set(CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-isystem ") should be replaced with. set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-isystem ") |
(0026851) Brad King (manager) 2011-06-13 17:57 |
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=33f5a83a [^] |
(0027773) David Cole (manager) 2011-11-11 10:45 |
Closing resolved issues that have not been updated in more than 4 months. |
Notes |
Issue History | |||
Date Modified | Username | Field | Change |
2011-06-09 00:42 | Campbell Barton | New Issue | |
2011-06-11 05:48 | Campbell Barton | Note Added: 0026829 | |
2011-06-13 17:52 | Brad King | Assigned To | => Brad King |
2011-06-13 17:52 | Brad King | Status | new => assigned |
2011-06-13 17:57 | Brad King | Note Added: 0026851 | |
2011-06-13 17:57 | Brad King | Status | assigned => resolved |
2011-06-13 17:57 | Brad King | Resolution | open => fixed |
2011-06-18 07:46 | David Cole | Fixed in Version | => CMake 2.8.5 |
2011-06-18 07:46 | David Cole | Target Version | => CMake 2.8.5 |
2011-11-11 10:45 | David Cole | Note Added: 0027773 | |
2011-11-11 10:45 | David Cole | Status | resolved => closed |
Issue History |
Copyright © 2000 - 2018 MantisBT Team |