[CMake] CMake + UIC files -- Is this a bug with CMake or with me?
Andreas Pakulat
apaku at gmx.de
Tue Jul 20 14:00:36 EDT 2010
On 20.07.10 12:06:11, kent williams wrote:
> This is with cmake version 2.8.1 on OS X 10.6.
>
> I had a project using CMake and Qt. As long as I only used one QT
> Designer-generated .ui file, everything worked perfectly. When I added
> as second UI file, things no longer worked. I was working from the
> CMake + Qt4 examples on the web.
>
> There are two problems:
>
> 1. If you give a list of more than one header file as the dependency
> on set_source_files_properties, it throws a configure-time error:
>
>
> CMake Error at CMakeLists.txt:33 (set_source_files_properties):
> set_source_files_properties called with incorrect number of arguments.
>
> 2. If I work around that error (by setting each header dependency
> individually), then only one of the UI files seems to get processed to
> create the corresponding C++ header file:
>
> /scratch/kent/qtcmake/src/QTCMake.cxx:4:35: error:
> ui_qvtkpropertydialog.h: No such file or directory
>
> I've put a succinct example illustrating the problem I'm having here:
> http://www.cornwarning.com/xfer/QTCmakeTest.tar.gz
That url gives a 404.
> The CMakeLists.txt file is as follows:
>
> project(QTCMake)
> cmake_minimum_required(VERSION 2.8)
>
> #uses QT4 and associated CMake Macros
> find_package( Qt4 REQUIRED )
> include(${QT_USE_FILE})
> set(QT_USE_QTXML 1)
>
>
> #dummy test program
> set(QTCMake_SRC QTCMake.cxx)
>
>
> # list of QT Designer-generated XML designs
> set(QTCMake_UIS
> qvtkpropertydialog.ui qimagetransformdialog.ui
> )
>
> #
> # this is supposed to wrap all the UI files
> QT4_WRAP_UI(UIHeaders ${QTCMake_UIS} )
> include_directories(${CMAKE_CURRENT_BINARY_DIR})
>
> add_executable(QTCMake ${QTCMake_SRC})
Usually you'd also add the UIHeaders to the list of sources. I'm using
qt4_wrap_ui+qt4_automoc and add_executable and nothing else and
ui-headers are being generated just fine.
Andreas
--
Your depth of comprehension may tend to make you lax in worldly ways.
More information about the CMake
mailing list