1. 29 Nov, 2014 1 commit
    • Stephen Kelly's avatar
      Export: Disallow export of targets with INTERFACE_SOURCES · e1348056
      Stephen Kelly authored
      This can be allowed in the next release, but it needs to have some
      features present and tested such as
      
      * Ensuring that relative paths do not appear in the generated property.
      * Ensuring that paths to the source or build directories do not appear.
      * Generating a check in the file for CMake 3.1 or later so that the
          resulting property will be consumed.
      * Ensuring that any referenced targets are part of an export set and
          generating a check for them.
      * INSTALL_INTERFACE and BUILD_INTERFACE content.
      
      All of these checks are already done for INTERFACE_INCLUDE_DIRECTORIES,
      but it is too late to add them for INTERFACE_SOURCES for CMake 3.1.
      As the checks introduce some new error conditions, it is better to
      disallow exporting fully for this case and introduce proper error
      conditions later instead of policies.
      e1348056
  2. 05 Jun, 2014 1 commit
  3. 08 Apr, 2014 1 commit
  4. 11 Mar, 2014 1 commit
    • Stephen Kelly's avatar
      Remove some c_str() calls. · 21c573f6
      Stephen Kelly authored
      Use the clang RemoveCStrCalls tool to automatically migrate the
      code. This was only run on linux, so does not have any positive or
      negative effect on other platforms.
      21c573f6
  5. 08 Mar, 2014 1 commit
  6. 19 Feb, 2014 1 commit
  7. 11 Feb, 2014 1 commit
  8. 16 Jan, 2014 1 commit
    • Rolf Eike Beer's avatar
      cmMakefile: make some methods take const std::string& instead of const char* · c768e398
      Rolf Eike Beer authored
      Most callers already have a std::string, on which they called c_str() to pass it
      into these methods, which internally converted it back to std::string. Pass a
      std::string directly to these methods now, avoiding all these conversions.
      Those methods that only pass in a const char* will get the conversion to
      std::string now only once.
      c768e398
  9. 24 Dec, 2013 1 commit
    • Stephen Kelly's avatar
      export: Implement EXPORT subcommand (#9822) · cbe7e8fa
      Stephen Kelly authored
      Teach the export command to handle export sets defined by invocations
      of install(TARGETS ... EXPORT foo).  This makes maintenance of targets
      exported to both the build tree and install tree trivial.
      cbe7e8fa
  10. 19 Dec, 2013 1 commit
  11. 27 Nov, 2013 1 commit
    • Stephen Kelly's avatar
      QtAutoUic: Add INTERFACE_AUTOUIC_OPTIONS target property. · 98093c45
      Stephen Kelly authored
      Transitively consume the property from linked dependents.
      
      Implement configuration-specific support by following the pattern
      set out for compile definitions and includes in cmQtAutoGenerators.
      
      Implement support for origin-tracking with CMAKE_DEBUG_TARGET_PROPERTIES.
      
      This is motivated by the needs of KDE, which provides a separate
      translation system based on gettext instead of the Qt linguist
      translation system. The Qt uic tool provides command line options
      for configuring the method used to translate text, and to add an
      include directive to the generated file to provide the method.
      
       http://thread.gmane.org/gmane.comp.kde.devel.frameworks/7930/focus=7992
      
      Implement the interface to provide the uic options as a usage-requirement
      on the KI18n target, as designed for KDE.
      98093c45
  12. 11 Oct, 2013 2 commits
    • Stephen Kelly's avatar
      export(): Handle multiple dependent export sets. · a4263c9f
      Stephen Kelly authored
      The export-sets topic, merged in commit 49c7b649 (Merge topic
      'export-sets', 2012-10-01) changed install(EXPORT) to allow
      exporting targets whose dependents are exported separately
      to different locations. Doing the same for export() was not
      possible because the export() command was executed at
      configure-time.
      
      Now that export() is also executed at generate-time, make it
      possible to export to multiple dependent export sets.
      a4263c9f
    • Stephen Kelly's avatar
      export(): Process the export() command at generate time. · 66b290e7
      Stephen Kelly authored
      Make the API for adding targets string based so that it can easily
      use cmGeneratorTarget.
      
      Teach the cmIncludeCommand to generate the exported file at
      configure-time instead if it is to be include()d.
      
      The RunCMake.ExportWithoutLanguage test now needs a dummy header.h
      file as expected error from export() is now reported after the
      missing file error.
      66b290e7
  13. 10 Oct, 2013 1 commit
  14. 07 Oct, 2013 1 commit
  15. 08 Jul, 2013 1 commit
    • Stephen Kelly's avatar
      Export: Generate INTERFACE_LINK_LIBRARIES property on targets. · 574fec97
      Stephen Kelly authored
      This property is generated only for targets which have recorded
      policy CMP0022 as NEW, and a compatibility mode is added to
      additionally export the old interfaces in that case too.
      
      If the old interfaces are not exported, the generated export files
      require CMake 2.8.12. Because the unit tests use a version which
      is not yet called 2.8.12, temporarily require a lower version.
      574fec97
  16. 10 Jun, 2013 1 commit
  17. 03 Jun, 2013 1 commit
  18. 23 May, 2013 1 commit
    • Clinton Stimpson's avatar
      Refactor how bundles and frameworks are supported. · 373faae5
      Clinton Stimpson authored
      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
  19. 18 May, 2013 1 commit
    • Stephen Kelly's avatar
      Add EXPORT_NAME property. · b5d6f5dd
      Stephen Kelly authored
      This allows for example, the buildsystem to use names like 'boost_any'
      instead of the overly generic 'any', and still be able to generate
      IMPORTED targets called 'boost::any'.
      b5d6f5dd
  20. 21 Jan, 2013 1 commit
  21. 15 Jan, 2013 3 commits
  22. 10 Jan, 2013 1 commit
  23. 04 Jan, 2013 2 commits
  24. 30 Nov, 2012 1 commit
    • Stephen Kelly's avatar
      Generate an early-return guard in target Export files. · bf2ddceb
      Stephen Kelly authored
      Previously it was necessary for writers of Config files
      which incude exported target files to write the guard themselves, but
      this was not immediately obvious or documented. Options for them
      would be to use a variable, or an INHERITED directory property in an
      effort to avoid accidental name clashes in all contexts in
      which find_package can be used.
      
      Getting this right requires boiler plate code, so generate a simpler
      check automatically instead.
      bf2ddceb
  25. 30 Sep, 2012 1 commit
    • Alexander Neundorf's avatar
      exports: move the handling of missing targets into subclasses · 0cfd055a
      Alexander Neundorf authored
      Before, cmExportFileGenerator::ComplainAboutMissingTarget() was a virtual
      function which had to be implemented in the subclasses. It is not
      anymore. Instead, there is now a virtual function
      HandleMissingTargets(), which is implemented in the two subclasses.
      This makes e.g. dealing correctly with APPEND mode easier.
      
      Alex
      0cfd055a
  26. 28 Sep, 2012 2 commits
    • Alexander Neundorf's avatar
      exports: first try at error handling if a target is missing · 8b5f448b
      Alexander Neundorf authored
      Now, if an imported target depends on a library which must come
      from some other export set, cmake generates a check which errors
      out if that target does not exist. I guess instead of completely
      erroring out it would be better to only make the find_package() fail.
      
      Alex
      8b5f448b
    • Alexander Neundorf's avatar
      exports: accept a missing target if it is exported exactly once · 87f4c019
      Alexander Neundorf authored
      If a target is exported, and a library it depends on is not part
      of the same export set, before this patch cmake errored out.
      With this patch, it now checks whether the missing target
      is exported somewhere else exactly once, and accepts in this
      case (because then it can determine the namespace for the
      missing target and use this).
      
      Alex
      87f4c019
  27. 05 Dec, 2011 1 commit
    • 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
  28. 01 Oct, 2009 1 commit
  29. 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
  30. 20 Jan, 2009 1 commit
    • Brad King's avatar
      BUG: Fix LOCATION property for Mac AppBundles · acb0e8fb
      Brad King authored
      Previously cmTarget::GetLocation and cmTarget::GetFullPath would return
      for Mac AppBundles the top-level bundle directory but without the .app
      extension.  We worked around this at the call sites.  This fixes the
      methods and removes the work-arounds.  See issue #8406.
      acb0e8fb
  31. 06 Feb, 2008 1 commit
  32. 01 Feb, 2008 1 commit
    • Brad King's avatar
      ENH: Pass dependent library search path to linker on some platforms. · 82fcaebe
      Brad King authored
        - Move runtime path ordering out of cmComputeLinkInformation
          into its own class cmOrderRuntimeDirectories.
        - Create an instance of cmOrderRuntimeDirectories for runtime
          path ordering and another instance for dependent library
          path ordering.
        - Replace CMAKE_DEPENDENT_SHARED_LIBRARY_MODE with explicit
          CMAKE_LINK_DEPENDENT_LIBRARY_FILES boolean.
        - Create CMAKE_LINK_DEPENDENT_LIBRARY_DIRS boolean.
        - Create variables to specify -rpath-link flags:
            CMAKE_SHARED_LIBRARY_RPATH_LINK_<LANG>_FLAG
            CMAKE_EXECUTABLE_RPATH_LINK_<LANG>_FLAG
        - Enable -rpath-link flag on Linux and QNX.
        - Documentation and error message updates
      82fcaebe
  33. 30 Jan, 2008 1 commit
    • Brad King's avatar
      ENH: Implemented link-interface specification feature. · 7902bc06
      Brad King authored
        - Shared libs and executables with exports may now have
          explicit transitive link dependencies specified
        - Created LINK_INTERFACE_LIBRARIES and related properties
        - Exported targets get the interface libraries as their
          IMPORTED_LINK_LIBRARIES property.
        - The export() and install(EXPORT) commands now give
          an error when a linked target is not included since
          the user can change the interface libraries instead
          of adding the target.
      7902bc06
  34. 28 Jan, 2008 2 commits