[CMake] Ninja: It's ninja issue, or CMake problem?

Peter Kümmel syntheticpp at gmx.net
Tue Sep 25 09:26:38 EDT 2012


On 25.09.2012 14:54, Loaden wrote:
> Bug reported in here: http://public.kitware.com/Bug/view.php?id=13559

Yes, looks like a bug. Good catch!

For "OBJECT_DEPENDS"  only "order only" dependency is used.

>
> 2012/9/25 Loaden <loaden at gmail.com>
>
>> Sorry, It's wrong. Here is the correct function:
>> function(use_msvc_precompiled_header target sources)
>>
>>      if(NOT ${target}_PCH_BINARY_FILE)
>>
>>          message(FATAL_ERROR "[${target}] Precompiled binary does not exist")
>>
>>          return()
>>
>>      endif()
>>
>>      get_target_property(targetSources ${target} SOURCES)
>>
>>      list(FIND targetSources ${${${target}_PCH_SOURCE_VAR}} result)
>>
>>      if(result EQUAL -1)
>>
>>          message(FATAL_ERROR "[${target}] Please add '\${${${target}_PCH_SOURCE_VAR}}' or '${${${target}_PCH_SOURCE_VAR}}' to target")
>>
>>          return()
>>
>>      endif()
>>
>>      set(pchBinaryFile ${${target}_PCH_BINARY_FILE})
>>
>> *    foreach(src ${sources})*
>>
>> *        set_source_files_properties(${src} PROPERTIES*
>>
>> *            COMPILE_FLAGS "/Yu\"${pchBinaryFile}\" /FI\"${pchBinaryFile}\" /Fp\"${pchBinaryFile}\""*
>>
>> *            OBJECT_DEPENDS ${pchBinaryFile}*
>>
>> *        )*
>>
>> *    endforeach()*
>>
>> endfunction()
>>
>>
>
>


More information about the CMake mailing list