1. 02 Apr, 2014 10 commits
    • Stephen Kelly's avatar
      cmTarget: Allow transitive evaluation of SOURCES property. · 3676fb49
      Stephen Kelly authored
      Extend the cmGeneratorExpressionDAGChecker with an interface
      returning the name of the top target.  Use that to determine
      when there is a DAG violation, as required by the RunCMake.Languages
      tests.
      3676fb49
    • Stephen Kelly's avatar
      cmTarget: Make the source files depend on the config. · e6971df6
      Stephen Kelly authored
      Disallow the use of config-specific source files with
      the Visual Studio and Xcode generators. They don't have
      any way to represent the condition currently.
      
      Use the same common-config API in cmQtAutoGenerators. While
      it accepts config-specific files, it doesn't have to support
      multiple configurations yet.
      
      Loop over the configs in cmTargetTraceDependencies
      and cmGlobalGenerator::WriteSummary and consume all source
      files.
      
      Loop over the configs in cmComputeTargetDepends and compute the
      object library dependencies for each config.
      e6971df6
    • Stephen Kelly's avatar
      cmGeneratorTarget: Don't add computed sources to the target. · df753df9
      Stephen Kelly authored
      When config-specifig generator expressions are supported, a target
      may have SOURCES:
      
       src1.cpp $<$<CONFIG:Debug>:src2.cpp> $<$<CONFIG:Release>:src3.cpp>
      
      and computation in cmTargetTraceDependencies would add each of the
      src2.cpp and src3.cpp sources back to the target without a
      config-guard.  That would make the sources be used later when
      generating the buildsystem, regardless of the configuration.
      
      Avoid calling AddSource on the target with the result of the
      GetSourceFiles call.
      df753df9
    • Stephen Kelly's avatar
      cmComputeTargetDepends: Use valid config to compute target depends. · 869328aa
      Stephen Kelly authored
      If CMAKE_BUILD_TYPE is set, and user code contains:
      
       target_link_libraries(myexe prefix_$<$<CONFIG:Debug>:debug>)
      
      then the computation with an empty config was computing a target-level
      dependency on a target or library called prefix_, and a dependency
      on a target or library called prefix_debug (as expected).
      
      The existing logic skips 'prefix_' because it is not a known target,
      and defers to the link-dependencies logic to find the library. The
      link-dependencies logic does not incorrectly handle the config as
      cmComputeTargetDepends did, and so did not encounter 'prefix_'
      during its computation. This likely had no effect on the generated
      buildsystem.
      869328aa
    • Stephen Kelly's avatar
      cmGeneratorTarget: Compute target objects on demand · aa0a3562
      Stephen Kelly authored
      Add a ComputeObjectMapping method to compute the object
      names.  It takes mapping to populate as an out-parameter so
      that it can be extended in the future with parameters
      relevant to generator expression evaluation.
      
      Remove the supporting cmGeneratorTarget::AddObject method. It is
      no longer needed as the container member is populated directly.
      
      The ComputeObjectMapping method is called whenever objects are
      requested from the cmGeneratorTarget.  Because the Xcode generator
      makes no such request, explicitly invoke the method from that
      generator so that the logic of checking for bad sources in object
      libraries is executed.
      
      In a follow-up, the UseObjectLibraries usage may be replaced by a
      true generator expression evaluator for TARGET_OBJECTS. That
      will require generators to use cmGeneratorTarget::GetExternalObjects
      which is not currently the case for Xcode and VS generators.
      aa0a3562
    • Stephen Kelly's avatar
    • Stephen Kelly's avatar
      cmGeneratorTarget: Compute consumed object libraries on demand. · fdcefe3c
      Stephen Kelly authored
      Remove up-front object library computation from cmGlobalGenerator.
      
      Adjust tests for message coming from the generator expression
      evaluation.
      fdcefe3c
    • Stephen Kelly's avatar
      cmComputeTargetDepends: Track object library depends. · c355d108
      Stephen Kelly authored
      Relieve cmGeneratorTarget of that responsibility.
      c355d108
    • Stephen Kelly's avatar
      cmTarget: Allow any generator expression in SOURCES property. · e5da9e51
      Stephen Kelly authored
      Remove use of UseObjectLibraries from Makefile and Ninja generators. It
      is not needed now because those generators use GetExternalObjects
      which already contains the objects from object libraries.
      
      The VS10 generator calls both the UseObjectLibraries and the GetExternalObjects
      methods. Ensure that duplicates are not created by skipping objects
      from object libraries in handling of GetExternalObjects.
      
      Similarly, fix VS6, VS7 and Xcode object handling by skipping
      external objects from OBJECT_LIBRARY usage as appropriate.
      
      The error message in the BadSourceExpression1 test is now reported
      by the generator expression evaluator, so it has different text.
      e5da9e51
    • Stephen Kelly's avatar
      cmTarget: Include TARGET_OBJECTS genex in target SOURCES property. · 5702e106
      Stephen Kelly authored
      Add policy CMP0051 to control this behavior.
      5702e106
  2. 31 Mar, 2014 14 commits
  3. 30 Mar, 2014 1 commit
  4. 29 Mar, 2014 1 commit
  5. 28 Mar, 2014 1 commit
  6. 27 Mar, 2014 5 commits
  7. 26 Mar, 2014 8 commits