The Ninja generator preprocesses and compiles separately for Fortran.
When compiling, tell gfortran that the source is already preprocessed so
that it will honor the `# <line>` directives when producing diagnostics
messages.
Fixes: #17160
With MSVC the Ninja generator extracts the `cl -showIncludes` prefix.
When MSVC is configured to have non-English output, e.g. via
`VSLANG=2052` in the environment, then `cl` prints the prefix encoded
for the current code page, which is not necessarily UTF-8 encoding.
Currently we fail to convert the prefix to our internal UTF-8 encoding,
but assume it is UTF-8 later.
While writing `rules.ninja`, the Ninja generator converts our internal
UTF-8 encoding to the current code page. The `msvc_deps_prefix =` line
needs to be encoded as the current code page so that `ninja` can match
in the output from `cl -showIncludes` during the build.
Prior to commit v3.9.0-rc1~47^2 (codecvt: Re-implement do_out and
do_unshift, 2017-05-25), the non-UTF-8 prefix extracted above was
written without noticing its incorrect internal encoding. The
`rules.ninja` file was successfully written, but possibly with a mangled
`msvc_deps_prefix`. Since that commit the output stream correctly
rejects the non-UTF-8 byte sequence and writing `rules.ninja` fails.
Fix this by correctly converting the `cl -showIncludes` output from the
current code page to our internal UTF-8 encoding.
Fixes: #17191
This reverts commit v3.9.0-rc1~287^2 (macOS: Enable Hi-DPI support in
applications by default, 2017-04-08). It breaks iOS applications that
do not use their own `MACOSX_BUNDLE_INFO_PLIST` because `NSApplication`
is only for macOS apps. Until more complete support for iOS is added
to CMake (e.g. with a different default plist file) we must allow
our default plist file to work for both macOS and iOS.
Fixes: #17179
Store the `VC###` component of the `Microsoft.VC###.CRT` directory name
in a variable set based on the toolchain version. Its naming convention
is changed by VS 15.3.
c1f4f13d FindCUDA: Use long brackets to handle spaces in CUDA_NVCC_COMPILE_DEFINITIONS
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1139
Debian renames all LLVM/Clang binaries with a version suffix to allow
multiple versions to be installed at the same time. While there is a
version-agnostic package that adds a symlink to provide the standard
binary names, if only the versioned packages are installed, binaries
must be found as `binary-x.y`. In any case, using the same version of
the `binutils` as the compiler seems better.
The change in commit v3.9.0-rc1~54^2 (FindCygwin: Use find_program
instead of find_path, 2017-05-18) broke cases when `CYGWIN_INSTALL_PATH`
is already set, e.g. on the command-line or by an earlier call to
`find_package(Cygwin)`. Since `find_program` now finds the actual
`cygwin.bat` file, use a separate cache entry to save the location
and then compute `CYGWIN_INSTALL_PATH`. If `CYGWIN_INSTALL_PATH`
is already set, use that to avoid `find_program` having to search.
- Search for NuGet packages on Windows, which is the new way the
official binary builds are distributed for 3.7.0
- Search for C++11 versions of libraries, with "++11" suffix,
taking Windows naming inconsistencies into account (Windows
libraries have a "37" suffix, but this is placed /before/
the "++11".
- Add new Ice 3.7 programs
- Document new Ice 3.7 components
- Add debug output for search suffixes
- Simplify debug logic
The pkgconfig dir is placed at `${PREFIX}/libdata/pkgconfig` on FreeBSD
instead of `${PREFIX}/lib/pkgconfig`, where `${PREFIX}` is `/usr/local`
as default.
4956fc26 FindHDF5: fixes for HL when using an imported config
4150048a FindHDF5: unset some variables
9310d008 FindHDF5: for a static imported config, use CONFIG-specific library
fc982844 FindHDF5: fix hdf5-config case with more than one configuration
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1064
If `CMAKE_SYSROOT` is set by the user (e.g. via the toolchain file) then
we do not set `CMAKE_SYSROOT_COMPILE` to our default. Fix our
references to the sysroot's `/usr/include` directory to use
`CMAKE_SYSROOT_COMPILE` only if it is set and else `CMAKE_SYSROOT`.
Fixes: #17096