Well, _I_ and using make and nmake... So that's not a solution either. It really just needs to be fixed properly!

On Sat, 23 May 2015, Yue Liu wrote:


Ninja dosen't generate that quoted include line, for the short term, how about 
stop supporting GNU Make, tell
distro maintainers to generate ninja target when running Cmake?

On May 23, 2015 5:06 AM, "Aleix Pol" <aleix...@kde.org> wrote:
      On Sat, May 23, 2015 at 11:51 AM, Boudewijn Rempt <b...@valdyas.org> 
wrote:
      > Sorry for the extensive cross-posting in advance, please when replying, 
do a
      > reply-all.
      >
      > Just so everyone is on the same page: Vc is a template library that 
makes it
      > easy to build vectorized code using a single source file. Krita uses Vc 
to
      > optimize blending colors, creating masks and much more. Krita uses the 
most
      > recent Vc release, 0.7.4: http://code.compeng.uni-frankfurt.de/news/27
      >
      > We're currently porting Krita to Qt5 and KF5 and the way KF5 and Vc 
handle
      > include directories is a big roadblock for us:
      > https://git.reviewboard.kde.org/r/123179/ .
      >
      > In a nutshell: Vc builds many different object files from single cpp 
file.
      > It does this by creating a custom command for each target vectorization
      > extension. To do that, it needs to access the contents of
      > INCLUDE_DIRECTORIES, like this (in VcMacros.cmake:
      > 
http://code.compeng.uni-frankfurt.de/projects/vc/repository/entry/cmake/VcMacros.cmake?rev=0.7)
      >
      >    get_directory_property(_inc INCLUDE_DIRECTORIES)
      >    foreach(_i ${_inc})
      >       list(APPEND _flags "-I${_i}")
      >    endforeach()
      >
      > In the end the command is generated like this:
      >
      >          add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_out}
      >             COMMAND ${CMAKE_CXX_COMPILER} ${_flags} ${_extra_flags}
      >             -DVC_IMPL=${_impl}
      >             ${_outfile_flag}${_out}
      > ${CMAKE_CURRENT_SOURCE_DIR}/${_vc_compile_src}
      >             MAIN_DEPENDENCY 
${CMAKE_CURRENT_SOURCE_DIR}/${_vc_compile_src}
      >             IMPLICIT_DEPENDS CXX
      > ${CMAKE_CURRENT_SOURCE_DIR}/${_vc_compile_src}
      >             COMMENT "Building CXX object ${_out}"
      >             WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
      >             VERBATIM
      >             )
      > KF5 uses cmake generator expressions to derive the include directories 
from
      > the target_link_libraries lines. This means that when we try to build 
our
      > per-extensions object files we get this:
      >
      >
      >
      >     [  0%] Building CXX object
      > KoOptimizedCompositeOpFactoryPerArch_AVX.cpp.o
      >     cd /home/boud/kde/build/calligra/libs/pigment && /usr/bin/c++ 
-std=c++0x
      > -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts
      > -Wformat-security -Wno-long-long -Wpointer-arith -Wundef 
-Wnon-virtual-dtor
      > -Woverloaded-virtual -Werror=return-type 
-D__GNUC_UBUNTU_VERSION__=0xf040a
      > -Wabi -fabi-version=0 -ffp-contract=fast -mtune=core2 -fPIC
      > -I/home/boud/kde/src/calligra/interfaces -I/home/boud/kde/build/calligra
      > -I/home/boud/kde/src/calligra -I/home/boud/kde/src/calligra/libs/version
      > -I/home/boud/kde/build/calligra/libs/version
      > -I/home/boud/kde/src/calligra/libs/koplugin
      > -I/home/boud/kde/src/calligra/libs/version
      > -I/home/boud/kde/build/calligra/libs/version
      > -I/home/boud/kde/src/calligra/libs/pigment
      > -I/home/boud/kde/src/calligra/libs/pigment/compositeops
      > -I/home/boud/kde/src/calligra/libs/pigment/resources -I/usr/include
      > -I/usr/include -I/usr/include/OpenEXR -I/usr/include -mavx 
-DVC_IMPL=AVX -c
      > -oKoOptimizedCompositeOpFactoryPerArch_AVX.cpp.o
      > 
/home/boud/kde/src/calligra/libs/pigment/compositeops/KoOptimizedCompositeOpFactoryPerArch.cpp
      >
      >
      
/home/boud/kde/src/calligra/libs/pigment/compositeops/KoOptimizedCompositeOpFactoryPerArch.cpp:22:19:
      > fatal error: QString: No such file or directory
      >      #include <QString>
      >                        ^
      >     compilation terminated.
      >     libs/pigment/CMakeFiles/pigmentcms.dir/build.make:72: recipe for 
target
      > 'libs/pigment/KoOptimizedCompositeOpFactoryPerArch_AVX.cpp.o' failed
      >
      > On other words, INCLUDE_DIRECTORIES is empty, there's no Qt5, no Kf5 to 
be
      > found.
      >
      > If we manually set include directories like this:
      >
      > if (HAVE_VC)
      >     message(".>>>>>>>>>>>>" ${KDE4_INCLUDES})
      >     include_directories(${KDE4_INCLUDES} ${Qt5Core_INCLUDE_DIRS}
      > ${Qt5Gui_INCLUDE_DIRS} ${Qt5Xml_INCLUDE_DIRS} ${PIGMENT_INCLUDES}
      > ${Boost_INCLUDE_DIR})
      > endif()
      >
      > We end up with the entire include line for the contents of KDE4_INCLUDES
      > ($<TARGET_PROPERTY:KF5::KDELibs4Support,INTERFACE_INCLUDE_DIRECTORIES>)
      > expanded to a string with quotes around it:
      >
      >    [  0%] Building CXX object 
KoOptimizedCompositeOpFactoryPerArch_AVX.cpp.o
      >     cd /home/boud/kde/build/calligra/libs/pigment && /usr/bin/c++ 
-std=c++0x
      > -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts
      > -Wformat-security -Wno-long-long -Wpointer-arith -Wundef 
-Wnon-virtual-dtor
      > -Woverloaded-virtual -Werror=return-type 
-D__GNUC_UBUNTU_VERSION__=0xf040a
      > -Wabi -fabi-version=0 -ffp-contract=fast -mtune=core2 -fPIC
      > -I/home/boud/kde/src/calligra/interfaces -I/home/boud/kde/build/calligra
      > -I/home/boud/kde/src/calligra -I/home/boud/kde/src/calligra/libs/version
      > -I/home/boud/kde/build/calligra/libs/version
      
>"-I/usr/include/KF5/KDELibs4Support;/usr/include/KF5/KDELibs4Support/KDE;/usr/include/KF5;/usr/include/x86_64-li
nux-gnu/qt5/;/usr/include/x86_64-linux-gnu/qt5/QtWidgets;/usr/include/x86_64-linux-gnu/qt5/;/usr/include/x86_64-
linux-gnu/qt5/QtGui;/usr/include/x86_64-linux-gnu/qt5/;/usr/include/x86_64-linux-gnu/qt5/QtCore;/usr/lib/x86_64-
linux-gnu/qt5//mkspecs/linux-g++-64;/usr/include/x86_64-linux-gnu/qt5/;/usr/include/x86_64-linux-gnu/qt5/QtDBus;
/usr/include/x86_64-linux-gnu/qt5/;/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport;/usr/include/KF5/KCoreAddons
;/usr/include/KF5;/usr/include/KF5/KCrash;/usr/include/KF5;/usr/include/KF5/KWidgetsAddons;/usr/include/KF5;/usr
/include/KF5/KConfigCore;/usr/include/KF5;/usr/include/KF5/KConfigWidgets;/usr/include/KF5;/usr/include/KF5/KCod
ecs;/usr/include/KF5;/usr/include/KF5/KConfigGui;/usr/include/KF5;/usr/include/x86_64-linux-gnu/qt5/;/usr/includ
      
e/x86_64-linux-gnu/qt5/QtXml;/usr/include/KF5/KAuth;/usr/include/KF5;/usr/include/KF5/KIOCore;
      
>/usr/include/KF5;/usr/include/KF5/KService;/usr/include/KF5;/usr/include/KF5/KIOFileWidgets;/usr/include/KF5;/us
r/include/KF5/KIOWidgets;/usr/include/KF5;/usr/include/KF5/KJobWidgets;/usr/include/KF5;/usr/include/x86_64-linu
x-gnu/qt5/;/usr/include/x86_64-linux-gnu/qt5/QtNetwork;/usr/include/KF5/KCompletion;/usr/include/KF5;/usr/includ
e/KF5/KBookmarks;/usr/include/KF5;/usr/include/KF5/KItemViews;/usr/include/KF5;/usr/include/KF5/KXmlGui;/usr/inc
lude/KF5;/usr/include/KF5/Solid;/usr/include/KF5;/usr/include/KF5/KI18n;/usr/include/KF5;/usr/include/KF5/KNotif
ications;/usr/include/KF5;/usr/include/KF5/KIconThemes;/usr/include/KF5;/usr/include/KF5/KWindowSystem;/usr/incl
ude;/usr/include;/usr/include/KF5;/usr/include/KF5;/usr/include/KF5/KGuiAddons;/usr/include/KF5;/usr/include/KF5
/KUnitConversion;/usr/include/KF5;/usr/include/KF5/KTextWidgets;/usr/include/KF5;/usr/include/KF5/SonnetUi;/usr/
      include/KF5;/usr/include/KF5/KParts;/usr/include/KF5"
      > -I/usr/include/x86_64-linux-gnu/qt5
      > -I/usr/include/x86_64-linux-gnu/qt5/QtCore
      > -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64
      > -I/usr/include/x86_64-linux-gnu/qt5
      > -I/usr/include/x86_64-linux-gnu/qt5/QtGui
      > -I/usr/include/x86_64-linux-gnu/qt5/QtCore
      > -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64
      > -I/usr/include/x86_64-linux-gnu/qt5
      > -I/usr/include/x86_64-linux-gnu/qt5/QtXml
      > -I/usr/include/x86_64-linux-gnu/qt5/QtCore
      > -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64
      > -I/home/boud/kde/src/calligra/libs/koplugin
      > -I/home/boud/kde/src/calligra/libs/version
      > -I/home/boud/kde/build/calligra/libs/version
      > -I/home/boud/kde/src/calligra/libs/pigment
      > -I/home/boud/kde/src/calligra/libs/pigment/compositeops
      > -I/home/boud/kde/src/calligra/libs/pigment/resources -I/usr/include
      > -I/usr/include -I/usr/include/OpenEXR -I/usr/include -mavx 
-DVC_IMPL=AVX -c
      > -oKoOptimizedCompositeOpFactoryPerArch_AVX.cpp.o
      > 
/home/boud/kde/src/calligra/libs/pigment/compositeops/KoOptimizedCompositeOpFactoryPerArch.cpp
      >     In file included from
      > /home/boud/kde/src/calligra/libs/pigment/DebugPigment.h:23:0,
      >                      from
      > 
/home/boud/kde/src/calligra/libs/pigment/compositeops/KoOptimizedCompositeOpFactoryPerArch.cpp:23:
      >     /home/boud/kde/src/calligra/libs/pigment/pigment_export.h:24:23: 
fatal
      > error: kdemacros.h: No such file or directory
      >      #include <kdemacros.h>
      >                            ^
      >     compilation terminated.
      >     libs/pigment/CMakeFiles/pigmentcms.dir/build.make:72: recipe for 
target
      > 'libs/pigment/KoOptimizedCompositeOpFactoryPerArch_AVX.cpp.o' failed
      >
      >
      > And that's where I'm totally stuck. It seems the cmake 3.0/kf5/e-c-m (I
      > don't know where this system came from) is incompatible with a key 
libary
      > that I have to use. We can't drop using Vc, we cannot move to a newer
      > release of Vc and I can't see a way to replicate the functionality of
      > vc_compile_for_all_implementations in our own cmake code either, so 
please
      > help!
      >
      > Boudewijn
      >
      >
      >
      >
      > _______________________________________________
      > Kde-buildsystem mailing list
      > kde-buildsys...@kde.org
      > https://mail.kde.org/mailman/listinfo/kde-buildsystem
      >

      Including kde-windows, they are more likely to know what's going on...

      Aleix
      _______________________________________________
      calligra-devel mailing list
      calligra-de...@kde.org
      https://mail.kde.org/mailman/listinfo/calligra-devel


_______________________________________________
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel

Reply via email to