[CMake] Curious build output

James Bigler jamesbigler at gmail.com
Wed Oct 5 14:49:39 EDT 2011


What is this extra chatty output from?  I never remember seeing it in VS
2008, but I see it in VS 2010.

>------ Build started: Project: copy_scripts, Configuration: Release x64
------
1>Build started 10/5/2011 12:38:07 PM.
1>InitializeBuildStatus:
1>  Creating "x64\Release\copy_scripts\copy_scripts.unsuccessfulbuild"
because "AlwaysCreate" was specified.
1>FinalizeBuildStatus:
1>  Deleting file "x64\Release\copy_scripts\copy_scripts.unsuccessfulbuild".
1>  Touching "x64\Release\copy_scripts\copy_scripts.lastbuildstate".
1>
1>Build succeeded.

3>------ Build started: Project: ALL_BUILD, Configuration: Release x64
------
3>Build started 10/5/2011 12:38:08 PM.
3>InitializeBuildStatus:
3>  Creating "x64\Release\ALL_BUILD\ALL_BUILD.unsuccessfulbuild" because
"AlwaysCreate" was specified.
3>CustomBuild:
3>  Build all projects
3>FinalizeBuildStatus:
3>  Deleting file "x64\Release\ALL_BUILD\ALL_BUILD.unsuccessfulbuild".
3>  Touching "x64\Release\ALL_BUILD\ALL_BUILD.lastbuildstate".
3>
3>Build succeeded.

I'm using VS 2010 and CMake 2.8.6 (2.8.5 also did this).

When I click "build solution" it always seems to run this, as if VS thinks
that the dependencies aren't met and decides to build it.

Hmm... I wonder if this is related to the bug where we removed the
%(Outputs) from the Outputs field.

C:/code/rtsdk/rtmain/build-64-vs10-c40/tests/Regression/scripts/CMakeFiles/copy_scripts.rule;C:\code\rtsdk\rtmain\build-64-vs10-c40\bin\correctness.rb;C:\code\rtsdk\rtmain\build-64-vs10-c40\bin\performance.rb;C:\code\rtsdk\rtmain\build-64-vs10-c40\bin\run_tests.rb;C:\code\rtsdk\rtmain\build-64-vs10-c40\bin\test_cases.rb;%(AdditionalInputs)

I removed the $(AdditionalInputs), and that didn't seem to make a
difference.

One thing that is curious is that I have this for the Outputs field, but
that doesn't exist anywhere:
C:\code\rtsdk\rtmain\build-64-vs10-c40\tests\Regression\scripts\CMakeFiles\copy_scripts

How is it that we have a build rule that says it generates a particular
output, but the output isn't generated by the rule.

This is what I used to create this target:

foreach( script ${scripts} )
  set( src  "${CMAKE_CURRENT_SOURCE_DIR}/${script}" )
  set( dest "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${script}" )
  list( APPEND dest_files "${dest}" )
  add_custom_command(
    OUTPUT "${dest}"
    COMMAND ${CMAKE_COMMAND} -E copy "${src}" "${dest}"
    MAIN_DEPENDENCY "${src}"
    COMMENT "Copying ${src} to ${dest}"
    VERBATIM
  )
endforeach()

add_custom_target( copy_scripts
  ALL
  DEPENDS ${dest_files}
  )

Note that I have the same problem with the ALL_BUILD target.

James
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20111005/94d5a8d1/attachment.htm>


More information about the CMake mailing list