1. 29 Feb, 2012 1 commit
  2. 25 Jan, 2012 1 commit
    • Brad King's avatar
      Optionally allow IMPORTED targets to be globally visible · ca39c5cd
      Brad King authored
      Consider the case motivating commit e01cce28 (Allow add_dependencies()
      on imported targets, 2010-11-19).  An imported target references a file
      generated at build time by a custom target on which it depends.  Had the
      file been built directly using add_library or add_executable its target
      name would have been visible globally.  Therefore the imported target
      representing the file should be globally visible also.
      
      Teach the IMPORTED signature of add_(executable|library) to accept a new
      "GLOBAL" option to make the imported target visible globally.
      ca39c5cd
  3. 28 Nov, 2011 1 commit
  4. 23 Oct, 2011 2 commits
  5. 14 Aug, 2011 1 commit
  6. 15 Jul, 2011 1 commit
  7. 02 Feb, 2011 2 commits
  8. 22 Sep, 2010 1 commit
  9. 16 Sep, 2010 2 commits
  10. 15 Sep, 2010 1 commit
  11. 14 Sep, 2010 1 commit
  12. 08 Sep, 2010 1 commit
  13. 01 Sep, 2010 6 commits
  14. 26 Apr, 2010 1 commit
  15. 09 Oct, 2009 1 commit
  16. 08 Oct, 2009 1 commit
    • Brad King's avatar
      Remove CMake Policy CMP0015 until it is revised · 9a77f65d
      Brad King authored
      We revert commit "Create CMake Policy CMP0015 to fix set(CACHE)" because
      the NEW behavior of the policy breaks a valid use case:
      
        # CMakeLists.txt
        option(BUILD_SHARED_LIBS "..." ON)
        add_library(mylib ...)
        set(BUILD_SHARED_LIBS OFF) # we want only mylib to be shared
        add_subdirectory(ThirdParty)
      
        # ThirdParty/CMakeLists.txt
        option(BUILD_SHARED_LIBS "..." ON)
        # uh, oh, with NEW behavior this dir uses shared libs!!!
      
      We'll re-introduce the policy later with a different change in behavior
      to resolve the motivating case, which was more subtle but less common.
      
      See issue #9008.
      9a77f65d
  17. 02 Oct, 2009 1 commit
    • Brad King's avatar
      Introduce "build feature" lookup framework · 1e482435
      Brad King authored
      This creates cmTarget::GetFeature and cmMakefile::GetFeature methods to
      query "build feature" properties.  These methods handle local-to-global
      scope and per-configuration property lookup.  Specific build features
      will be defined later.
      1e482435
  18. 01 Oct, 2009 1 commit
  19. 30 Sep, 2009 1 commit
  20. 28 Sep, 2009 1 commit
    • Brad King's avatar
      Convert CMake to OSI-approved BSD License · 96afb120
      Brad King authored
      This converts the CMake license to a pure 3-clause OSI-approved BSD
      License.  We drop the previous license clause requiring modified
      versions to be plainly marked.  We also update the CMake copyright to
      cover the full development time range.
      96afb120
  21. 10 Sep, 2009 2 commits
    • Brad King's avatar
      Create CMake Policy CMP0015 to fix set(CACHE) · ee2b446c
      Brad King authored
      The set(CACHE) and option() commands should always expose the cache
      value.  Previously we failed to expose the value when it was already set
      if a local variable definition hid it.  When set to NEW, this policy
      tells the commands to always remove the local variable definition to
      expose the cache value.  See issue #9008.
      ee2b446c
    • Brad King's avatar
      Remove barely-used cmMakefile::AddCacheDefinition · afbe0883
      Brad King authored
      The boolean overload of this method was used only to implement option().
      We re-implement option() in terms of the main method and removes the
      now-unused signature.  This removes some duplicate code that had already
      fallen behind on changes (it was not removing the local definition
      instead of setting it).
      afbe0883
  22. 04 Aug, 2009 1 commit
    • Brad King's avatar
      No /fast targets in try_compile project mode · 80c947b3
      Brad King authored
      The try_compile command builds the cmTryCompileExec executable using the
      cmTryCompileExec/fast target with Makefile generators in order to save
      time since dependencies are not needed.  However, in project mode the
      command builds an entire source tree that may have dependencies.
      Therefore we can use the /fast target approach only in one-source mode.
      80c947b3
  23. 22 Jul, 2009 1 commit
    • Brad King's avatar
      ENH: Improve dynamic variable scope implementation · fd105899
      Brad King authored
      Previously each new variable scope (subdirectory or function call) in
      the CMake language created a complete copy of the key->value definition
      map.  This avoids the copy using transitive lookups up the scope stack.
      Results of queries answered by parents are stored locally to maintain
      locality of reference.
      
      The class cmDefinitions replaces cmMakefile::DefinitionsMap, and is
      aware of its enclosing scope.  Each scope stores only the definitions
      set (or unset!) inside it relative to the enclosing scope.
      fd105899
  24. 17 Jun, 2009 1 commit
    • Brad King's avatar
      ENH: Create CMP0013 to disallow duplicate dirs · c790b1fa
      Brad King authored
      In CMake 2.6.3 and below we silently accepted duplicate build
      directories whose build files would then conflict.  At first this was
      considured purely a bug that confused beginners but would not be used in
      a real project.  In CMake 2.6.4 we explicitly made it an error.
      
      However, some real projects took advantage of this as a "feature" and
      got lucky that the subtle build errors it can cause did not occur.
      Therefore we need a policy to deal with the case more gracefully.
      See issue #9173.
      c790b1fa
  25. 16 Mar, 2009 1 commit
    • Brad King's avatar
      ENH: Refactor generation of CTestTestfile content · 66d69f86
      Brad King authored
      This moves code which generates ADD_TEST and SET_TESTS_PROPERTIES calls
      into CTestTestfile.cmake files out of cmLocalGenerator and into a
      cmTestGenerator class.  This will allow more advanced generation without
      cluttering cmLocalGenerator.  The cmTestGenerator class derives from
      cmScriptGenerator to get support for per-configuration script
      generation (not yet enabled).
      66d69f86
  26. 22 Jan, 2009 6 commits
    • Brad King's avatar
      ENH: Isolate policy changes in included scripts · c332e0bf
      Brad King authored
      Isolation of policy changes inside scripts is important for protecting
      the including context.  This teaches include() and find_package() to
      imply a cmake_policy(PUSH) and cmake_policy(POP) around the scripts they
      load, with a NO_POLICY_SCOPE option to disable the behavior.  This also
      creates CMake Policy CMP0011 to provide compatibility.  See issue #8192.
      c332e0bf
    • Brad King's avatar
      ENH: Better policies for functions and macros · 3028ca75
      Brad King authored
      This teaches functions and macros to use policies recorded at creation
      time when they are invoked.  It restores the policies as a weak policy
      stack entry so that any policies set by a function escape to its caller
      as before.
      3028ca75
    • Brad King's avatar
      ENH: Create notion of a 'weak' policy stack entry · 26bf8b2c
      Brad King authored
      A 'weak' poilcy stack entry responds normally to queries.  However,
      setting a policy in a weak entry will recursively set the policy in the
      next entry too.  This also gives the internal interface to create a weak
      entry the option to provide an initial PolicyMap for it.
      26bf8b2c
    • Brad King's avatar
      ENH: Create policy scope barriers · dfc181a1
      Brad King authored
      This creates a barrier mechanism to prevent user code from using
      cmake_policy(POP) to pop a scope it didn't push with cmake_policy(PUSH).
      dfc181a1
    • Brad King's avatar
      ENH: Make policy push/pop methods private · ac14b5d2
      Brad King authored
      This makes cmMakefile::PushPolicy and cmMakefile::PopPolicy private so
      that any outside place that uses them needs to use the PolicyPushPop
      helper in an automatic variable.  We grant an exception to
      cmCMakePolicyCommand so it can implement cmake_policy(PUSH) and
      cmake_policy(POP).
      ac14b5d2
    • Brad King's avatar
      ENH: Create automatic policy push/pop helper · a01eb6b2
      Brad King authored
      This creates cmMakefile::PolicyPushPop to push and pop policy scope
      automatically.  It also enforces balanced push/pop pairs inside the
      scope it handles.
      a01eb6b2