1. 13 Aug, 2013 1 commit
  2. 24 May, 2013 1 commit
    • Brad King's avatar
      ExternalData: Do not re-stage staged object files · c35961b0
      Brad King authored
      The ExternalData_LINK_CONTENT option tells ExternalData to convert real
      data files it finds into content links and to "stage" the original
      content in a ".ExternalData_<algo>_<hash>" file.  However, after a data
      object has been staged it is possible that a user-provided pattern in
      the "REGEX:" option will later match the staged object file.  We must
      not process staged object files even when a user pattern matches them.
      
      Fix the implementation to not match a staged object file as a normal
      data file for conversion.  Extend the RunCMake.ExternalData test to
      cover this case.
      c35961b0
  3. 12 Mar, 2013 1 commit
    • Brad King's avatar
      ExternalData: Preserve escaped semicolons during argument expansion · 1823ab4d
      Brad King authored
      The CMake language implicitly flattens lists so a ";" in a list element
      must be escaped with a backslash.  List expansion removes backslashes
      escaping semicolons to leave raw semicolons in the values.  Teach
      ExternalData_Add_Test and ExternalData_Expand_Arguments to re-escape
      semicolons found in list elements so the resulting argument lists work
      as if constructed directly by the set() command.
      
      For example:
      
        ExternalData_Add_Test(Data NAME test1 COMMAND ... "a\\;b")
        ExternalData_Expand_Arguments(Data args2 "c\\;d")
        add_test(NAME test2 COMMAND ... ${args2})
      
      should be equivalent to
      
        set(args1 "a\\;b")
        add_test(NAME test1 COMMAND ... ${args1})
        set(args2 "c\\;d")
        add_test(NAME test2 COMMAND ... ${args2})
      
      which is equivalent to
      
        add_test(NAME test1 COMMAND ... "a;b")
        add_test(NAME test2 COMMAND ... "c;d")
      
      Note that it is not possible to make ExternalData_Add_Test act exactly
      like add_test when quoted arguments contain semicolons because the CMake
      language flattens lists when constructing function ARGN values.  This
      re-escape approach at least allows test arguments to have semicolons.
      
      While at it, teach ExternalData APIs to not transform "DATA{...;...}"
      arguments because the contained semicolons are non-sensical.
      Suggested-by: Jean-Christophe Fillion-Robin's avatarJean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
      1823ab4d
  4. 30 Jan, 2013 4 commits