Skip to content
Snippets Groups Projects
  1. Oct 24, 2016
    • Brad King's avatar
      Android: Link position-independent executables with proper flags · 4c272adb
      Brad King authored
      Add `-fPIE -pie` to the default executable link flags when
      `CMAKE_POSITION_INDEPENDENT_CODE` is enabled.  This is required by
      Android 16 and above for executables to run on the device.
      
      Closes: #16382
      4c272adb
    • Brad King's avatar
      Android: Set CMAKE_POSITION_INDEPENDENT_CODE automatically · 6205f179
      Brad King authored
      If the toolchain file or cache does not set this, enable it
      automatically based on the Android API version.  Versions 16
      and above expect position independent code.
      
      Use the main `CMAKE_POSITION_INDEPENDENT_CODE` setting in favor of
      hard-coding `-fpic` or `-fPIC` in the compiler flags for each ABI.
      This allows CMake to use `-fpie` or `-fPIE` as needed when sources
      are meant for executables, and `-fpic` or `-fPIC` for other sources.
      6205f179
  2. Oct 21, 2016
  3. Oct 18, 2016
    • Brad King's avatar
      VS: Fix NVIDIA Nsight Tegra Visual Studio Edition support · 06c39612
      Brad King authored
      The guard added by commit v3.7.0-rc1~229^2~17 (Android: Suppress new
      functionality with Nsight Tegra in VS IDE builds, 2016-06-02) to
      `Modules/Platform/Android-Determine.cmake` does not work in that
      location because `CMAKE_VS_PLATFORM_NAME` is not set until after the
      module is loaded.  Change this particular guard to test for the Visual
      Studio generator instead.  If in the future we add support for using
      Visual Studio for Android without Nsight Tegra then something more will
      be needed, but this is good enough for now.
      
      Closes: #16371
      06c39612
  4. Oct 17, 2016
  5. Oct 07, 2016
  6. Oct 06, 2016
  7. Sep 28, 2016
    • Roman's avatar
      VS: Recognize VS/LLVM toolset names as Clang · 3f300b84
      Roman authored and Brad King's avatar Brad King committed
      Update the toolset name matching added by commit v3.6.0-rc1~279^2~10
      (VS: in Clang/C2 toolset, setup correct compiler settings, 2016-02-18)
      to match VS/LLVM toolset names too.
      3f300b84
  8. Sep 27, 2016
    • 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.
      86578ecc
  9. Sep 25, 2016
    • Gregor Jasny's avatar
      Xcode: Convert maybe unversioned OSX sysroot into versioned SDK path · 540815ee
      Gregor Jasny authored
      Starting with Xcode 8 the SDK folder also contains an unversioned
      entry:
      
      $ ls -l /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
      
      drwxr-xr-x  5 root  wheel  170 Mar  4  2018 MacOSX.sdk
      lrwxr-xr-x  1 root  wheel   10 Sep 16 20:49 MacOSX10.12.sdk -> MacOSX.sdk
      
      If this unversioned path is used CMake cannot detect the SDK
      version. To work around the problem we always invoke the code path
      that translates short SDK names like "macosx10.12" into a path.
      That way we always end up with a versioned SDK path in
      _CMAKE_OSX_SYSROOT_PATH which is later used to determine the version.
      
      Closes: #16323
      540815ee
  10. Sep 05, 2016
  11. Aug 23, 2016
  12. Aug 12, 2016
  13. Aug 05, 2016
  14. Aug 02, 2016
  15. Jul 27, 2016
    • Daniel Pfeifer's avatar
      Use string(APPEND) in Modules · 5d0d980d
      Daniel Pfeifer authored
      Automate with:
      
      find Modules -type f -print0 | xargs -0 perl -i -0pe \
      's/set\(([a-zA-Z0-9_]+)(\s+)"\$\{\1\}([^"])/string(APPEND \1\2"\3/g'
      5d0d980d
  16. Jul 14, 2016
  17. Jul 13, 2016
  18. Jul 06, 2016
    • 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 "...")
      
      to
      
          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.
      a66004be
    • 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.
      cdde77e5
  19. Jul 05, 2016
    • Brad King's avatar
      Intel: Do not use MSVC-like flags for Fortran · 5a3ed0d7
      Brad King authored
      Teach `Modules/Platform/Windows-MSVC.cmake` not to use MSVC options
      for Fortran.  We use the `__windows_compiler_msvc` for the Intel
      Fortran compiler on Windows for other settings, but we do not want
      the flags.
      
      Previously this worked only because the options were later overridden
      by `Modules/Platform/Windows-Intel*.cmake`, but it is cleaner to not
      set the options in the first place.
      5a3ed0d7
Loading