Hi,

I'm using the following code to copy header files from the source tree into the build tree, on the way configuring config.h:

#######################################################################
# Copy includes to build directory, generating config.h
#######################################################################
FILE(GLOB_RECURSE FILES RELATIVE
    "${CMAKE_SOURCE_DIR}/include"
    "${CMAKE_SOURCE_DIR}/include/*")
FOREACH(FILE ${FILES})
    IF (${FILE} MATCHES "\\.h(pp)?\$")
        IF (${FILE} MATCHES "config\\.h\$")
            MESSAGE("Configuring ${FILE}")
            CONFIGURE_FILE(
                ${CMAKE_SOURCE_DIR}/include/${FILE}
                ${CMAKE_BINARY_DIR}/include/${FILE}
                ESCAPE_QUOTES
                @ONLY)
        ELSE (${FILE} MATCHES "config\\.h\$")
            MESSAGE("Copying ${FILE}")
            CONFIGURE_FILE(
                ${CMAKE_SOURCE_DIR}/include/${FILE}
                ${CMAKE_BINARY_DIR}/include/${FILE}
                COPYONLY)
        ENDIF (${FILE} MATCHES "config\\.h\$")
        GET_FILENAME_COMPONENT(DIR include/${FILE} PATH)
        INSTALL(FILES ${CMAKE_BINARY_DIR}/include/${FILE}
            DESTINATION ${DIR})
    ENDIF (${FILE} MATCHES "\\.h(pp)?\$")
ENDFOREACH(FILE ${FILES})

This works fine under Linux, but with VS 2008, I always get prompted to reload the project files after the headers have been copied. If I only configure the config.h, or if I remove the whole copying step, it works fine.

Sometimes the error comes from the parallel build feature of VS. In that case two CMake instance run at the same time and try to copy the files.

But even if I disable the parallel build, CMake will run again and again at different points during the build, every time prompting to reload the project.

The message before CMake runs is: "CMake is re-running due to explicit user request.", which is strange, because I certainly did not request it to be run.

Any help in solving this would be greatly appreciated!

Regards,
 Mika

_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to