1. 27 Jun, 2018 1 commit
  2. 06 Jun, 2018 1 commit
    • Marc Chevrier's avatar
      LINK_OPTIONS: Add new family of properties · c1f5a44b
      Marc Chevrier authored
      This family enable to manage link flags
      
      Three new properties:
      * directory property: LINK_OPTIONS
      * target properties: LINK_OPTIONS and INTERFACE_LINK_OPTIONS
      
      Two new commands
      * add_link_options(): to populate directory property
      * target_link_options(): to populate target properties
      
      Fixes: #16543
      c1f5a44b
  3. 16 Mar, 2018 1 commit
    • Wouter Klouwen's avatar
      Export: allow exporting of additional properties · 6db61f07
      Wouter Klouwen authored
      This change introduces an additional property that may be set on a
      target to allow additional properties to be exported. Normally only a
      limited number of properties are exported.
      
      Additional properties may be exported by simply setting the
      `EXPORT_PROPERTIES` property on a target that is exported.
      6db61f07
  4. 01 Mar, 2018 1 commit
  5. 28 Feb, 2018 1 commit
    • Brad King's avatar
      install,export: Maybe transform OBJECT libraries to INTERFACE libraries · ea0ce73a
      Brad King authored
      Teach the `install` and `export` commands to support installing and
      exporting `OBJECT` libraries without their object files.  Transform
      them to `INTERFACE` libraries in such cases.
      
      For `install(TARGETS)`, activate this when no destination for the object
      files is specified.  For `export`, activate this only under Xcode with
      multiple architectures when we have no well-defined object file
      locations to give to clients.
      ea0ce73a
  6. 18 Apr, 2017 1 commit
  7. 09 Mar, 2016 1 commit
    • Brad King's avatar
      Drop Visual Studio 6 generator · b42866a3
      Brad King authored
      This generator has been deprecated since CMake 3.3.  Remove it.
      Update documentation, modules, and tests to drop content specific
      to this generator.
      b42866a3
  8. 15 Jan, 2016 3 commits
  9. 13 Jan, 2016 1 commit
  10. 25 Sep, 2015 1 commit
  11. 24 Sep, 2015 1 commit
  12. 23 Sep, 2015 1 commit
  13. 20 Aug, 2015 1 commit
    • Brad King's avatar
      Tests: Cover NO_SONAME property for SHARED libraries · 899458ab
      Brad King authored
      This property was added by commit v2.8.9~204^2~2 (Support building
      shared libraries or modules without soname, 2012-04-22).  A test for
      using the property on MODULE libraries was added by commit
      v2.8.9~204^2~1 (Test NO_SONAME property, 2012-04-23).  Add such a test
      for SHARED libraries too.
      899458ab
  14. 12 Aug, 2015 1 commit
  15. 09 Jul, 2015 1 commit
  16. 11 Feb, 2015 1 commit
    • Brad King's avatar
      install: Allow generator expressions in TARGETS DESTINATION (#14317) · f30022eb
      Brad King authored
      This will allow per-config destinations for targets in EXPORT sets.
      Using multiple install(TARGETS) with separate CONFIGURATIONS is
      rejected as a target appearing more than once in an export set.
      Now instead one can write
      
       install(TARGETS foo EXPORT exp DESTINATION lib/$<CONFIG>)
      
      to get a single logical membership of the target in the export set
      while still having a per-config destination.
      f30022eb
  17. 15 Dec, 2014 1 commit
    • Brad King's avatar
      install: Allow absolute EXPORT destination with relative targets (#15258) · dd089e08
      Brad King authored
      When install(EXPORT) is given an absolute destination we cannot compute
      the install prefix relative to the installed export file location.
      Previously we disallowed installation of targets in such exports with a
      relative destination, but did not enforce this for target property
      values besides the location of the main target file.  This could lead to
      broken installations when the EXPORT is installed to an absolute path
      but usage requirements are specified relative to the install prefix.
      
      Since an EXPORT installed to an absolute destination cannot be relocated
      we can just hard-code the value of CMAKE_INSTALL_PREFIX as the base for
      relative paths.  This will allow absolute install(EXPORT) destinations
      to work with relative destinations for targets and usage requirements.
      
      Extend the ExportImport test with a case covering this behavior.
      dd089e08
  18. 21 Feb, 2014 1 commit
  19. 26 Nov, 2013 3 commits
    • Stephen Kelly's avatar
      Export: Prefix relative items with genexes in INSTALL_INTERFACE. · 7a3e45b9
      Stephen Kelly authored
      Code such as
      
       target_include_directories(foo INTERFACE
         $<INSTALL_INTERFACE:include$<FOO>>
       )
      
      should be treated as a relative directory, despite the genex, after
      the INSTALL_INTERFACE is stripped away.
      
      Previously, this would generate a relative directory on export, which
      would be an error on import, so no policy is needed.
      7a3e45b9
    • Stephen Kelly's avatar
      Export: Process INSTALL_INTERFACE in INCLUDES DESTINATION. · f088a324
      Stephen Kelly authored
      Code such as
      
       install(TARGETS ...
         INCLUDES DESTINATION $<INSTALL_INTERFACE:include>
       )
      
      should behave as if the INSTALL_INTERFACE wrapper were not present.
      f088a324
    • Stephen Kelly's avatar
      Export: Process relative includes after genex evaluation. · 9eedc850
      Stephen Kelly authored
      In code such as
      
       install(TARGETS ...
         INCLUDES DESTINATION $<FOO>include
       )
      
      the generator expressions are evaluated at generate-time. Delay
      determining whether each entry is a relative path until after
      the generator expressions are evaluated. Such relative paths
      are based relative to the CMAKE_INSTALL_PREFIX.
      9eedc850
  20. 07 Oct, 2013 2 commits
  21. 24 Sep, 2013 1 commit
  22. 26 Aug, 2013 2 commits
  23. 31 Jul, 2013 1 commit
  24. 29 Jul, 2013 1 commit
  25. 25 Jul, 2013 1 commit
  26. 24 Jul, 2013 2 commits
  27. 16 Jul, 2013 1 commit
    • Brad King's avatar
      Fix ExportImport test cmp0022NEW build on Watcom · 295a42c9
      Brad King authored
      The test uses generate_export_header(cmp0022OLD ...) to generate the
      cmp0022_export.h header used by both cmp0022OLD and cmp0022NEW.  In
      the latter the _EXPORTS symbol does not match what the header expects
      so the library does not export anything.  The Watcom linker does not
      like to create shared libraries that do not export any symbols.
      
      Fix this by setting the DEFINE_SYMBOL property on cmp0022NEW to match
      that of cmp0022OLD as the header expects.
      295a42c9
  28. 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
  29. 02 Jul, 2013 1 commit
    • Stephen Kelly's avatar
      Test non-IMPORTED libraries in the INTERFACE of IMPORTED libraries. · 4f7ceb56
      Stephen Kelly authored
      If a non-IMPORTED library is added to the INTERFACE_LINK_LIBRARIES
      of a IMPORTED target, the non-IMPORTED target needs to become a
      target dependency and link dependency of the consuming target.
      
      This is already the case since commit 30962029 (Make targets depend
      on the link interface of their dependees, 2012-12-26), and fixed in
      the parent commit, so test that it works.
      4f7ceb56
  30. 10 Jun, 2013 1 commit
  31. 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
  32. 26 Mar, 2013 1 commit
    • Stephen Kelly's avatar
      install(EXPORT): Ensure clean INTERFACE_INCLUDE_DIRECTORIES · af81a3c3
      Stephen Kelly authored
      Check that source and binary directories are not part of the
      INTERFACE_INCLUDE_DIRECTORIES for installed IMPORTED targets.
      
      This is limited to directories which do not contain generator
      expressions to evaluate. Such paths can only be checked at time
      of use of the imported target, which will be done in a follow up
      patch.
      af81a3c3
  33. 19 Mar, 2013 1 commit