1. 02 Aug, 2019 1 commit
    • Brad King's avatar
      Brad King authored
      The `CMAKE_LINK_LIBRARY_FILE_FLAG` variable is meant for linkers that
      want library file paths to be preceded by a flag.  This is used only
      for OpenWatcom to add the `library` argument before library file paths.
      Refactor the approach to treat `CMAKE_LINK_LIBRARY_FILE_FLAG` as a
      command-line string fragment to add just before the library file path.
      This has two advantages:
      * `CMAKE_LINK_LIBRARY_FILE_FLAG` can now be an attached flag whose value
        is the library file path.
      Technically this is a change in behavior, but this setting was created
      for internal use and should be rarely used outside of CMake itself.
      Fixes: #19541
  2. 27 Sep, 2016 1 commit
    • Brad King's avatar
      Simplify CMake per-source license notices · 86578ecc
      Brad King authored
      Per-source copyright/license notice headers that spell out copyright holder
      names and years are hard to maintain and often out-of-date or plain wrong.
      Precise contributor information is already maintained automatically by the
      version control tool.  Ultimately it is the receiver of a file who is
      responsible for determining its licensing status, and per-source notices are
      merely a convenience.  Therefore it is simpler and more accurate for
      each source to have a generic notice of the license name and references to
      more detailed information on copyright holders and full license terms.
      Our `Copyright.txt` file now contains a list of Contributors whose names
      appeared source-level copyright notices.  It also references version control
      history for more precise information.  Therefore we no longer need to spell
      out the list of Contributors in each source file notice.
      Replace CMake per-source copyright/license notice headers with a short
      description of the license and links to `Copyright.txt` and online information
      available from "https://cmake.org/licensing".  The online URL also handles
      cases of modules being copied out of our source into other projects, so we
      can drop our notices about replacing links with full license text.
      Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority
      of the replacements mechanically.  Manually fix up shebang lines and trailing
      newlines in a few files.  Manually update the notices in a few files that the
      script does not handle.
  3. 14 Jul, 2016 1 commit
  4. 06 Jul, 2016 2 commits
    • Brad King's avatar
      Honor CMAKE_<LANG>_FLAGS[_<CONFIG>]_INIT set in toolchain files · a66004be
      Brad King authored
      Document these variables.
      Change our convention for setting these variables from:
          set(CMAKE_C_FLAGS_INIT "...")
          string(APPEND CMAKE_C_FLAGS_INIT " ...")
      so that any value previously set by a toolchain file will be used.
      Automate the conversion with:
          sed -i 's/set *(\(CMAKE_\(C\|CXX\|Fortran\|RC\|ASM\|${[^}]\+}\)_FLAGS\(_[^_]\+\)\?_INIT \+"\)/string(APPEND \1 /' \
            Modules/Compiler/*.cmake Modules/Platform/*.cmake
      and follow up with some manual fixes (e.g. to cases that already
      meant to append).  Also revert the automated changes to contexts
      that are not protected from running multiple times.
    • Brad King's avatar
      OpenWatcom: Partially modernize platform information modules · cdde77e5
      Brad King authored
      Migrate from the old `<os>-<cc>.cmake` layout to the modern
      `<os>-<id>-<lang>.cmake` layout.  Keep settings common to C and C++ in a
      `Windows-OpenWatcom.cmake` helper module with an include blocker.
      For now just add both C and CXX settings in the helper module.
  5. 13 Jul, 2015 2 commits
    • Brad King's avatar
      Factor an <INCLUDES> placeholder out of <FLAGS> in rule variables · c736de7b
      Brad King authored
      Teach the Makefile and Ninja generators to substitute for an <INCLUDES>
      placeholder instead of putting -I in <FLAGS>.  Update our values for
      to place <INCLUDES> just before <FLAGS>.
    • Brad King's avatar
      Place <DEFINES> before <FLAGS> consistently across compilers · 6f94b03c
      Brad King authored
      Update our values for
      to place <DEFINES> before <FLAGS> consistently across supported
      compilers.  We already do this for most compilers, so update the rest
      for consistency.
  6. 03 Nov, 2014 1 commit
    • Jim B's avatar
      Watcom: Drop symfile linker option · 6b63942e
      Jim B authored
      Cleanup of Windows-wcl386.cmake in commit v3.1.0-rc1~693^2 (Watcom:
      Cleanup Windows-wcl386 configuration, 2014-04-01) also introduced use of
      the 'symfile' link option but did not mention it in the commit message.
      There is no way to set the symbol file name of a target, so it is better
      to revert that change.  It is easy to run 'wstrip *' if the symbols need
      to be stripped, but it is very difficult to get the right names for the
      .sym files to install with debug/rel_with_deb_info configurations.
  7. 08 Apr, 2014 1 commit
  8. 02 Apr, 2014 1 commit
    • Jiri Malak's avatar
      Watcom: Cleanup Windows-wcl386 configuration · 1e22b23c
      Jiri Malak authored
      * Remove Watcom linker caseexact options already defined in system
      * Use win_dll system for SHARED_LIBRARY and SHARED_MODULE.
      * Use explicit target definition -bt=.. option for proper initialization
        of compiler Windows environment (predefined macros)
      * Reorganize compiler options to global options and configuration
        specific options
      * Use option to optimize out stack checking code for release version
  9. 27 Mar, 2014 1 commit
    • Jiri Malak's avatar
      Makefile: Generate single-quoted object lists for Watcom · 423009c1
      Jiri Malak authored
      Drop the CMAKE_NO_QUOTED_OBJECTS internal variable from the Makefile
      generators.  The underlying problem is with the Watcom linker, not with
      WMake.  The Watcom linker wants object files to be single-quoted.  Add
      <LINK-RULE>_USE_WATCOM_QUOTE platform information variables to tell the
      generators to use Watcom-style single quotes for object files on link
      On Windows, Watcom uses the GetCommandLine API to get the original
      command-line string and do custom parsing that expects single quotes.
      On POSIX systems, Watcom approximates the original command line by
      joining all argv[] entries separated by a single space.  Therefore we
      need to double-quote the single-quoted arguments so that the shell does
      not consume them and they are available for the parser to see.
  10. 17 Mar, 2014 1 commit
  11. 28 Feb, 2014 1 commit
  12. 27 Feb, 2014 1 commit
    • Brad King's avatar
      Watcom: Fix creation of DLLs without any exported symbols · 00503d38
      Brad King authored
      Create each DLL import library by passing "option implib=..." to the
      linker for its SHARED library.  This works even when there are no
      symbols to be exported.  Leave the option out for MODULE libraries
      because we do not need an import library for them.  For executables,
      retain the separate invocation of wlib because we want an import
      library only when the ENABLE_EXPORTS property is set, and in that
      case the project should provide symbols.
      Suggested-by: Jim B's avatarJ Decker <d3ck0r@gmail.com>
  13. 13 Aug, 2012 3 commits
    • Kitware Robot's avatar
      Remove CMake-language block-end command arguments · 9db31162
      Kitware Robot authored
      Ancient versions of CMake required else(), endif(), and similar block
      termination commands to have arguments matching the command starting the
      block.  This is no longer the preferred style.
      Run the following shell code:
      for c in else endif endforeach endfunction endmacro endwhile; do
          echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/'
      done >convert.sed &&
      git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' |
      egrep -z -v '^(Utilities/cm|Source/kwsys/)' |
      egrep -z -v 'Tests/CMakeTests/While-Endwhile-' |
      xargs -0 sed -i -f convert.sed &&
      rm convert.sed
    • Kitware Robot's avatar
      Convert CMake-language commands to lower case · 77543bde
      Kitware Robot authored
      Ancient CMake versions required upper-case commands.  Later command
      names became case-insensitive.  Now the preferred style is lower-case.
      Run the following shell code:
      cmake --help-command-list |
      grep -v "cmake version" |
      while read c; do
          echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g'
      done >convert.sed &&
      git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' |
      egrep -z -v '^(Utilities/cm|Source/kwsys/)' |
      xargs -0 sed -i -f convert.sed &&
      rm convert.sed
    • Brad King's avatar
      Watcom: Simplify compiler version detection (#11866) · af42ae4f
      Brad King authored
      Since commit c198730b (Detect Watcom compiler version with its id,
      2011-12-07) the CMAKE_(C|CXX)_COMPILER_VERSION variables are set for the
      Watcom compiler.  Use these in Windows-wcl386.cmake to set the old
      WATCOM1* version variables.  This avoids using the old EXECUTE_PROCESS
      command which failed due to extra quotes anyway.
  14. 12 Jun, 2012 1 commit
  15. 01 Aug, 2011 1 commit
  16. 29 Jul, 2011 2 commits
  17. 02 Sep, 2010 1 commit
  18. 01 Jun, 2010 1 commit
  19. 28 Jan, 2010 1 commit
  20. 30 Nov, 2009 1 commit
    • Brad King's avatar
      Singly-quote target names for Watcom linker · 4f43c1f2
      Brad King authored
      The Watcom tools do their own command-line parsing and do not accept
      double-quotes.  Instead we single-quote the target output name when
      invoking wlink and other Watcom tools.  This fixes support for spaces in
      the target output directory path when it is not under the build tree.
  21. 23 Jan, 2008 1 commit
  22. 14 Jan, 2008 1 commit
  23. 16 May, 2007 1 commit
  24. 22 Mar, 2007 1 commit
  25. 10 Mar, 2007 1 commit
  26. 11 Apr, 2006 1 commit
  27. 18 Feb, 2006 1 commit
  28. 17 Jan, 2006 1 commit