1. 23 May, 2013 1 commit
    • Clinton Stimpson's avatar
      Refactor how bundles and frameworks are supported. · 373faae5
      Clinton Stimpson authored and Brad King's avatar Brad King committed
      Make handling of directory separators consistent between
      non-bundle and bundle code.
      
      Remove xcode specific flag from cmTarget when getting install_name.
      
      Add (more) consistent convenience functions in cmTarget to get
      directories inside of bundles and frameworks to add files to.
      
      This refactor also fixes bug #12263 where frameworks
      had the wrong install name when SKIP_BUILD_RPATH.
      
      Also make install_name for frameworks consistent between Makefile
      and Xcode generator.
      373faae5
  2. 20 Nov, 2012 1 commit
    • Stephen Kelly's avatar
      Always use the auto_ptr from cmsys. · ddc05205
      Stephen Kelly authored
      This is for consistency throughout cmake. The cmsys version exists
      becaues uses of auto_ptr types as return types does not work with
      some implementations in ancient compilers.
      ddc05205
  3. 01 Oct, 2012 1 commit
  4. 25 Sep, 2012 1 commit
  5. 19 Sep, 2012 2 commits
  6. 17 Jul, 2012 4 commits
  7. 30 Apr, 2012 1 commit
    • Modestas Vainius's avatar
      Support building shared libraries or modules without soname (#13155) · e1409ac5
      Modestas Vainius authored and Brad King's avatar Brad King committed
      Add a boolean target property NO_SONAME which may be used to disable
      soname for the specified shared library or module even if the platform
      supports it.  This property should be useful for private shared
      libraries or various plugins which live in private directories and have
      not been designed to be found or loaded globally.
      
      Replace references to <CMAKE_SHARED_LIBRARY_SONAME_${LANG}_FLAG> and
      hard-coded -install_name flags with a conditional <SONAME_FLAG> which is
      expanded to the value of the CMAKE_SHARED_LIBRARY_SONAME_${LANG}_FLAG
      definition as long as soname supports is enabled for the target in
      question.  Keep expanding CMAKE_SHARED_LIBRARY_SONAME_${LANG}_FLAG in
      rules in case third party projects still use it.  Such projects would
      not yet use NO_SONAME so the adjacent <TARGET_SONAME> will always be
      expanded.  Make <TARGET_INSTALLNAME_DIR> NO_SONAME aware as well.  Since
      -install_name is soname on OS X, this should not be a problem if this
      variable is expanded only if soname is enabled.
      
      The Ninja generator performs rule variable substitution only once
      globally per rule to put its own placeholders.  Final substitution is
      performed by ninja at build time.  Therefore we cannot conditionally
      replace the soname placeholders on a per-target basis.  Rather than
      omitting $SONAME from rules.ninja, simply do not write its contents for
      targets which have NO_SONAME.  Since 3 variables are affected by
      NO_SONAME ($SONAME, $SONAME_FLAG, $INSTALLNAME_DIR), set them only if
      soname is enabled.
      e1409ac5
  8. 13 Mar, 2012 1 commit
  9. 05 Dec, 2011 2 commits
    • Brad King's avatar
      Add CMAKE_GNUtoMS option to convert GNU .dll.a to MS .lib · afb00fef
      Brad King authored
      Teach the Windows-GNU.cmake platform file to look for Visual Studio
      tools matching the target ABI.  Add an extra step to the link command
      for shared libraries and executables that export symbols and on which a
      new GNUtoMS property is set (initialized by the CMAKE_GNUtoMS option).
      Tell the GNU linker to output a module definition (.def) file listing
      exported symbols in addition to the GNU-format import library (.dll.a).
      Pass the .def file to the MS "lib" tool to construct a MS-format DLL
      import library (.lib).
      
      Teach the install(TARGETS) command to install the MS import library next
      to the GNU one.  Teach the install(EXPORT) and export() command to set
      the IMPORTED_IMPLIB property pointing at the import library to use the
      import library matching the tools in the importing project.
      afb00fef
    • Brad King's avatar
      Factor makefile generator link rule lookup into helper function · 61e86298
      Brad King authored
      This provides a place in the makefile generators to adjust the link
      rules for both libraries and executables.
      61e86298
  10. 17 Mar, 2011 1 commit
    • Brad King's avatar
      Generate target-wide flags before individual build rules · 6e8a67f9
      Brad King authored
      This switches the internal generation order but does not affect the
      results.  The new order ensures that any internal state changed by
      generating target-wide flags is known when the individual rules that use
      those flags are generated.
      6e8a67f9
  11. 11 Jan, 2011 1 commit
  12. 05 Nov, 2010 1 commit
  13. 28 May, 2010 1 commit
  14. 01 May, 2010 1 commit
  15. 28 Jan, 2010 1 commit
  16. 23 Oct, 2009 1 commit
    • Brad King's avatar
      Fix line-too-long style violations · 867a1cc1
      Brad King authored
      The commit "Define per-target OSX_ARCHITECTURES property" introduced
      some long lines.  This wraps them into multiple shorter lines.
      867a1cc1
  17. 21 Oct, 2009 1 commit
    • Brad King's avatar
      Define per-target OSX_ARCHITECTURES property · 2dc39b8c
      Brad King authored
      The CMAKE_OSX_ARCHITECTURES variable works only as a global setting.
      This commit defines target properties
      
        OSX_ARCHITECTURES
        OSX_ARCHITECTURES_<CONFIG>
      
      to specify OS X architectures on a per-target and per-configuration
      basis.  See issue #8725.
      2dc39b8c
  18. 09 Oct, 2009 1 commit
  19. 02 Oct, 2009 2 commits
    • Brad King's avatar
      Create INTERPROCEDURAL_OPTIMIZATION build feature · c5139627
      Brad King authored
      This commit creates target and directory properties to enable the Intel
      interprocedural optimization support on Linux.  Enabling it adds the
      compiler option '-ipo' and uses 'xiar' to create archives.
      
      See issue #9615.
      c5139627
    • Brad King's avatar
      Centralize language flag addition for Makefiles · 57df2abc
      Brad King authored
      We create cmMakefileTargetGenerator::AddFeatureFlags to consolidate
      addition of language flags.  Currently it just adds the flags from
      generic per-language flag variables (AddLanguageFlags).
      57df2abc
  20. 01 Oct, 2009 1 commit
  21. 29 Sep, 2009 1 commit
    • Brad King's avatar
      Fix use of module .def files for MS tools · 024d05ad
      Brad King authored
      We recognize .def source files and map them to the /DEF:<file> option in
      the MSVC tools.  Previously this worked only for shared libraries.  This
      commit cleans up the implementation and makes it work for executables
      too.  See issue #9613.
      024d05ad
  22. 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
  23. 17 Sep, 2009 1 commit
    • Brad King's avatar
      Do not call CollapseFullPath for PDB file names · c87a35a3
      Brad King authored
      Some vendor tools convert PDB file names given on the command line to
      lower-case before creating the file.  When CMake places a mixed-case PDB
      file name into the build system, the file does not exist the first time
      and it is written with mixed case.  After the first build though the
      native tool has created a lower-case version of the file.  If CMake does
      CollapseFullPath again, the file exists so the actual-case lookup gets
      the lower-case name.  This causes the build files to change so the
      project rebuilds.
      
      The solution is to avoid calling CollapseFullPath for files generated by
      the build.  In the case of PDB files we already construct them from
      paths that have been collapsed, so we can just skip the call altogether.
      See issue #9350.
      c87a35a3
  24. 08 Jul, 2009 2 commits
  25. 07 Jul, 2009 1 commit
    • Brad King's avatar
      ENH: Simpler cmTarget::GetLinkerLanguage signature · a6084671
      Brad King authored
      This method previously required the global generator to be passed, but
      that was left from before cmTarget had its Makefile member.  Now the
      global generator can be retrieved automatically, so we can drop the
      method argument.
      a6084671
  26. 03 Jul, 2009 2 commits
    • Brad King's avatar
      ENH: Pass config to cmTarget::GetDirectory() · bde145a2
      Brad King authored
      This teaches the makefile generators to always pass the configuration
      name to the cmTarget::GetDirectory method.  Later this will allow
      per-configuration target output directories, and it cleans up use of the
      current API.
      bde145a2
    • Brad King's avatar
      ENH: Create cmMakefileTargetGenerator::ConfigName · 11d10634
      Brad King authored
      This member stores the build configuration for which Makefiles are being
      generated.  It saves repeated lookup of the equivalent member from
      cmLocalUnixMakefileGenerator3, making code shorter and more readable.
      11d10634
  27. 01 May, 2009 1 commit
    • Brad King's avatar
      ENH: Always imply CLEAN_DIRECT_OUTPUT target prop · 430cc2b4
      Brad King authored
      This property was left from before CMake always linked using full path
      library names for targets it builds.  In order to safely link with
      "-lfoo" we needed to avoid having both shared and static libraries in
      the build tree for targets that switch on BUILD_SHARED_LIBS.  This meant
      cleaning both shared and static names before creating the library, which
      led to the creation of CLEAN_DIRECT_OUTPUT to disable the behavior.
      
      Now that we always link with a full path we do not need to clean old
      library names left from an alternate setting of BUILD_SHARED_LIBS.  This
      change removes the CLEAN_DIRECT_OUTPUT property and instead uses its
      behavior always.  It removes some complexity from cmTarget internally.
      430cc2b4
  28. 16 Mar, 2009 2 commits
    • Brad King's avatar
      ENH: Allow projects to disable per-rule echo lines · 493f88ce
      Brad King authored
      This creates global property RULE_MESSAGES which can be set to disbale
      per-rule progress and action reporting.  On Windows, these reports may
      cause a noticable delay due to the cost of starting extra processes.
      This feature will allow scripted builds to avoid the cost since they do
      not need detailed information anyway.  This replaces the RULE_PROGRESS
      property created earlier as it is more complete.  See issue #8726.
      493f88ce
    • Brad King's avatar
      STYLE: Separate unrelated logic · 49dec94f
      Brad King authored
      This separates unrelated uses of a library-type switch into separate
      switches.  An upcoming commit will conditionally enter one of the
      switches.
      49dec94f
  29. 10 Feb, 2009 2 commits
    • Brad King's avatar
      ENH: Define RULE_LAUNCH_* properties · b604b98c
      Brad King authored
      This defines global, directory, and target properties
      RULE_LAUNCH_COMPILE, RULE_LAUNCH_LINK, and RULE_LAUNCH_CUSTOM.  Their
      values specify 'launcher' command lines which are prefixed to compile,
      link, and custom build rules by Makefile generators.
      b604b98c
    • Brad King's avatar
      ENH: Give target in which custom commands build · c895d9f2
      Brad King authored
      This gives the cmTarget instance for which custom command rules are
      being generated to cmLocalUnixMakefileGenerator3::AppendCustomCommands.
      It will be useful in the future.
      c895d9f2
  30. 15 Oct, 2008 1 commit