1. 03 Nov, 2016 3 commits
  2. 02 Nov, 2016 26 commits
  3. 01 Nov, 2016 11 commits
    • Oswald Buddenhagen's avatar
      de-duplicate INSTALLS resolution · 5f17c280
      Oswald Buddenhagen authored
      
      
      don't resolve the source files once for deployment and once for the
      project tree.
      
      Change-Id: Ifddf8fc7883bf025d3640de0d6676b5930991088
      Reviewed-by: Tobias Hunger's avatarTobias Hunger <tobias.hunger@qt.io>
      5f17c280
    • Oswald Buddenhagen's avatar
      remove duplicate resolution of sources from cumulative pass · 4a59a7d7
      Oswald Buddenhagen authored
      
      
      instead of resolving all sources both in the exact and the cumulative
      pass and de-duplicating the joined list in the end, resolve only these
      files from the cumulative pass which are unique to it to start with.
      
      Change-Id: Ie3327799ecd94f8710f8b99bcc46998790ba2c74
      Reviewed-by: Tobias Hunger's avatarTobias Hunger <tobias.hunger@qt.io>
      4a59a7d7
    • Oswald Buddenhagen's avatar
      don't use QList for items with sizeof(T) != sizeof(void*) · 09b4d9d5
      Oswald Buddenhagen authored
      
      
      Change-Id: Ibf6c494dff6700a269f1305c3bdaa4fad63cee98
      Reviewed-by: Tobias Hunger's avatarTobias Hunger <tobias.hunger@qt.io>
      09b4d9d5
    • Oswald Buddenhagen's avatar
      de-duplicate resolution of exact sources · e19fa276
      Oswald Buddenhagen authored
      
      
      rather than resolving them once in bulk (for the code model) and once
      per pri file (for the project view), resolve them only in bulk, but
      "tag" them. then do a cheap filtering pass for the project view.
      
      as a side effect, this fixes the problem that sources that are listed by
      a file that is not shown in the project tree (as is the case for qrc
      files synthesized by resources.prf) would not be shown at all. instead,
      these sources now appear belonging directly to the pro file.
      
      Task-number: QTCREATORBUG-3670
      Change-Id: I1a1756d95bd90db4da1274eebcc4dad2a854f43d
      Reviewed-by: Tobias Hunger's avatarTobias Hunger <tobias.hunger@qt.io>
      e19fa276
    • Oswald Buddenhagen's avatar
      apply a build pass to retrieve all project variables · 0afcbaa9
      Oswald Buddenhagen authored
      
      
      so far, we used a build pass only to retrieve accurate target
      information from the exact evaluator. however, this is insufficient for
      at least two reasons:
      - the recently introduced postprocessing of RESOURCES in resources.prf
        is executed only during build passes
      - some relevant variables are build pass specific, for example
        INCLUDEPATH when it includes RCC_DIR
      
      an additional upside is that using the build pass' values is consistent
      with qmake's vcxproj generation mode.
      
      on the downside, the extra cumulative build pass adds 33% of pure
      project evaluation time. however, this isn't as bad, as the pro files
      are already loaded and parsed, and the expensive source file resolution
      moves completely to the build pass.
      
      the alternative of defeating the build pass logic (as lupdate does) is
      not feasible, as we rely on accurate target information from an actual
      build pass for the run configurations.
      
      note that this all applies only to windows (and macos when explicitly
      configured with -debug-and-release).
      
      Task-number: QTCREATORBUG-16019
      Change-Id: I8a97856b3b738aa1a581d24ba24bb3e7199d8078
      Reviewed-by: Tobias Hunger's avatarTobias Hunger <tobias.hunger@qt.io>
      0afcbaa9
    • Oswald Buddenhagen's avatar
      unify {,obj}c++{source,header} handling in qmake project manager · 7e86b988
      Oswald Buddenhagen authored
      
      
      consistently with Xcode, qmake nowadays knows only one SOURCES list,
      which is automatically classified by extension.
      to replicate that, we actually copy the objective_c.prf file from qt
      5.6.3 and use it to override whatever comes with qt, so we can treat all
      qt versions uniformly.
      
      also, the code model throws away the information which files were listed
      as sources and which as headers. this is technically incorrect, as a
      source may be only included rather than compiled, but there is no point
      in extracting information which is not used.
      
      conclusion: lump all c-like sources into one variable as far as project
      processing is concerned.
      
      and as far as configuration goes, our code model doesn't differentiate
      anyway, so the duplicated setup paths can be eliminated as well.
      
      Change-Id: I24b1bc056f8d9eb579c9378817f602912ab49971
      Reviewed-by: Tobias Hunger's avatarTobias Hunger <tobias.hunger@qt.io>
      7e86b988
    • Oswald Buddenhagen's avatar
      remove some pointless complexity relating to IncludedPriFile · 4148b05e
      Oswald Buddenhagen authored
      
      
      each such object has exactly one associated ProFile if it shall result
      in a pri node, and no ProFile if it shall result in a pro node. there is
      no point in dealing with lists at various levels.
      
      Change-Id: I930fd8c14fcd6336cd297bacefdd0036f556741b
      Reviewed-by: Tobias Hunger's avatarTobias Hunger <tobias.hunger@qt.io>
      4148b05e
    • Oswald Buddenhagen's avatar
      make VFS aware of exact vs. cumulative evaluation · a8010b0f
      Oswald Buddenhagen authored
      
      
      the cumulative evaluation has a good chance to make a mess of the
      virtual file contents created by the exact parsing, so better contain it
      to its own namespace.
      
      the ProFile cache also needs to keep the files separate. this
      specifically addresses the side issue discussed in QTCREATORBUG-10779.
      it also fixes attempts to deploy the wrong build when the variant is
      selected through a cache file, as in QTCREATORBUG-15815.
      
      in the project explorer, we don't track from which evaluation pass
      particular files came from, so we try the cumulative first to get the
      most contents, and fall back to the exact one if the former file is
      empty (or does not exist at all).
      
      Task-number: QTCREATORBUG-15815
      Change-Id: I2c1eb16c97526fa275a1c6a2eae9266d385859ac
      Reviewed-by: Tobias Hunger's avatarTobias Hunger <tobias.hunger@qt.io>
      a8010b0f
    • Oswald Buddenhagen's avatar
      shave off duplicate stat()ing of source files · cf82f210
      Oswald Buddenhagen authored
      
      
      ProFileEvaluator::absoluteFileValues() now returns only files, which
      allows us to skip the subsequent QFileInfo::isFile() calls at some
      call sites.
      
      as a side effect, IoUtils::fileType() does not see anything except
      regular files and directories any more. that's not expected to be a
      problem, given the function's scope.
      
      Change-Id: I53063ad8cacb3afe5cc1baf6d6d5feba3465e74f
      Reviewed-by: Tobias Hunger's avatarTobias Hunger <tobias.hunger@qt.io>
      cf82f210
    • Oswald Buddenhagen's avatar
      let QMakeVfs::readFile() report ENOFILE explicitly · 5ba32e34
      Oswald Buddenhagen authored
      
      
      when the QFile object is already constructed, querying whether the file
      exists is actually cheap, so do it right away instead of later on
      demand. that makes the calling code a bit cleaner.
      
      fwiw, that we need to explicitly query the file's existence at all is a
      result of QFile's completely useless error "codes" (which merely say
      which function failed, as if the caller would not know).
      
      Change-Id: Ifec39d05b1713d8128046f679287e510f10e45dc
      Reviewed-by: Tobias Hunger's avatarTobias Hunger <tobias.hunger@qt.io>
      5ba32e34
    • Oswald Buddenhagen's avatar
      make resource file handling able to deal with QMakeProject's VFS · 424639ec
      Oswald Buddenhagen authored
      
      
      resources.prf may create virtual qrc files when RESOURCES contains
      non-qrc files.
      
      Change-Id: If591de9b32b775059d67e94bc3cb06d23ee44b08
      Reviewed-by: Tobias Hunger's avatarTobias Hunger <tobias.hunger@qt.io>
      424639ec