[CMake] qt .qrc file modifications require two builds

Clinton Stimpson clinton at elemtech.com
Wed Dec 16 18:16:34 EST 2009


On Wednesday 16 December 2009 04:05:22 pm Brad King wrote:
> Clinton Stimpson wrote:
> > It looks like a bug in the Xcode generator.
> > Here's an even simpler example:
> >
> > project(test_xcode)
> >
> > add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/test.h
> >     COMMAND cp ${CMAKE_SOURCE_DIR}/test.h.in ${CMAKE_BINARY_DIR}/test.h
> >     DEPENDS ${CMAKE_SOURCE_DIR}/test.h.in
> >     )
> >
> > include_directories(${CMAKE_BINARY_DIR})
> >
> > add_executable(test_xcode
> >     ${CMAKE_BINARY_DIR}/test.h
> >     ${CMAKE_SOURCE_DIR}/test.h.in
> >     main.cpp)
> >
> > I have to hit build twice if test.h.in is modified.
>
> This is a known limitation, and it is very hard to fix because
> Xcode does not provide real custom command support.  It only
> provides "shell script" build phases which we use to drive a
> Makefile system that has the real custom commands.  Currently
> the projects that CMake generates do not convince Xcode to
> run the shell script build phase at the right time in all cases.
>
> See CMake's BuildDepends test:
>
>  
> http://www.cmake.org/cgi-bin/viewcvs.cgi/Tests/BuildDepends/CMakeLists.txt?
>revision=1.14&root=CMake&view=markup
>
> Note the "HELP_XCODE" blocks.
>
> -Brad

What about adding a custom build phase and insert it before the "Compile 
Sources" build phase?

<http://developer.apple.com/mac/library/documentation/DeveloperTools/Conceptual/XcodeBuildSystem/200-
Build_Phases/bs_build_phases.html>

Clint



More information about the CMake mailing list