1. 17 Nov, 2010 12 commits
    • Oswald Buddenhagen's avatar
      replace env variable injection with pervasive expando support · 79be54ed
      Oswald Buddenhagen authored
      do not inject SOURCEDIR and BUILDDIR into the environment of
      build steps and run configurations any more.
      instead, all custom executable paths, argument lists and working
      directories now support the %{sourceDir} and %{buildDir} macros.
      this approach is more elegant and more scalable.
      79be54ed
    • Oswald Buddenhagen's avatar
      overhaul process argument handling · 1e362b0f
      Oswald Buddenhagen authored
      get away from argument stringlists. instead, use native shell command
      lines which support quoting/splitting, environment variable expansion
      and redirections with well-understood semantics.
      
      Task-number: QTCREATORBUG-542
      Task-number: QTCREATORBUG-1564
      1e362b0f
    • Oswald Buddenhagen's avatar
      add Utils::QtcProcess · 531c70f0
      Oswald Buddenhagen authored
      this is a wrapper around QProcess with these features:
      - setEnvironment() takes a Utils::Environment instead of a QStringList
      - instead of taking a stringlist with arguments, take a single shell
        command string which is fully compatible with the system's native
        shell (the bourne shell on unix and cmd.exe on windows) - with support
        for environment variable expansion, and subject to the shell's
        splitting and quoting rules. if the command is too complex (e.g.,
        contains redirections), it is transparently executed through a real
        shell.
      - additionally, the class contains a set of helper functions for
        manipulating (constructing, splitting, etc.) shell command lines.
        in particular, it contains a shell-safe macro expander and the nested
        class ArgIterator which can be used for inspecting and manipulating a
        shell command line without going through the stringlist indirection
        (which is potentially lossy).
      
      some of this is based on KDE code (KShell and KMacroExpander) which i
      have written myself.
      531c70f0
    • Oswald Buddenhagen's avatar
      refactor VariableManager · dc3ab5bf
      Oswald Buddenhagen authored
      make it provide a macroExpander() instead of a resolve() function.
      this detaches the actual variable management from the string
      manipulation.
      dc3ab5bf
    • Oswald Buddenhagen's avatar
      add generic macro expansion classes & functions to Utils · 9bd95ade
      Oswald Buddenhagen authored
      AbstractMacroExpander (any macros), AbstractQtcMacroExpander (%{var}
      style macros, which is a hybrid of printf format specifiers and unix
      environment expansions) and expandMacros() for the actual string
      manipulation.
      9bd95ade
    • Oswald Buddenhagen's avatar
      change variable manager expansion style from ${} to %{} · a2b6391b
      Oswald Buddenhagen authored
      this is less confusing, because it doesn't look like an environment
      variable expansion under unix.
      the syntax is a hybrid of printf format specifiers and braced unix
      variable expansions.
      a2b6391b
    • Oswald Buddenhagen's avatar
      change Environment::expandVariables() semantics · 0641ed0e
      Oswald Buddenhagen authored
      instead of being os-agnostic, interpret the os-native expansion style,
      so it is consistent with proper (shell) command lines.
      
      don't interpret quotes, as this function is meant for expanding isolated
      filepaths, where nobody would expect quoting. instead, use the windows
      style of simply not doing an expansion if a referenced variable is not
      found, which should be good enough - it's rather unlikely that something
      which happens to be an expansion of an existing variable is actually not
      meant to be one.
      0641ed0e
    • Arvid Ephraim Picciani's avatar
      Fix compilation · fb47cfda
      Arvid Ephraim Picciani authored
      fb47cfda
    • Christian Kandeler's avatar
      Maemo: Use current build environment for packaging. · 1166dc39
      Christian Kandeler authored
      (Instead of the initial system environment.)
      
      Reviewed-by: kh1
      1166dc39
    • Friedemann Kleint's avatar
      Debugger: Compile CDB · 9235e936
      Friedemann Kleint authored
      9235e936
    • Rhys Weatherley's avatar
      a666c48c
    • Rhys Weatherley's avatar
      7e4ef22c
  2. 16 Nov, 2010 28 commits