1. 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
      
        CMAKE_<LANG>_COMPILE_OBJECT,
        CMAKE_<LANG>_CREATE_ASSEMBLY_SOURCE, and
        CMAKE_<LANG>_CREATE_PREPROCESSED_SOURCE
      
      to place <INCLUDES> just before <FLAGS>.
      c736de7b
    • Brad King's avatar
      Place <DEFINES> before <FLAGS> consistently across compilers · 6f94b03c
      Brad King authored
      Update our values for
      
        CMAKE_<LANG>_COMPILE_OBJECT,
        CMAKE_<LANG>_CREATE_ASSEMBLY_SOURCE, and
        CMAKE_<LANG>_CREATE_PREPROCESSED_SOURCE
      
      to place <DEFINES> before <FLAGS> consistently across supported
      compilers.  We already do this for most compilers, so update the rest
      for consistency.
      6f94b03c
  2. 10 Jul, 2015 1 commit
  3. 09 Jul, 2015 3 commits
  4. 08 Jul, 2015 2 commits
  5. 06 Jul, 2015 4 commits
    • Brad King's avatar
      Add rudimentary support for the Apple Swift language with Xcode · bf112531
      Brad King authored
      Allow the `Swift` language to be enabled with the Xcode generator for
      Xcode >= 6.1.  Reject it on other generators and with older Xcode
      versions.  Since Apple is the only vendor implementing the language
      right now, the compiler id can be just `Apple`.
      bf112531
    • James Johnston's avatar
      ExternalProject: Added new USES_TERMINAL options · e4947639
      James Johnston authored
      Added new USES_TERMINAL option to the ExternalProject_Add_Step
      function.  This option passes USES_TERMINAL to the underlying
      add_custom_command call so that the Ninja console pool is used.
      Also, corresponding new USES_TERMINAL_<step> options were added
      to the ExternalProject_Add function.
      
      Justification: if using Ninja with a CMake superbuild, it's often
      desirable to limit the superbuild to ONE sub-Ninja process at a
      time to avoid oversubscribing the CPU.  Using the console pool also
      makes it easy to monitor the progress of the sub-Ninja process.
      
      Independent USES_TERMINAL_<step> arguments are passed to
      ExternalProject_Add instead of one USES_TERMINAL argument that
      controls everything.  Users may wish to run some steps in parallel
      but not others (e.g. parallelize configure but not build).
      e4947639
    • Matt McCormick's avatar
      FindPythonLibs: Find the python.org libraries (#14809) · 02fd0356
      Matt McCormick authored
      Address the test case
      
        cmake_minimum_required(VERSION 2.8)
        set(Python_ADDITIONAL_VERSIONS 3.4 3.5 3.6)
        find_package(PythonLibs 3 REQUIRED)
      
      with a Python 3.4.x .pkg installed from python.org on OSX.
      
      Temporarily set CMAKE_FIND_FRAMEWORK to LAST to avoid finding the
      system Python.h prematurely.
      
      Add directories inside the frameworks to the search list for the library
      as is done for the header.
      02fd0356
    • Bill Hoffman's avatar
      Windows: Optionally generate DLL module definition files automatically · 8f86407c
      Bill Hoffman authored
      Create target property WINDOWS_EXPORT_ALL_SYMBOLS to automatically
      generate a module definition file from MS-compatible .obj files and give
      it to the linker in order to export all symbols from the .dll part of a
      SHARED library.
      8f86407c
  6. 02 Jul, 2015 1 commit
  7. 30 Jun, 2015 2 commits
    • Betsy McPhail's avatar
      ctest: Optionally avoid starting tests that may exceed a given CPU load · f62d301b
      Betsy McPhail authored
      Add a TestLoad setting to CTest that can be set via a new --test-load
      command-line option, CTEST_TEST_LOAD variable, or TEST_LOAD option to
      the ctest_test command.  Teach cmCTestMultiProcessHandler to measure
      the CPU load and avoid starting tests that may take more than the
      spare load currently available.  The expression
      
       <current_load> + <test_processors> <= <max-load>
      
      must be true to start a new test.
      
      Co-Author: Zack Galbreath <zack.galbreath@kitware.com>
      f62d301b
    • Brad King's avatar
      CMakeDetermineCompilerId: Use per-language regex to match Xcode compiler tool · 99d16038
      Brad King authored
      Move the Ld invocation match expression from CMakeDetermineCompilerId
      into CMakeDetermine{C,CXX,Fortran}Compiler so that it can be specified
      on a per-language basis.
      99d16038
  8. 29 Jun, 2015 1 commit
  9. 26 Jun, 2015 1 commit
    • Brad King's avatar
      VS: Add /machine: flag to Librarian tool (#11240) · 806609c7
      Brad King authored
      If a Windows resource (.rc) source file is included in a STATIC library,
      the VS "link" tool will process the compiled ".res" file and needs to know
      the target architecture.  Without it, we may get a LNK4068 warning and
      possibly a LNK1112 error.  Add /machine: to the default static library
      flags to give the link tool the information it needs.
      806609c7
  10. 25 Jun, 2015 2 commits
    • Brad King's avatar
      CMakeDetermineCompilerId: Simplify src reference in IDE projects · 8306108f
      Brad King authored
      When constructing the "id_src" value for substitution into VS or Xcode
      compiler id projects, the input "src" variable already contains the file
      name with no path so we do not need get_filename_component.  We know
      this because CMAKE_DETERMINE_COMPILER_ID_WRITE already references
      "${src}" with this assumption.
      8306108f
    • Brad King's avatar
      Help: Revise CheckIncludeFile* documentation · 81d58b0d
      Brad King authored
      Improve formatting.  Link from each module to the other two.  Explain
      the command signatures in more detail.
      81d58b0d
  11. 23 Jun, 2015 2 commits
  12. 18 Jun, 2015 6 commits
    • James Johnston's avatar
      Embarcadero: Run at most one linker invocation at a time (#15620) · 078b60f0
      James Johnston authored
      At least some versions (e.g. C++ Builder 5) of the bcc32 linker are known to
      write temporary files with a constant name to the current directory (e.g.
      "turboc.$ln").  (This can be verified by using Process Monitor to watch the
      file writes that bcc32 / ilink32 / implib make).  This causes problems with
      some generators that keep a constant current directory and run concurrent
      linkers.
      
      For example, the Ninja generator, by default, always has the current directory
      set to the top of the build tree - resulting in conflicts between the linkers
      that are simultaneously trying to write to "turboc.$ln".  Symptoms include
      direct errors regarding the "turboc.$ln" file, or later build steps failing due
      to corrupted output from previous links that happened to link "successfully."
      
      This is not a problem for the Borland Makefiles generator which does not
      run jobs in parallel.  For the Ninja generator, work around this problem
      by using a link job pool of size 1.
      078b60f0
    • Brad King's avatar
      Add support for Concurrent Fortran 77 Compiler · 7cd539b1
      Brad King authored
      
      
      The Concurrent Fortran compiler (ccur.com) is available on Linux and can
      be used much like the GNU Fortran compiler.  Currently it has no
      preprocessor symbols to identify it so we need to detect it by matching
      compiler output.
      Suggested-by: default avatarAnthony Ette <Anthony.R.Ette@controlsdata.com>
      7cd539b1
    • Brad King's avatar
      CMakeDetermineCompilerId: Try matching compiler output to detect id · 0d204c1c
      Brad King authored
      Some compilers can only be distinguished by their compilation output
      rather than preprocessor symbols or special flags.  Add infrastructure
      to determine the compiler id by matching output.
      0d204c1c
    • Brad King's avatar
      CMakeDetermineCompilerId: Refactor id build/check loop logic · 5f0dad75
      Brad King authored
      Callers of CMAKE_DETERMINE_COMPILER_ID initialize the
      CMAKE_${lang}_COMPILER_ID to unset so we can check it at the end of each
      loop iteration instead of the beginning.  This approach allows us to
      break out of the loop as soon as we succeed.  It will also allow checks
      to be added in more places within the loop later.
      5f0dad75
    • Brad King's avatar
      CMakeDetermineCompilerId: Optionally try some flags before no flags · c65a060e
      Brad King authored
      Teach CMAKE_DETERMINE_COMPILER_ID to optionally try detecting the
      compiler id using some given flags before trying to detect it with no
      special flags.  This will be useful for Fortran detection to distinguish
      some compilers that use the preprocessors of others but have no macro of
      their own by getting verbose output.
      c65a060e
    • Alex Turbov's avatar
      GNUInstallDirs: Add special cases for certain prefixes · c8bd37ec
      Alex Turbov authored
      Teach the module to handle SYSCONFDIR and LOCALSTATEDIR properly if
      CMAKE_INSTALL_PREFIX is set to `/` or `/usr` -- i.e. as expected by GNU
      Coding Standard (i.e. set SYSCONFDIR to `/etc` and `LOCALSTATEDIR` to
      `/var`).  Also if CMAKE_INSTALL_PREFIX is set to /opt/pkg, `SYSCONFDIR`
      must be set to `/etc/opt/pkg` and `LOCALSTATEDIR` to `/var/opt/pkg`
      according to FHS.
      c8bd37ec
  13. 16 Jun, 2015 2 commits
  14. 15 Jun, 2015 1 commit
  15. 09 Jun, 2015 4 commits
  16. 08 Jun, 2015 2 commits
    • Brad King's avatar
      Windows-GNU: Restore find_library treatment of '.dll' as linkable (#15409) · f5dbf00d
      Brad King authored
      Revert commit v3.3.0-rc1~435^2 (Windows-GNU: Do not tell find_library to
      treat '.dll' as linkable, 2015-02-18).  MinGW tools support linking to
      '.dll' files directly and many non-CMake build systems still do not
      provide a separate '.dll.a' file.
      f5dbf00d
    • Brad King's avatar
      FindwxWidgets: Fix find_program call for versioned names · 2c969743
      Brad King authored
      In commit v3.3.0-rc1~132^2 (FindwxWidgets: Search for wx-config-3.0 in
      addition to wx-config, 2015-04-29) we added a second (versioned) name to
      the find_program call.  Specifying multiple names requires use of the
      NAMES option.  Add it now.  While at it, also add versioned names for
      2.9 and 2.8.
      2c969743
  17. 03 Jun, 2015 2 commits
  18. 02 Jun, 2015 1 commit
  19. 01 Jun, 2015 1 commit
    • Tamar Kranenburg's avatar
      FindPostgreSQL: Search some more common packaging locations · d4fd30d8
      Tamar Kranenburg authored
      Use PATH_SUFFIXES to search more common packaging locations.
      
      On Windows, we can use suffixes to search in the standard Program Files
      locations without hard-coding the C:/ path.
      
      On Ubuntu/Debian, starting with PostgreSQL 9.3 the header file pg_type.h
      is moved to a separate package (from libpq-dev to postgresql-server-dev)
      and consequently the file pg_type.h is moved to a new location:
      
        /usr/include/postgresql/<version>/server/catalog/pg_type.h
      
      While at it, use separate PATH_SUFFIXES variables for library, type and
      include (this is merely an optimization).
      d4fd30d8