[CMake] CMake + UIC files -- Is this a bug with CMake or with me?

kent williams nkwmailinglists at gmail.com
Tue Jul 20 16:43:16 EDT 2010


I see what you're doing and I have two points:

1. You only have one file in ${${PROJECT_HAME}_UIS} -- what happens if
you create a second file with Designer and add it to this project?
Believe me, I read through Qt4Macros.cmake, and what's there should
work, but in my case it most definitely does not.

2. I don't get adding '*.h' files to the source list in add_executable
does anything.  It doesn't apparently generate a recipe to make an
object file from a header.

On Tue, Jul 20, 2010 at 3:26 PM, John Drescher <drescherjm at gmail.com> wrote:
> On Tue, Jul 20, 2010 at 4:09 PM, kent williams
> <nkwmailinglists at gmail.com> wrote:
>> Thanks.  I don't know if you've actually tried the project I put up to
>> illustrate the project, but while what you say makes sense, it doesn't
>> appear to fix the problem.
>>
>> It's frustrating for me; apparently, though I'm following exactly the
>> pattern that's reputed to work, CMake isn't generating the Makefile
>> code to deal with the second .ui file.
>>
>> Either there's something wrong in CMake, or I'm somehow missing
>> something in what should be a really simple CMakeLists.txt.
>>
>
> I do not do globbing. I just add the result of QT4_WRAP_UI to my target
>
>
> SET( ${PROJECT_NAME}_SRCS
>        ./src/main.cxx
>        ./src/mainwindow.cxx
>        ./src/textwidget.cxx
>        ./src/upmcLungApp.cxx
>        ./src/AppSettingsDlg.cxx
>        ./src/laFileMenu.cxx
>  )
>
> SET( ${PROJECT_NAME}_MOC_HDR
>        ./Include/mainwindow.h
>        ./Include/textwidget.h
>        ./Include/upmcLungApp.h
>        ./Include/AppSettingsDlg.h
>        ./Include/laFileMenu.h
> )
>
> SET( ${PROJECT_NAME}_HDRS
>        ./Include/ClickedPointEvent.h
>        ./Include/${PROJECT_NAME}Constants.h
>        ./Include/sliceOrientation.h
> )
>
> #########################################################################################
>
> MSVC_PCH_SUPPORT(${PROJECT_NAME})
>
> # some .ui files
> SET( ${PROJECT_NAME}_UIS
>        ./rc/AppSettings.ui
> )
>
> # and finally an resource file
> SET( ${PROJECT_NAME}_RCS
>        ./rc/${PROJECT_NAME}.qrc
> )
>
> # this command will generate rules that will run rcc on all files from
> ${PROJECT_NAME}_RCS
> # in result ${PROJECT_NAME}_RC_SRCS variable will contain paths to
> files produced by rcc
> QT4_ADD_RESOURCES( ${PROJECT_NAME}_RC_SRCS ${${PROJECT_NAME}_RCS} )
>
> # and finally this will run moc:
> QT4_WRAP_CPP( ${PROJECT_NAME}_MOC_SRCS ${${PROJECT_NAME}_MOC_HDR} )
>
> # this will run uic on .ui files:
> QT4_WRAP_UI( ${PROJECT_NAME}_UI_HDRS ${${PROJECT_NAME}_UIS} )
>
> SOURCE_GROUP("Generated" FILES
>          ${${PROJECT_NAME}_RC_SRCS}
>          ${${PROJECT_NAME}_MOC_SRCS}
>          ${${PROJECT_NAME}_UI_HDRS}
> )
>
> SOURCE_GROUP("Resources" FILES
>          ${${PROJECT_NAME}_UIS}
>          ${${PROJECT_NAME}_RCS}
> )
>
> #########################################################################################
>
>
> ADD_EXECUTABLE( ${PROJECT_NAME} ${${PROJECT_NAME}_SRCS}
> ${${PROJECT_NAME}_MOC_SRCS} ${${PROJECT_NAME}_HDRS}
>                ${${PROJECT_NAME}_MOC_HDR} ${${PROJECT_NAME}_RC_SRCS}
> ${${PROJECT_NAME}_UI_HDRS}
> )
>
>
> Right now I am doing all of my development in Visual Studio. In the
> past this project did build under linux.
>
> John
>


More information about the CMake mailing list