Comments (7)
I dump all properties for Qt5::Gui
and one from them:
Qt5::Gui INTERFACE_INCLUDE_DIRECTORIES = /usr/include/qt5/;/usr/include/qt5/QtGui;/usr/include
Also I opened CMake sources. They exclude /usr/include
. https://github.com/Kitware/CMake/blob/master/Source/cmLocalGenerator.cxx#L964
from cmakepchcompiler.
@drizt Hi, thanks for the root cause analysis. Can you please let me know if removing /usr/include
from Qt's INTERFACE_INCLUDE_DIRECTORIES
fixes the problem? If yes, I believe it is Qt to be blamed not CMakePCHCompiler.
Apparently CMake there at https://github.com/Kitware/CMake/blob/master/Source/cmLocalGenerator.cxx#L964 hardcodes some bugfix, which is obviously not affecting CXXPCH
& CPCH
derived PCH languages.
from cmakepchcompiler.
Yes. For Qt5 I use such workaround:
get_target_property(Qt5GuiIncDirs Qt5::Gui INTERFACE_INCLUDE_DIRECTORIES)
list(REMOVE_ITEM Qt5GuiIncDirs "/usr/include")
set_target_properties(Qt5::Gui PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${Qt5GuiIncDirs}")
And this for Qt4:
get_target_property(Qt4GuiIncDirs Qt4::QtGui INTERFACE_INCLUDE_DIRECTORIES)
list(REMOVE_ITEM Qt4GuiIncDirs "/usr/include")
set_target_properties(Qt4::QtGui PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${Qt4GuiIncDirs}")
get_target_property(Qt4CoreIncDirs Qt4::QtCore INTERFACE_INCLUDE_DIRECTORIES)
list(REMOVE_ITEM Qt4CoreIncDirs "/usr/include")
set_target_properties(Qt4::QtCore PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${Qt4CoreIncDirs}")
list(REMOVE_ITEM QT_INCLUDE_DIR "/usr/include")
from cmakepchcompiler.
You use non-standard lang for pch header. It's very rare case. I think this problem can happens in other cases not only mine. Maybe this information should be add to README or there is a way to workaround it in your CMakePCHCompiler?
from cmakepchcompiler.
Open an issue on Qt bugtracker.
from cmakepchcompiler.
Okay, thanks for the update. Do you think we should keep this issue open or we can close it now?
from cmakepchcompiler.
This was very likely fixed by fa975ba and looks similar to #36, anyways the example in Tests/Issue36_QTFramework
now works.
from cmakepchcompiler.
Related Issues (20)
- Ad: Much better version exists in pull-request #13 HOT 1
- clang from llvm does not seem to work on osx HOT 1
- Investigate and clarify better /Z7 necessity for MSVC 2010 and higher when using PCH HOT 8
- TYPE is c++-header? What is this for anyway? HOT 2
- Wrong C++ standard - GNU extensions enabled in PCH file but disabled in CMake HOT 3
- Can't find PCH file during build. HOT 8
- Does not work when target is linked against "rich" targets declaring their own include directories and defines
- Doesn't work on linux cmake 3.10.2 HOT 3
- Doesn't work with multiple language targets. HOT 9
- Static libraries not supported HOT 1
- pch.h generates without c++ standard HOT 2
- Compile your code with -fPIC or -fPIE HOT 4
- Improve documentation about auto-include "pch.h" HOT 1
- -iframework flag is not applied for pch target HOT 6
- Alternative to separate CXXPCH compiler definition HOT 8
- PCH breaks clang code model in Qt Creator.
- OpenGL::GL causes build failure HOT 2
- Setting CMAKE_CXX_STANDARD leads to error HOT 1
- Comparison between CMakePCHCompiler and CMake's new implementation HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cmakepchcompiler.