GCC 8.1.0 now gives an error if `strncpy` is called with a bound
depending on the length of the source argument. Replace `strncpy` with
`strcpy` as the length is known a priori.
Fixes: #18038
Since commit v3.8.0-rc1~51^2~1 (TestDriver: calc NumTests at compile
time, 2017-01-24) we convert an expression that uses `sizeof()` to an
`int` as a compile-time constant. Some GCC versions warn about this
with `-Wconversion`. Add a cast to avoid the warning.
Teach the VS 2015 generator to support WindowsStore 10.0 applications.
Add target properties to customize them:
* VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION: Specifies the minimum version
of the OS that the project can target.
* VS_DESKTOP_EXTENSIONS_VERSION, VS_MOBILE_EXTENSIONS_VERSIONS,
VS_IOT_EXTENSIONS_VERSION: Add a reference to the version of the SDK
specified to the target allowing to target the extended functionality in
a universal project.
* VS_IOT_STARTUP_TASK: Specifies that the target should be
built as an IOT continuous background task.
The latter is now the preferred URL for visiting cmake.org with a
browser. Convert using the shell code:
git ls-files -z | xargs -0 sed -i 's|http://www\.cmake|https://cmake|g'
* Add AppContainerApplication to non-UTILITY targets
* Generate app manifest and related files if project does not provide them.
Place them in a per-target directory to avoid clashes.
* Mark WinRT components with WinMDAssembly
* Import Windows Phone 8.0 targets in .vcxproj files when necessary,
and reference platform.winmd.
Inspired-by: Paul Annetts <paul@lightunobscured.com>
Teach set_property and get_property an "INSTALL" property type to be
associated with install-tree file paths. Make the properties available
to CPack for use during packaging. Add a "prop_inst" Sphinx domain
object type for documentation of such properties.
As reported by Coverity Scan, if the configured file contains a #include,
Untrusted array index read
The array index could be controlled by an attacker, leading to reads outside
the bounds of the array.
In main: Read from array at index computed using an unscrutinized value from
an untrusted source (CWE-129)
CID 1081283 (#1 of 1): Untrusted array index read (TAINTED_SCALAR)
25. tainted_data: Using tainted variable "testToRun" as an index into an array
"cmakeGeneratedFunctionMapEntries".
Commit 08cb4fa4 (Process generator expressions in the
INCLUDE_DIRECTORIES property, 2012-09-18) contained an incorrect
assumption that CMAKE_BUILD_TYPE was set on the makefile for each
generated configuration in multi-config generators. Fix that by making
the GetIncludeDirectories API depend on the config.
Remove variable documentation from the template in order to
avoid multiple location for doc update. Users can now retrieve
CPACK_xxx variable documentation from the command line.
This commit removes use of configuration-less cmTarget::GetDirectory()
by the VS 6 generator (except for compatibility with user templates).
We replace OUTPUT_DIRECTORY_<CONFIG> tokens in the templates using the
per-configuration result of cmTarget::GetDirectory(config).
This commit adds '#!/bin/sh' to the top of the cygwin-package.sh.in
script. All executable interpreted scripts should have this directive.
Patch from Modestas Vainius. See issue #9659.
These commits:
Adding image version number (major.minor) property to
windows binaries.
Added support for import libraries created by executable
and module targets.
added content to Templates/EXEHeader.dsptemplate that should also have
been added to Templates/EXEWinHeader.dsptemplate for the VS6 generator.
This commit corrects the error. See issue #9586.
This removes the file-wise installation rules for Modules and Templates
and instead installs the whole directories. This approach is much less
error-prone. The old approach was left from before CMake had the
install(DIRECTORY) command.
Since utility targets have no main output files like executables or
libraries, they do not define an output directory. This removes a call
to cmTarget::GetDirectory from cmLocalVisualStudio{6,7}Generator for
such targets.
add_custom_target() as COMMAND, and cmake will recognize them and replace
them with the actual output path of these executables. Also the dependency
will be added automatically. Test included.
ENH: moved TraceVSDependencies() to the end of GlobalGenerator::Configure(),
so it is done now in one central place
Alex