New upstream version 3.13.1

ci/unstable
Felix Geyer 6 years ago
parent 30ec847226
commit a8309966fd

@ -8,3 +8,15 @@ driver option and the rest of the option string defines linker arguments using
For example, ``"LINKER:-z,defs"`` becomes ``-Xlinker -z -Xlinker defs`` for
``Clang`` and ``-Wl,-z,defs`` for ``GNU GCC``.
The ``LINKER:`` prefix can be specified as part of a ``SHELL:`` prefix
expression.
The ``LINKER:`` prefix supports, as alternate syntax, specification of
arguments using ``SHELL:`` prefix and space as separator. Previous example
becomes ``"LINKER:SHELL:-z defs"``.
.. note::
Specifying ``SHELL:`` prefix elsewhere than at the beginning of the
``LINKER:`` prefix is not supported.

@ -21,6 +21,6 @@ the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)`
manual for available expressions. See the :manual:`cmake-buildsystem(7)`
manual for more on defining buildsystem properties.
.. include:: LINK_OPTIONS_LINKER.txt
.. include:: OPTIONS_SHELL.txt
.. include:: LINK_OPTIONS_LINKER.txt

@ -37,6 +37,6 @@ with the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)`
manual for available expressions. See the :manual:`cmake-buildsystem(7)`
manual for more on defining buildsystem properties.
.. include:: LINK_OPTIONS_LINKER.txt
.. include:: OPTIONS_SHELL.txt
.. include:: LINK_OPTIONS_LINKER.txt

@ -1,20 +1,20 @@
CPack Deb Generator
CPack DEB Generator
-------------------
The built in (binary) CPack Deb generator (Unix only)
The built in (binary) CPack DEB generator (Unix only)
Variables specific to CPack Debian (DEB) generator
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The CPack Deb generator may be used to create Deb package using :module:`CPack`.
The CPack Deb generator is a :module:`CPack` generator thus it uses the
The CPack DEB generator may be used to create DEB package using :module:`CPack`.
The CPack DEB generator is a :module:`CPack` generator thus it uses the
``CPACK_XXX`` variables used by :module:`CPack`.
The CPack Deb generator should work on any Linux host but it will produce
The CPack DEB generator should work on any Linux host but it will produce
better deb package when Debian specific tools ``dpkg-xxx`` are usable on
the build system.
The CPack Deb generator has specific features which are controlled by the
The CPack DEB generator has specific features which are controlled by the
specifics :code:`CPACK_DEBIAN_XXX` variables.
:code:`CPACK_DEBIAN_<COMPONENT>_XXXX` variables may be used in order to have
@ -22,13 +22,13 @@ specifics :code:`CPACK_DEBIAN_XXX` variables.
the **grouping name** written in upper case. It may be either a component name
or a component GROUP name.
Here are some CPack Deb generator wiki resources that are here for historic
Here are some CPack DEB generator wiki resources that are here for historic
reasons and are no longer maintained but may still prove useful:
- https://gitlab.kitware.com/cmake/community/wikis/doc/cpack/Configuration
- https://gitlab.kitware.com/cmake/community/wikis/doc/cpack/PackageGenerators#deb-unix-only
List of CPack Deb generator specific variables:
List of CPack DEB generator specific variables:
.. variable:: CPACK_DEB_COMPONENT_INSTALL
@ -64,7 +64,7 @@ List of CPack Deb generator specific variables:
* Mandatory : YES
* Default : ``<CPACK_PACKAGE_FILE_NAME>[-<component>].deb``
This may be set to ``DEB-DEFAULT`` to allow the CPack Deb generator to generate
This may be set to ``DEB-DEFAULT`` to allow the CPack DEB generator to generate
package file name by itself in deb format::
<PackageName>_<VersionNumber>-<DebianRevisionNumber>_<DebianArchitecture>.deb
@ -75,7 +75,7 @@ List of CPack Deb generator specific variables:
.. note::
Preferred setting of this variable is ``DEB-DEFAULT`` but for backward
compatibility with the CPack Deb generator in CMake prior to version 3.6 this
compatibility with the CPack DEB generator in CMake prior to version 3.6 this
feature is disabled by default.
.. note::
@ -279,7 +279,7 @@ List of CPack Deb generator specific variables:
.. variable:: CPACK_DEBIAN_PACKAGE_DEBUG
May be set when invoking cpack in order to trace debug information
during the CPack Deb generator run.
during the CPack DEB generator run.
* Mandatory : NO
* Default : -
@ -553,5 +553,5 @@ Reproducible packages
The environment variable ``SOURCE_DATE_EPOCH`` may be set to a UNIX
timestamp, defined as the number of seconds, excluding leap seconds,
since 01 Jan 1970 00:00:00 UTC. If set, the CPack Deb generator will
since 01 Jan 1970 00:00:00 UTC. If set, the CPack DEB generator will
use its value for timestamps in the package.

@ -1,7 +1,7 @@
CPack DMG Generator
-------------------
CPack DragNDrop Generator
-------------------------
DragNDrop CPack generator (macOS).
The DragNDrop CPack generator (macOS) creates a DMG image.
Variables specific to CPack DragNDrop generator
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

@ -21,11 +21,11 @@ install and package files as required.
Alternatively CPack can invoke an external packaging software
through an optional custom CMake script in
:variable:`CPACK_EXT_PACKAGE_SCRIPT` instead.
:variable:`CPACK_EXTERNAL_PACKAGE_SCRIPT` instead.
Staging of installation files may also optionally be
taken care of by the generator when enabled through the
:variable:`CPACK_EXT_ENABLE_STAGING` variable.
:variable:`CPACK_EXTERNAL_ENABLE_STAGING` variable.
JSON Format
^^^^^^^^^^^
@ -46,10 +46,10 @@ always of the format ``major.minor``. In other words, it always has exactly two
parts, separated by a period.
You can request one or more specific versions of the output format as described
below with :variable:`CPACK_EXT_REQUESTED_VERSIONS`. The output format will
below with :variable:`CPACK_EXTERNAL_REQUESTED_VERSIONS`. The output format will
have a major version that exactly matches the requested major version, and a
minor version that is greater than or equal to the requested minor version. If
no version is requested with :variable:`CPACK_EXT_REQUESTED_VERSIONS`, the
no version is requested with :variable:`CPACK_EXTERNAL_REQUESTED_VERSIONS`, the
latest known major version is used by default. Currently, the only supported
format is 1.0, which is described below.
@ -234,7 +234,7 @@ following fields in the root:
Variables specific to CPack External generator
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. variable:: CPACK_EXT_REQUESTED_VERSIONS
.. variable:: CPACK_EXTERNAL_REQUESTED_VERSIONS
This variable is used to request a specific version of the CPack External
generator. It is a list of ``major.minor`` values, separated by semicolons.
@ -248,7 +248,7 @@ Variables specific to CPack External generator
The generator knows how to generate the version if it has a versioned
generator whose major version exactly matches the requested major version,
and whose minor version is greater than or equal to the requested minor
version. For example, if ``CPACK_EXT_REQUESTED_VERSIONS`` contains 1.0, and
version. For example, if ``CPACK_EXTERNAL_REQUESTED_VERSIONS`` contains 1.0, and
the CPack External generator knows how to generate 1.1, it will generate 1.1.
If the generator doesn't know how to generate a version in the list, it skips
the version and looks at the next one. If it doesn't know how to generate any
@ -257,11 +257,11 @@ Variables specific to CPack External generator
If this variable is not set, or is empty, the CPack External generator will
generate the highest major and minor version that it knows how to generate.
If an invalid version is encountered in ``CPACK_EXT_REQUESTED_VERSIONS`` (one
If an invalid version is encountered in ``CPACK_EXTERNAL_REQUESTED_VERSIONS`` (one
that doesn't match ``major.minor``, where ``major`` and ``minor`` are
integers), it is ignored.
.. variable:: CPACK_EXT_ENABLE_STAGING
.. variable:: CPACK_EXTERNAL_ENABLE_STAGING
This variable can be set to true to enable optional installation
into a temporary staging area which can then be picked up
@ -274,7 +274,7 @@ Variables specific to CPack External generator
It also contains the staging area ``CPACK_TEMPORARY_DIRECTORY``
into which CPack performs the installation when staging is enabled.
.. variable:: CPACK_EXT_PACKAGE_SCRIPT
.. variable:: CPACK_EXTERNAL_PACKAGE_SCRIPT
This variable can optionally specify the full path to
a CMake script file to be run as part of the CPack invocation.

@ -13,7 +13,7 @@ depending on the installed package-management tools -- using :module:`CPack`.
The CPack FreeBSD generator is a :module:`CPack` generator and uses the
``CPACK_XXX`` variables used by :module:`CPack`. It tries to re-use packaging
information that may already be specified for Debian packages for the
:cpack_gen:`CPack Deb Generator`. It also tries to re-use RPM packaging
:cpack_gen:`CPack DEB Generator`. It also tries to re-use RPM packaging
information when Debian does not specify.
The CPack FreeBSD generator should work on any host with libpkg installed. The

@ -1,9 +1,9 @@
CPack WiX Generator
CPack WIX Generator
-------------------
CPack WiX generator specific options
CPack WIX generator specific options
Variables specific to CPack WiX generator
Variables specific to CPack WIX generator
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The following variables are specific to the installers built on
@ -50,11 +50,11 @@ Windows using WiX.
If CPACK_RESOURCE_FILE_LICENSE has an .rtf extension it is used as-is.
If CPACK_RESOURCE_FILE_LICENSE has an .txt extension it is implicitly
converted to RTF by the WiX Generator.
converted to RTF by the WIX Generator.
The expected encoding of the .txt file is UTF-8.
With CPACK_WIX_LICENSE_RTF you can override the license file used by the
WiX Generator in case CPACK_RESOURCE_FILE_LICENSE is in an unsupported
WIX Generator in case CPACK_RESOURCE_FILE_LICENSE is in an unsupported
format or the .txt -> .rtf conversion does not work as expected.
.. variable:: CPACK_WIX_PRODUCT_ICON
@ -122,10 +122,10 @@ Windows using WiX.
generated WiX sources
This optional variable can be used to specify an XML file that the
WiX generator will use to inject fragments into its generated
WIX generator will use to inject fragments into its generated
source files.
Patch files understood by the CPack WiX generator
Patch files understood by the CPack WIX generator
roughly follow this RELAX NG compact schema:
.. code-block:: none
@ -155,7 +155,7 @@ Windows using WiX.
The following example illustrates how this works.
Given that the WiX generator creates the following XML element:
Given that the WIX generator creates the following XML element:
.. code-block:: xml

@ -29,9 +29,10 @@ Options
package(s) in that generator's format according to the details provided in
the ``CPackConfig.cmake`` configuration file. A generator is responsible for
generating the required inputs for a particular package system and invoking
that system's package creation tools. Possible generator names are specified
in the :manual:`Generators <cmake-generators(7)>` section of the manual and
that system's package creation tools. All supported generators are specified
in the :manual:`Generators <cpack-generators(7)>` section of the manual and
the ``--help`` option lists the generators supported for the target platform.
If this option is not given, the :variable:`CPACK_GENERATOR` variable
determines the default set of generators that will be used.

@ -1,4 +1,4 @@
CPackDMG
--------
The documentation for the CPack DMG generator has moved here: :cpack_gen:`CPack DMG Generator`
The documentation for the CPack DragNDrop generator has moved here: :cpack_gen:`CPack DragNDrop Generator`

@ -1,4 +1,4 @@
CPackDeb
--------
The documentation for the CPack Deb generator has moved here: :cpack_gen:`CPack Deb Generator`
The documentation for the CPack DEB generator has moved here: :cpack_gen:`CPack DEB Generator`

@ -1,4 +1,4 @@
CPackWIX
--------
The documentation for the CPack WiX generator has moved here: :cpack_gen:`CPack WiX Generator`
The documentation for the CPack WIX generator has moved here: :cpack_gen:`CPack WIX Generator`

@ -294,11 +294,11 @@ CPack
* :manual:`cpack(1)` gained ``7Z`` and ``TXZ`` generators supporting
lzma-compressed archives.
* The :cpack_gen:`CPack Deb Generator` learned a new
* The :cpack_gen:`CPack DEB Generator` learned a new
:variable:`CPACK_DEBIAN_COMPRESSION_TYPE` variable to set the
tarball compression type.
* The :manual:`cpack(1)` ``WiX`` generator learned to support
* The :cpack_gen:`CPack WIX Generator` learned to support
a :prop_inst:`CPACK_WIX_ACL` installed file property to
specify an Access Control List.

@ -186,15 +186,15 @@ CPack
* A :cpack_gen:`CPack FreeBSD Generator` was added for FreeBSD ``pkg(8)``.
* The :cpack_gen:`CPack Deb Generator` was enabled on Windows. While not
* The :cpack_gen:`CPack DEB Generator` was enabled on Windows. While not
fully featured (due to the lack of external UNIX tools) this will allow
building basic cross-platform Debian packages.
* The :cpack_gen:`CPack Deb Generator` learned to set package release
* The :cpack_gen:`CPack DEB Generator` learned to set package release
version in ``Version`` info property.
See the :variable:`CPACK_DEBIAN_PACKAGE_RELEASE` variable.
* The :cpack_gen:`CPack Deb Generator` learned more strict package
* The :cpack_gen:`CPack DEB Generator` learned more strict package
version checking that complies with Debian rules.
* The :module:`CPackIFW` module :command:`cpack_ifw_configure_component` and
@ -211,7 +211,7 @@ CPack
repack dependent components. This feature is only available when
using QtIFW 3.1 or later.
* The :cpack_gen:`CPack RPM Generator` and :cpack_gen:`CPack Deb Generator`
* The :cpack_gen:`CPack RPM Generator` and :cpack_gen:`CPack DEB Generator`
learned to set the package epoch version.
See :variable:`CPACK_RPM_PACKAGE_EPOCH` and
:variable:`CPACK_DEBIAN_PACKAGE_EPOCH` variables.

@ -138,6 +138,9 @@ Properties
Modules
-------
* The :module:`FindBoost` module gained a ``Boost_ARCHITECTURE`` option
to specify a Boost architecture-specific library filename fragment.
* The :module:`FindCURL` module learned to find debug and release variants
separately.
@ -178,11 +181,11 @@ CTest
CPack
-----
* The :cpack_gen:`CPack Deb Generator` learned to split debug symbols into
* The :cpack_gen:`CPack DEB Generator` learned to split debug symbols into
a corresponding .ddeb package when ``CPACK_DEBIAN_DEBUGINFO_PACKAGE`` is
set.
* The :cpack_gen:`CPack Deb Generator` learned to honor the ``SOURCE_DATE_EPOCH``
* The :cpack_gen:`CPack DEB Generator` learned to honor the ``SOURCE_DATE_EPOCH``
environment variable when packaging files. This is useful for generating
reproducible packages.

@ -172,11 +172,11 @@ CPack
* The :cpack_gen:`CPack IFW Generator` learned to support
Qt Framework Installer 2.0 tools.
* The :cpack_gen:`CPack Deb Generator` learned a new
* The :cpack_gen:`CPack DEB Generator` learned a new
:variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_SHLIBDEPS`
variable to specify per-component use of ``dpkg-shlibdeps``.
* The :cpack_gen:`CPack Deb Generator` learned a new
* The :cpack_gen:`CPack DEB Generator` learned a new
:variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_DEPENDS`
option to specify per-component dependencies.

@ -197,7 +197,7 @@ CTest
CPack
-----
* The :cpack_gen:`CPack Deb Generator` learned to set package dependencies
* The :cpack_gen:`CPack DEB Generator` learned to set package dependencies
per component. See variables:
* :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_BREAKS`
@ -249,10 +249,10 @@ Other Changes
:module:`CheckSymbolExists`, and :module:`FindThreads` modules learned to
work in environments where only CXX is enabled.
* The :cpack_gen:`CPack Deb Generator` now correctly excludes symlinks
* The :cpack_gen:`CPack DEB Generator` now correctly excludes symlinks
during package checksum calculation.
* The :cpack_gen:`CPack Deb Generator` no longer uses fakeroot and
* The :cpack_gen:`CPack DEB Generator` no longer uses fakeroot and
system tar program for packaging.
* The :module:`CPack` module no longer mangles settings with CMake-special

@ -120,23 +120,23 @@ Platforms
CPack
-----
* The :cpack_gen:`CPack DMG Generator` learned new variable to
* The :cpack_gen:`CPack DragNDrop Generator` learned new variable to
specify AppleScript file run to customize appearance of ``DragNDrop``
installer folder, including background image setting using supplied
PNG or multi-resolution TIFF file.
See the :variable:`CPACK_DMG_DS_STORE_SETUP_SCRIPT` and
:variable:`CPACK_DMG_BACKGROUND_IMAGE` variables.
* The :cpack_gen:`CPack Deb Generator` learned to set the optional config
* The :cpack_gen:`CPack DEB Generator` learned to set the optional config
file ``Source`` field using a monolithic or per-component variable.
See :variable:`CPACK_DEBIAN_PACKAGE_SOURCE`.
* The :cpack_gen:`CPack Deb Generator` learned to set Package, Section
* The :cpack_gen:`CPack DEB Generator` learned to set Package, Section
and Priority control fields per-component.
See variables :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_SECTION` and
:variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_PRIORITY`.
* The :cpack_gen:`CPack DMG Generator` learned to add
* The :cpack_gen:`CPack DragNDrop Generator` learned to add
multi-lingual SLAs to a DMG which is presented to the user when they try to
mount the DMG. See the :variable:`CPACK_DMG_SLA_LANGUAGES` and
:variable:`CPACK_DMG_SLA_DIR` variables for details.

@ -165,24 +165,24 @@ CTest
CPack
-----
* The :cpack_gen:`CPack Deb Generator` learned how to handle ``$ORIGIN``
* The :cpack_gen:`CPack DEB Generator` learned how to handle ``$ORIGIN``
in ``CMAKE_INSTALL_RPATH`` when :variable:`CPACK_DEBIAN_PACKAGE_SHLIBDEPS`
is used for dependency auto detection.
* The :cpack_gen:`CPack Deb Generator` learned how to generate
* The :cpack_gen:`CPack DEB Generator` learned how to generate
``DEBIAN/shlibs`` contorl file when package contains shared libraries.
* The :cpack_gen:`CPack Deb Generator` learned how to generate
* The :cpack_gen:`CPack DEB Generator` learned how to generate
``DEBIAN/postinst`` and ``DEBIAN/postrm`` files if the package installs
libraries in ldconfig-controlled locations (e.g. ``/lib/``, ``/usr/lib/``).
* The :cpack_gen:`CPack Deb Generator` learned how to generate dependencies
* The :cpack_gen:`CPack DEB Generator` learned how to generate dependencies
between Debian packages if multi-component setup is used and
:variable:`CPACK_COMPONENT_<compName>_DEPENDS` variables are set.
For backward compatibility this feature is disabled by default.
See :variable:`CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS`.
* The :cpack_gen:`CPack Deb Generator` learned how to set custom package
* The :cpack_gen:`CPack DEB Generator` learned how to set custom package
file names including how to generate properly-named Debian packages::
<PackageName>_<VersionNumber>-<DebianRevisionNumber>_<DebianArchitecture>.deb
@ -191,17 +191,17 @@ CPack
:variable:`CPACK_DEBIAN_FILE_NAME` and
:variable:`CPACK_DEBIAN_<COMPONENT>_FILE_NAME`.
* The :cpack_gen:`CPack Deb Generator` learned how to set the package
* The :cpack_gen:`CPack DEB Generator` learned how to set the package
release number (``DebianRevisionNumber`` in package file name when
used in combination with ``DEB-DEFAULT`` value set by
:variable:`CPACK_DEBIAN_FILE_NAME`).
See :variable:`CPACK_DEBIAN_PACKAGE_RELEASE`.
* The :cpack_gen:`CPack Deb Generator` learned how to set the package
* The :cpack_gen:`CPack DEB Generator` learned how to set the package
architecture per-component.
See :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_ARCHITECTURE`.
* The :cpack_gen:`CPack DMG Generator` learned a new option to skip the
* The :cpack_gen:`CPack DragNDrop Generator` learned a new option to skip the
``/Applications`` symlink.
See the :variable:`CPACK_DMG_DISABLE_APPLICATIONS_SYMLINK` variable.

@ -226,7 +226,7 @@ CPack
* CPack gained a new :variable:`CPACK_PACKAGE_CHECKSUM` variable to
enable generation of a checksum file for each package file.
* The :cpack_gen:`CPack Deb Generator` learned to support long file names
* The :cpack_gen:`CPack DEB Generator` learned to support long file names
when archive format is set to GNU tar.
See :variable:`CPACK_DEBIAN_ARCHIVE_TYPE`
@ -252,19 +252,19 @@ CPack
:variable:`CPACK_NSIS_<compName>_INSTALL_DIRECTORY`.
This can be used to set component specific installation directories.
* The :cpack_gen:`CPack WiX Generator` now supports
* The :cpack_gen:`CPack WIX Generator` now supports
:variable:`CPACK_WIX_SKIP_PROGRAM_FOLDER` to allow specification
of a custom absolute installation prefix outside
of the ProgramFiles folders.
* The :cpack_gen:`CPack WiX Generator` now supports
* The :cpack_gen:`CPack WIX Generator` now supports
:variable:`CPACK_COMPONENT_<compName>_DISABLED`.
This can be used to deselect a component from being installed by default.
* The :cpack_gen:`CPack WiX Generator` now supports
* The :cpack_gen:`CPack WIX Generator` now supports
:variable:`CPACK_WIX_PATCH_FILE` fragments for Feature elements.
* The :cpack_gen:`CPack WiX Generator` now supports
* The :cpack_gen:`CPack WIX Generator` now supports
:variable:`CPACK_WIX_ROOT_FEATURE_TITLE` and
:variable:`CPACK_WIX_ROOT_FEATURE_DESCRIPTION` to allow the specification
of a custom title and description for the root feature element.

@ -232,12 +232,12 @@ CPack
* The :cpack_gen:`CPack RPM Generator` learned to modify the ``debuginfo``
package name. See the :variable:`CPACK_RPM_DEBUGINFO_FILE_NAME` variable.
* The :cpack_gen:`CPack WiX Generator` patching system now has the
* The :cpack_gen:`CPack WIX Generator` patching system now has the
ability to set additional attributes. This can be done by specifying
attributes with the ``CPackWiXFragment`` XML tag after the ``Id`` attribute.
See the :variable:`CPACK_WIX_PATCH_FILE` variable.
* The :cpack_gen:`CPack WiX Generator` implemented a new
* The :cpack_gen:`CPack WIX Generator` implemented a new
:variable:`CPACK_WIX_ROOT_FOLDER_ID` variable which allows
using a custom root folder ID instead of the default
``ProgramFilesFolder`` / ``ProgramFiles64Folder``.

@ -17,7 +17,7 @@ For example, for ``Clang`` we have:
set (CMAKE_C_LINKER_WRAPPER_FLAG "-Xlinker" " ")
Specifying ``"LINKER:-z defs"`` will be transformed in
Specifying ``"LINKER:-z,defs"`` will be transformed in
``-Xlinker -z -Xlinker defs``.
For ``GNU GCC``:
@ -27,7 +27,7 @@ For ``GNU GCC``:
set (CMAKE_C_LINKER_WRAPPER_FLAG "-Wl,")
set (CMAKE_C_LINKER_WRAPPER_FLAG_SEP ",")
Specifying ``"LINKER:-z defs"`` will be transformed in ``-Wl,-z,defs``.
Specifying ``"LINKER:-z,defs"`` will be transformed in ``-Wl,-z,defs``.
And for ``SunPro``:
@ -36,4 +36,4 @@ And for ``SunPro``:
set (CMAKE_C_LINKER_WRAPPER_FLAG "-Qoption" "ld" " ")
set (CMAKE_C_LINKER_WRAPPER_FLAG_SEP ",")
Specifying ``"LINKER:-z defs"`` will be transformed in ``-Qoption ld -z,defs``.
Specifying ``"LINKER:-z,defs"`` will be transformed in ``-Qoption ld -z,defs``.

@ -58,6 +58,14 @@ if(NOT CMAKE_ASM${ASM_DIALECT}_COMPILER_ID)
set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_GNU "--version")
set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_GNU "(GNU assembler)|(GCC)|(Free Software Foundation)")
list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS Clang )
set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_Clang "--version")
set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_Clang "(clang version)")
list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS AppleClang )
set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_AppleClang "--version")
set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_AppleClang "(Apple LLVM version)")
list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS HP )
set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_HP "-V")
set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_HP "HP C")

@ -2,7 +2,7 @@ include(Compiler/Clang)
__compiler_clang(Fortran)
set(CMAKE_Fortran_PREPROCESS_SOURCE
"<CMAKE_Fortran_COMPILER> -cpp <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> -o <PREPROCESSED_SOURCE>")
"<CMAKE_Fortran_COMPILER> -cpp <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-ffixed-form")
set(CMAKE_Fortran_FORMAT_FREE_FLAG "-ffree-form")

@ -11,7 +11,7 @@ macro(__compiler_qcc lang)
set(CMAKE_${lang}_COMPILE_OPTIONS_TARGET "-V")
set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-Wp,-isystem,")
set(CMAKE_DEPFILE_FLAGS_${lang} "-Wc,-MD,<DEPFILE>,-MT,<OBJECT>,-MF,<DEPFILE>")
set(CMAKE_DEPFILE_FLAGS_${lang} "-Wp,-MD,<DEPFILE> -Wp,-MT,<OBJECT> -Wp,-MF,<DEPFILE>")
set(CMAKE_${lang}_LINKER_WRAPPER_FLAG "-Wl,")
set(CMAKE_${lang}_LINKER_WRAPPER_FLAG_SEP ",")

@ -93,6 +93,7 @@ if(BLA_PREFER_PKGCONFIG)
find_package(PkgConfig)
pkg_check_modules(PKGC_BLAS blas)
if(PKGC_BLAS_FOUND)
set(BLAS_FOUND ${PKGC_BLAS_FOUND})
set(BLAS_LIBRARIES "${PKGC_BLAS_LINK_LIBRARIES}")
return()
endif()
@ -222,7 +223,7 @@ if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
set(BLAS_SEARCH_LIBS "")
if(BLA_F95)
set(BLAS_mkl_SEARCH_SYMBOL SGEMM)
set(BLAS_mkl_SEARCH_SYMBOL sgemm_f95)
set(_LIBRARIES BLAS95_LIBRARIES)
if (WIN32)
if (BLA_STATIC)

@ -147,6 +147,9 @@
# used if multiple compatible suffixes should
# be tested for, in decreasing order of
# preference.
# Boost_ARCHITECTURE - Set to the architecture-specific library suffix
# (e.g. "-x64"). Default is auto-computed for the
# C++ compiler in use.
# Boost_THREADAPI - Suffix for "thread" component library name,
# such as "pthread" or "win32". Names with
# and without this suffix will both be tried.
@ -406,15 +409,18 @@ endmacro()
#-------------------------------------------------------------------------------
#
# Runs compiler with "-dumpversion" and parses major/minor
# version with a regex.
#
function(_Boost_COMPILER_DUMPVERSION _OUTPUT_VERSION)
string(REGEX REPLACE "([0-9]+)\\.([0-9]+)(\\.[0-9]+)?" "\\1\\2"
_boost_COMPILER_VERSION ${CMAKE_CXX_COMPILER_VERSION})
# Convert CMAKE_CXX_COMPILER_VERSION to boost compiler suffix version.
function(_Boost_COMPILER_DUMPVERSION _OUTPUT_VERSION _OUTPUT_VERSION_MAJOR _OUTPUT_VERSION_MINOR)
string(REGEX REPLACE "([0-9]+)\\.([0-9]+)(\\.[0-9]+)?" "\\1"
_boost_COMPILER_VERSION_MAJOR "${CMAKE_CXX_COMPILER_VERSION}")
string(REGEX REPLACE "([0-9]+)\\.([0-9]+)(\\.[0-9]+)?" "\\2"
_boost_COMPILER_VERSION_MINOR "${CMAKE_CXX_COMPILER_VERSION}")
set(_boost_COMPILER_VERSION "${_boost_COMPILER_VERSION_MAJOR}${_boost_COMPILER_VERSION_MINOR}")
set(${_OUTPUT_VERSION} ${_boost_COMPILER_VERSION} PARENT_SCOPE)
set(${_OUTPUT_VERSION_MAJOR} ${_boost_COMPILER_VERSION_MAJOR} PARENT_SCOPE)
set(${_OUTPUT_VERSION_MINOR} ${_boost_COMPILER_VERSION_MINOR} PARENT_SCOPE)
endfunction()
#
@ -479,15 +485,25 @@ function(_Boost_GUESS_COMPILER_PREFIX _ret)
if(${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION} VERSION_LESS 1.34)
set(_boost_COMPILER "-mgw") # no GCC version encoding prior to 1.34
else()
_Boost_COMPILER_DUMPVERSION(_boost_COMPILER_VERSION)
_Boost_COMPILER_DUMPVERSION(_boost_COMPILER_VERSION _boost_COMPILER_VERSION_MAJOR _boost_COMPILER_VERSION_MINOR)
set(_boost_COMPILER "-mgw${_boost_COMPILER_VERSION}")
endif()
elseif (UNIX)
if (CMAKE_COMPILER_IS_GNUCXX)
_Boost_COMPILER_DUMPVERSION(_boost_COMPILER_VERSION _boost_COMPILER_VERSION_MAJOR _boost_COMPILER_VERSION_MINOR)
if(NOT Boost_VERSION VERSION_LESS 106900)
# From GCC 5 and clang 4, versioning changes and minor becomes patch.
# For those compilers, patch is exclude from compiler tag in Boost 1.69+ library naming.
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND _boost_COMPILER_VERSION_MAJOR VERSION_GREATER 4)
set(_boost_COMPILER_VERSION "${_boost_COMPILER_VERSION_MAJOR}")
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND _boost_COMPILER_VERSION_MAJOR VERSION_GREATER 3)
set(_boost_COMPILER_VERSION "${_boost_COMPILER_VERSION_MAJOR}")
endif()
endif()
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
if(${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION} VERSION_LESS 1.34)
set(_boost_COMPILER "-gcc") # no GCC version encoding prior to 1.34
else()
_Boost_COMPILER_DUMPVERSION(_boost_COMPILER_VERSION)
# Determine which version of GCC we have.
if(APPLE)
if(Boost_MINOR_VERSION)
@ -509,7 +525,10 @@ function(_Boost_GUESS_COMPILER_PREFIX _ret)
set(_boost_COMPILER "-gcc${_boost_COMPILER_VERSION}")
endif()
endif()
endif ()
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
# TODO: Find out any Boost version constraints vs clang support.
set(_boost_COMPILER "-clang${_boost_COMPILER_VERSION}")
endif()
else()
# TODO at least Boost_DEBUG here?
set(_boost_COMPILER "")
@ -850,9 +869,8 @@ function(_Boost_COMPONENT_DEPENDENCIES component _ret)
set(_Boost_LOG_DEPENDENCIES date_time log_setup filesystem thread regex chrono atomic)
set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
set(_Boost_MPI_DEPENDENCIES serialization)
set(_Boost_MPI_PYTHON_DEPENDENCIES python mpi serialization)
set(_Boost_NUMPY_DEPENDENCIES python)
set(_Boost_SYNC_DEPENDENCIES chrono atomic)
set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
set(_Boost_THREAD_DEPENDENCIES chrono date_time atomic)
set(_Boost_TIMER_DEPENDENCIES chrono system)
set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono date_time atomic)
@ -929,6 +947,12 @@ function(_Boost_COMPONENT_HEADERS component _hdrs)
set(_Boost_REGEX_HEADERS "boost/regex.hpp")
set(_Boost_SERIALIZATION_HEADERS "boost/serialization/serialization.hpp")
set(_Boost_SIGNALS_HEADERS "boost/signals.hpp")
set(_Boost_STACKTRACE_ADDR2LINE_HEADERS "boost/stacktrace.hpp")
set(_Boost_STACKTRACE_BACKTRACE_HEADERS "boost/stacktrace.hpp")
set(_Boost_STACKTRACE_BASIC_HEADERS "boost/stacktrace.hpp")
set(_Boost_STACKTRACE_NOOP_HEADERS "boost/stacktrace.hpp")
set(_Boost_STACKTRACE_WINDBG_CACHED_HEADERS "boost/stacktrace.hpp")
set(_Boost_STACKTRACE_WINDBG_HEADERS "boost/stacktrace.hpp")
set(_Boost_SYSTEM_HEADERS "boost/system/config.hpp")
set(_Boost_TEST_EXEC_MONITOR_HEADERS "boost/test/test_exec_monitor.hpp")
set(_Boost_THREAD_HEADERS "boost/thread.hpp")
@ -1100,6 +1124,7 @@ else()
# _Boost_COMPONENT_HEADERS. See the instructions at the top of
# _Boost_COMPONENT_DEPENDENCIES.
set(_Boost_KNOWN_VERSIONS ${Boost_ADDITIONAL_VERSIONS}
"1.69.0" "1.69"
"1.68.0" "1.68" "1.67.0" "1.67" "1.66.0" "1.66" "1.65.1" "1.65.0" "1.65"
"1.64.0" "1.64" "1.63.0" "1.63" "1.62.0" "1.62" "1.61.0" "1.61" "1.60.0" "1.60"
"1.59.0" "1.59" "1.58.0" "1.58" "1.57.0" "1.57" "1.56.0" "1.56" "1.55.0" "1.55"
@ -1493,27 +1518,35 @@ endif()
# -x86 Architecture and address model tag
# First character is the architecture, then word-size, either 32 or 64
# Only used in 'versioned' layout, added in Boost 1.66.0
set(_boost_ARCHITECTURE_TAG "")
# {CMAKE_CXX_COMPILER_ARCHITECTURE_ID} is not currently set for all compilers
if(NOT "x${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "x" AND NOT Boost_VERSION VERSION_LESS 106600)
string(APPEND _boost_ARCHITECTURE_TAG "-")
# This needs to be kept in-sync with the section of CMakePlatformId.h.in
# inside 'defined(_WIN32) && defined(_MSC_VER)'
if(CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL "IA64")
string(APPEND _boost_ARCHITECTURE_TAG "i")
elseif(CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL "X86"
OR CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL "x64")
string(APPEND _boost_ARCHITECTURE_TAG "x")
elseif(CMAKE_CXX_COMPILER_ARCHITECTURE_ID MATCHES "^ARM")
string(APPEND _boost_ARCHITECTURE_TAG "a")
elseif(CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL "MIPS")
string(APPEND _boost_ARCHITECTURE_TAG "m")
if(DEFINED Boost_ARCHITECTURE)
set(_boost_ARCHITECTURE_TAG "${Boost_ARCHITECTURE}")
if(Boost_DEBUG)
message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
"using user-specified Boost_ARCHITECTURE = ${_boost_ARCHITECTURE_TAG}")
endif()
else()
set(_boost_ARCHITECTURE_TAG "")
# {CMAKE_CXX_COMPILER_ARCHITECTURE_ID} is not currently set for all compilers
if(NOT "x${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "x" AND NOT Boost_VERSION VERSION_LESS 106600)
string(APPEND _boost_ARCHITECTURE_TAG "-")
# This needs to be kept in-sync with the section of CMakePlatformId.h.in
# inside 'defined(_WIN32) && defined(_MSC_VER)'
if(CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL "IA64")
string(APPEND _boost_ARCHITECTURE_TAG "i")
elseif(CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL "X86"
OR CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL "x64")
string(APPEND _boost_ARCHITECTURE_TAG "x")
elseif(CMAKE_CXX_COMPILER_ARCHITECTURE_ID MATCHES "^ARM")
string(APPEND _boost_ARCHITECTURE_TAG "a")
elseif(CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL "MIPS")
string(APPEND _boost_ARCHITECTURE_TAG "m")
endif()
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
string(APPEND _boost_ARCHITECTURE_TAG "64")
else()
string(APPEND _boost_ARCHITECTURE_TAG "32")
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
string(APPEND _boost_ARCHITECTURE_TAG "64")
else()
string(APPEND _boost_ARCHITECTURE_TAG "32")
endif()
endif()
endif()
@ -2057,6 +2090,9 @@ if(Boost_FOUND)
message (STATUS " ${COMPONENT}")
endif()
list(APPEND Boost_LIBRARIES ${Boost_${UPPERCOMPONENT}_LIBRARY})
if(COMPONENT STREQUAL "thread")
list(APPEND Boost_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
endif()
endif()
endforeach()
else()

@ -287,7 +287,7 @@ if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
set(LAPACK_SEARCH_LIBS "")
if (BLA_F95)
set(LAPACK_mkl_SEARCH_SYMBOL "CHEEV")
set(LAPACK_mkl_SEARCH_SYMBOL "cheev_f95")
set(_LIBRARIES LAPACK95_LIBRARIES)
set(_BLAS_LIBRARIES ${BLAS95_LIBRARIES})
@ -298,7 +298,7 @@ if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
list(APPEND LAPACK_SEARCH_LIBS
"mkl_intel_c")
list(APPEND LAPACK_SEARCH_LIBS
"mkl_intel_${BLAS_mkl_ILP_MODE}")
"mkl_lapack95_${BLAS_mkl_ILP_MODE}")
else()
set(LAPACK_mkl_SEARCH_SYMBOL "cheev")
set(_LIBRARIES LAPACK_LIBRARIES)

@ -1131,7 +1131,12 @@ macro(_MPI_create_imported_target LANG)
add_library(MPI::MPI_${LANG} INTERFACE IMPORTED)
endif()
set_property(TARGET MPI::MPI_${LANG} PROPERTY INTERFACE_COMPILE_OPTIONS "${MPI_${LANG}_COMPILE_OPTIONS}")
# When this is consumed for compiling CUDA, use '-Xcompiler' to wrap '-pthread'.
string(REPLACE "-pthread" "$<$<COMPILE_LANGUAGE:CUDA>:SHELL:-Xcompiler >-pthread"
_MPI_${LANG}_COMPILE_OPTIONS "${MPI_${LANG}_COMPILE_OPTIONS}")
set_property(TARGET MPI::MPI_${LANG} PROPERTY INTERFACE_COMPILE_OPTIONS "${_MPI_${LANG}_COMPILE_OPTIONS}")
unset(_MPI_${LANG}_COMPILE_OPTIONS)
set_property(TARGET MPI::MPI_${LANG} PROPERTY INTERFACE_COMPILE_DEFINITIONS "${MPI_${LANG}_COMPILE_DEFINITIONS}")
set_property(TARGET MPI::MPI_${LANG} PROPERTY INTERFACE_LINK_LIBRARIES "")

@ -124,7 +124,7 @@ endfunction()
set(OpenMP_C_CXX_TEST_SOURCE
"
#include <omp.h>
int main() {
int main(void) {
#ifdef _OPENMP
omp_get_max_threads();
return 0;
@ -270,6 +270,9 @@ function(_OPENMP_GET_FLAGS LANG FLAG_MODE OPENMP_FLAG_VAR OPENMP_LIB_NAMES_VAR)
break()
endif()
endif()
else()
file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
"Detecting ${LANG} OpenMP failed with the following output:\n${OpenMP_TRY_COMPILE_OUTPUT}\n\n")
endif()
set("${OPENMP_LIB_NAMES_VAR}" "NOTFOUND" PARENT_SCOPE)
set("${OPENMP_FLAG_VAR}" "NOTFOUND" PARENT_SCOPE)
@ -291,7 +294,7 @@ const char ompver_str[] = { 'I', 'N', 'F', 'O', ':', 'O', 'p', 'e', 'n', 'M',
('0' + ((_OPENMP/10)%10)),
('0' + ((_OPENMP/1)%10)),
']', '\\0' };
int main()
int main(void)
{
puts(ompver_str);
return 0;
@ -324,7 +327,8 @@ function(_OPENMP_GET_SPEC_DATE LANG SPEC_DATE)
string(REGEX REPLACE "[-/=+]" "" OPENMP_PLAIN_FLAG "${OPENMP_FLAG}")
try_compile(OpenMP_SPECTEST_${LANG}_${OPENMP_PLAIN_FLAG} "${CMAKE_BINARY_DIR}" "${_OPENMP_TEST_SRC}"
CMAKE_FLAGS "-DCOMPILE_DEFINITIONS:STRING=${OpenMP_${LANG}_FLAGS}"
COPY_FILE ${BIN_FILE})
COPY_FILE ${BIN_FILE}
OUTPUT_VARIABLE OpenMP_TRY_COMPILE_OUTPUT)
if(${OpenMP_SPECTEST_${LANG}_${OPENMP_PLAIN_FLAG}})
file(STRINGS ${BIN_FILE} specstr LIMIT_COUNT 1 REGEX "INFO:OpenMP-date")
@ -332,6 +336,9 @@ function(_OPENMP_GET_SPEC_DATE LANG SPEC_DATE)
if("${specstr}" MATCHES "${regex_spec_date}")
set(${SPEC_DATE} "${CMAKE_MATCH_1}" PARENT_SCOPE)
endif()
else()
file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
"Detecting ${LANG} OpenMP version failed with the following output:\n${OpenMP_TRY_COMPILE_OUTPUT}\n\n")
endif()
endfunction()

@ -27,7 +27,7 @@
# In Windows the default installation of PostgreSQL uses that as part of the path.
# E.g C:\Program Files\PostgreSQL\8.4.
# Currently, the following version numbers are known to this module:
# "10" "9.6" "9.5" "9.4" "9.3" "9.2" "9.1" "9.0" "8.4" "8.3" "8.2" "8.1" "8.0"
# "11" "10" "9.6" "9.5" "9.4" "9.3" "9.2" "9.1" "9.0" "8.4" "8.3" "8.2" "8.1" "8.0"
#
# To use this variable just do something like this:
# set(PostgreSQL_ADDITIONAL_VERSIONS "9.2" "8.4.4")
@ -71,7 +71,7 @@ set(PostgreSQL_ROOT_DIR_MESSAGE "Set the PostgreSQL_ROOT system variable to wher
set(PostgreSQL_KNOWN_VERSIONS ${PostgreSQL_ADDITIONAL_VERSIONS}
"10" "9.6" "9.5" "9.4" "9.3" "9.2" "9.1" "9.0" "8.4" "8.3" "8.2" "8.1" "8.0")
"11" "10" "9.6" "9.5" "9.4" "9.3" "9.2" "9.1" "9.0" "8.4" "8.3" "8.2" "8.1" "8.0")
# Define additional search paths for root directories.
set( PostgreSQL_ROOT_DIRECTORIES

@ -381,21 +381,16 @@ function(_protobuf_find_libraries name filename)
mark_as_advanced(${name}_LIBRARY_DEBUG)
select_library_configurations(${name})
if(UNIX AND Threads_FOUND)
list(APPEND ${name}_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
endif()
set(${name}_LIBRARY "${${name}_LIBRARY}" PARENT_SCOPE)
set(${name}_LIBRARIES "${${name}_LIBRARIES}" PARENT_SCOPE)
endif()
endfunction()
# Internal function: find threads library
function(_protobuf_find_threads)
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
find_package(Threads)
if(Threads_FOUND)
list(APPEND Protobuf_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
set(Protobuf_LIBRARIES "${Protobuf_LIBRARIES}" PARENT_SCOPE)
endif()
endfunction()
#
# Main.
#
@ -416,6 +411,11 @@ if(MSVC)
find_path(Protobuf_SRC_ROOT_FOLDER protobuf.pc.in)
endif()
if(UNIX)
# Protobuf headers may depend on threading.
find_package(Threads QUIET)
endif()
# The Protobuf library
_protobuf_find_libraries(Protobuf protobuf)
#DOC "The Google Protocol Buffers RELEASE Library"
@ -430,10 +430,6 @@ if(MSVC)
set(CMAKE_FIND_LIBRARY_PREFIXES "${Protobuf_ORIG_FIND_LIBRARY_PREFIXES}")
endif()
if(UNIX)
_protobuf_find_threads()
endif()
# Find the include directory
find_path(Protobuf_INCLUDE_DIR
google/protobuf/service.h
@ -521,6 +517,10 @@ if(Protobuf_INCLUDE_DIR)
set_target_properties(protobuf::libprotobuf PROPERTIES
IMPORTED_LOCATION_DEBUG "${Protobuf_LIBRARY_DEBUG}")
endif()
if(UNIX AND TARGET Threads::Threads)
set_property(TARGET protobuf::libprotobuf APPEND PROPERTY
INTERFACE_LINK_LIBRARIES Threads::Threads)
endif()
endif()
endif()
@ -545,6 +545,10 @@ if(Protobuf_INCLUDE_DIR)
set_target_properties(protobuf::libprotobuf-lite PROPERTIES
IMPORTED_LOCATION_DEBUG "${Protobuf_LITE_LIBRARY_DEBUG}")
endif()
if(UNIX AND TARGET Threads::Threads)
set_property(TARGET protobuf::libprotobuf-lite APPEND PROPERTY
INTERFACE_LINK_LIBRARIES Threads::Threads)
endif()
endif()
endif()
@ -569,6 +573,10 @@ if(Protobuf_INCLUDE_DIR)
set_target_properties(protobuf::libprotoc PROPERTIES
IMPORTED_LOCATION_DEBUG "${Protobuf_PROTOC_LIBRARY_DEBUG}")
endif()
if(UNIX AND TARGET Threads::Threads)
set_property(TARGET protobuf::libprotoc APPEND PROPERTY
INTERFACE_LINK_LIBRARIES Threads::Threads)
endif()
endif()
endif()

@ -711,6 +711,23 @@ if ("Development" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
if (NOT _${_PYTHON_PREFIX}_CONFIG)
continue()
endif()
if (DEFINED CMAKE_LIBRARY_ARCHITECTURE)
# check that config tool match library architecture
execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" --configdir
RESULT_VARIABLE _${_PYTHON_PREFIX}_RESULT
OUTPUT_VARIABLE _${_PYTHON_PREFIX}_CONFIGDIR
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
if (_${_PYTHON_PREFIX}_RESULT)
unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
continue()
endif()
string(FIND "${_${_PYTHON_PREFIX}_CONFIGDIR}" "${CMAKE_LIBRARY_ARCHITECTURE}" _${_PYTHON_PREFIX}_RESULT)
if (_${_PYTHON_PREFIX}_RESULT EQUAL -1)
unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
continue()
endif()
endif()
# retrieve root install directory
execute_process (COMMAND "${_${_PYTHON_PREFIX}_CONFIG}" --prefix

@ -302,7 +302,15 @@ if(MSVC)
get_filename_component(windows_kits_dir
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots;KitsRoot10]" ABSOLUTE)
set(programfilesx86 "ProgramFiles(x86)")
find_path(WINDOWS_KITS_DIR NAMES Redist/ucrt/DLLs/${CMAKE_MSVC_ARCH}/ucrtbase.dll
if(";${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION};$ENV{UCRTVersion};$ENV{WindowsSDKVersion};" MATCHES [=[;(10\.[0-9.]+)[;\]]=])
set(__ucrt_version "${CMAKE_MATCH_1}/")
else()
set(__ucrt_version "")
endif()
find_path(WINDOWS_KITS_DIR
NAMES
Redist/${__ucrt_version}ucrt/DLLs/${CMAKE_MSVC_ARCH}/ucrtbase.dll
Redist/ucrt/DLLs/${CMAKE_MSVC_ARCH}/ucrtbase.dll
PATHS
$ENV{CMAKE_WINDOWS_KITS_10_DIR}
"${windows_kits_dir}"
@ -313,11 +321,19 @@ if(MSVC)
# Glob the list of UCRT DLLs.
if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
file(GLOB __ucrt_dlls "${WINDOWS_KITS_DIR}/Redist/ucrt/DLLs/${CMAKE_MSVC_ARCH}/*.dll")
if(EXISTS "${WINDOWS_KITS_DIR}/Redist/${__ucrt_version}ucrt/DLLs/${CMAKE_MSVC_ARCH}/ucrtbase.dll")
file(GLOB __ucrt_dlls "${WINDOWS_KITS_DIR}/Redist/${__ucrt_version}ucrt/DLLs/${CMAKE_MSVC_ARCH}/*.dll")
else()
file(GLOB __ucrt_dlls "${WINDOWS_KITS_DIR}/Redist/ucrt/DLLs/${CMAKE_MSVC_ARCH}/*.dll")
endif()
list(APPEND __install__libs ${__ucrt_dlls})
endif()
if(CMAKE_INSTALL_DEBUG_LIBRARIES)
file(GLOB __ucrt_dlls "${WINDOWS_KITS_DIR}/bin/${CMAKE_MSVC_ARCH}/ucrt/*.dll")
if(EXISTS "${WINDOWS_KITS_DIR}/bin/${__ucrt_version}${CMAKE_MSVC_ARCH}/ucrt/ucrtbased.dll")
file(GLOB __ucrt_dlls "${WINDOWS_KITS_DIR}/bin/${__ucrt_version}${CMAKE_MSVC_ARCH}/ucrt/*.dll")
else()
file(GLOB __ucrt_dlls "${WINDOWS_KITS_DIR}/bin/${CMAKE_MSVC_ARCH}/ucrt/*.dll")
endif()
list(APPEND __install__libs ${__ucrt_dlls})
endif()
endif()

@ -1,15 +1,15 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
if(NOT "${CPACK_EXT_REQUESTED_VERSIONS}" STREQUAL "")
if(NOT "${CPACK_EXTERNAL_REQUESTED_VERSIONS}" STREQUAL "")
unset(_found_major)
foreach(_req_version IN LISTS CPACK_EXT_REQUESTED_VERSIONS)
foreach(_req_version IN LISTS CPACK_EXTERNAL_REQUESTED_VERSIONS)
if(_req_version MATCHES "^([0-9]+)\\.([0-9]+)$")
set(_req_major "${CMAKE_MATCH_1}")
set(_req_minor "${CMAKE_MATCH_2}")
foreach(_known_version IN LISTS CPACK_EXT_KNOWN_VERSIONS)
foreach(_known_version IN LISTS CPACK_EXTERNAL_KNOWN_VERSIONS)
string(REGEX MATCH
"^([0-9]+)\\.([0-9]+)$"
_known_version_dummy
@ -33,21 +33,21 @@ if(NOT "${CPACK_EXT_REQUESTED_VERSIONS}" STREQUAL "")
endforeach()
if(DEFINED _found_major)
set(CPACK_EXT_SELECTED_MAJOR "${_found_major}")
set(CPACK_EXT_SELECTED_MINOR "${_found_minor}")
set(CPACK_EXT_SELECTED_VERSION "${_found_major}.${_found_minor}")
set(CPACK_EXTERNAL_SELECTED_MAJOR "${_found_major}")
set(CPACK_EXTERNAL_SELECTED_MINOR "${_found_minor}")
set(CPACK_EXTERNAL_SELECTED_VERSION "${_found_major}.${_found_minor}")
else()
message(FATAL_ERROR
"Could not find a suitable version in CPACK_EXT_REQUESTED_VERSIONS"
"Could not find a suitable version in CPACK_EXTERNAL_REQUESTED_VERSIONS"
)
endif()
else()
list(GET CPACK_EXT_KNOWN_VERSIONS 0 CPACK_EXT_SELECTED_VERSION)
list(GET CPACK_EXTERNAL_KNOWN_VERSIONS 0 CPACK_EXTERNAL_SELECTED_VERSION)
string(REGEX MATCH
"^([0-9]+)\\.([0-9]+)$"
_dummy
"${CPACK_EXT_SELECTED_VERSION}"
"${CPACK_EXTERNAL_SELECTED_VERSION}"
)
set(CPACK_EXT_SELECTED_MAJOR "${CMAKE_MATCH_1}")
set(CPACK_EXT_SELECTED_MINOR "${CMAKE_MATCH_2}")
set(CPACK_EXTERNAL_SELECTED_MAJOR "${CMAKE_MATCH_1}")
set(CPACK_EXTERNAL_SELECTED_MINOR "${CMAKE_MATCH_2}")
endif()

@ -122,7 +122,7 @@ ensure generated files will receive the required settings.
If set to ``TRUE``, contents of target property
:prop_tgt:`INCLUDE_DIRECTORIES` will be forwarded to ``SWIG`` compiler.
If set to ``FALSE`` target property :prop_tgt:`INCLUDE_DIRECTORIES` will be
ignored. If not set, target property ``SWIG_USE_TARGT_INCLUDE_DIRECTORIES``
ignored. If not set, target property ``SWIG_USE_TARGET_INCLUDE_DIRECTORIES``
will be considered.
``GENERATED_INCLUDE_DIRECTORIES``, ``GENERATED_COMPILE_DEFINITIONS`` and ``GENERATED_COMPILE_OPTIONS``
@ -234,6 +234,8 @@ set(SWIG_PYTHON_EXTRA_FILE_EXTENSIONS ".py")
set(SWIG_JAVA_EXTRA_FILE_EXTENSIONS ".java" "JNI.java")
set(SWIG_CSHARP_EXTRA_FILE_EXTENSIONS ".cs" "PINVOKE.cs")
set(SWIG_MANAGE_SUPPORT_FILES_SCRIPT "${CMAKE_CURRENT_LIST_DIR}/UseSWIG/ManageSupportFiles.cmake")
##
## PRIVATE functions
##
@ -444,9 +446,13 @@ function(SWIG_ADD_SOURCE_TO_MODULE name outfiles infile)
if (UseSWIG_MODULE_VERSION VERSION_GREATER 1)
# as part of custom command, start by removing old generated files
# to ensure obsolete files do not stay
set (swig_cleanup_command COMMAND "${CMAKE_COMMAND}" -E remove_directory "${outdir}")
set (swig_file_outdir "${workingdir}/${swig_source_file_name_we}.files")
set (swig_cleanup_command COMMAND "${CMAKE_COMMAND}" "-DSUPPORT_FILES_WORKING_DIRECTORY=${swig_file_outdir}" "-DSUPPORT_FILES_OUTPUT_DIRECTORY=${outdir}" -DACTION=CLEAN -P "${SWIG_MANAGE_SUPPORT_FILES_SCRIPT}")
set (swig_copy_command COMMAND "${CMAKE_COMMAND}" "-DSUPPORT_FILES_WORKING_DIRECTORY=${swig_file_outdir}" "-DSUPPORT_FILES_OUTPUT_DIRECTORY=${outdir}" -DACTION=COPY -P "${SWIG_MANAGE_SUPPORT_FILES_SCRIPT}")
else()
set (swig_file_outdir "${outdir}")
unset (swig_cleanup_command)
unset (swig_copy_command)
endif()
# IMPLICIT_DEPENDS below can not handle situations where a dependent file is
@ -476,16 +482,17 @@ function(SWIG_ADD_SOURCE_TO_MODULE name outfiles infile)
COMMAND "${CMAKE_COMMAND}" -E env "SWIG_LIB=${SWIG_DIR}" "${SWIG_EXECUTABLE}"
"-${SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG}"
"${swig_source_file_flags}"
-outdir "${outdir}"
-outdir "${swig_file_outdir}"
${swig_special_flags}
${swig_extra_flags}
"${swig_include_dirs}"
-o "${swig_generated_file_fullname}"
"${swig_source_file_fullname}"
${swig_copy_command}
MAIN_DEPENDENCY "${swig_source_file_fullname}"
DEPENDS ${swig_dependencies}
IMPLICIT_DEPENDS CXX "${swig_source_file_fullname}"
COMMENT "Swig source"
COMMENT "Swig compile ${infile} for ${SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG}"
COMMAND_EXPAND_LISTS)
set_source_files_properties("${swig_generated_file_fullname}" ${swig_extra_generated_files}
PROPERTIES GENERATED 1)

@ -0,0 +1,31 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
if (ACTION STREQUAL "CLEAN")
# Collect current list of generated files
file (GLOB files LIST_DIRECTORIES FALSE RELATIVE "${SUPPORT_FILES_WORKING_DIRECTORY}" "${SUPPORT_FILES_WORKING_DIRECTORY}/*")
if (files)
# clean-up the output directory
## compute full paths
list (TRANSFORM files PREPEND "${SUPPORT_FILES_OUTPUT_DIRECTORY}/")
## remove generated files from the output directory
file (REMOVE ${files})
# clean-up working directory
file (REMOVE_RECURSE "${SUPPORT_FILES_WORKING_DIRECTORY}")
endif()
file (MAKE_DIRECTORY "${SUPPORT_FILES_WORKING_DIRECTORY}")
endif()
if (ACTION STREQUAL "COPY")
# Collect current list of generated files
file (GLOB files LIST_DIRECTORIES FALSE "${SUPPORT_FILES_WORKING_DIRECTORY}/*")
if (files)
# copy files to the output directory
file (COPY ${files} DESTINATION "${SUPPORT_FILES_OUTPUT_DIRECTORY}")
endif()
endif()

@ -890,7 +890,7 @@ set(CPACK_SRCS
CPack/cmCPackArchiveGenerator.cxx
CPack/cmCPackComponentGroup.cxx
CPack/cmCPackDebGenerator.cxx
CPack/cmCPackExtGenerator.cxx
CPack/cmCPackExternalGenerator.cxx
CPack/cmCPackGeneratorFactory.cxx
CPack/cmCPackGenerator.cxx
CPack/cmCPackLog.cxx

@ -1,5 +1,5 @@
# CMake version number components.
set(CMake_VERSION_MAJOR 3)
set(CMake_VERSION_MINOR 13)
set(CMake_VERSION_PATCH 0)
set(CMake_VERSION_RC 2)
set(CMake_VERSION_PATCH 1)
#set(CMake_VERSION_RC 0)

@ -1,6 +1,6 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
#include "cmCPackExtGenerator.h"
#include "cmCPackExternalGenerator.h"
#include "cmAlgorithms.h"
#include "cmCPackComponentGroup.h"
@ -16,25 +16,25 @@
#include <utility>
#include <vector>
int cmCPackExtGenerator::InitializeInternal()
int cmCPackExternalGenerator::InitializeInternal()
{
this->SetOption("CPACK_EXT_KNOWN_VERSIONS", "1.0");
this->SetOption("CPACK_EXTERNAL_KNOWN_VERSIONS", "1.0");
if (!this->ReadListFile("Internal/CPack/CPackExt.cmake")) {
if (!this->ReadListFile("Internal/CPack/CPackExternal.cmake")) {
cmCPackLogger(cmCPackLog::LOG_ERROR,
"Error while executing CPackExt.cmake" << std::endl);
"Error while executing CPackExternal.cmake" << std::endl);
return 0;
}
std::string major = this->GetOption("CPACK_EXT_SELECTED_MAJOR");
std::string major = this->GetOption("CPACK_EXTERNAL_SELECTED_MAJOR");
if (major == "1") {
this->Generator = cm::make_unique<cmCPackExtVersion1Generator>(this);
this->Generator = cm::make_unique<cmCPackExternalVersion1Generator>(this);
}
return this->Superclass::InitializeInternal();
}
int cmCPackExtGenerator::PackageFiles()
int cmCPackExternalGenerator::PackageFiles()
{
Json::StreamWriterBuilder builder;
builder["indentation"] = " ";
@ -57,12 +57,12 @@ int cmCPackExtGenerator::PackageFiles()
return 0;
}
const char* packageScript = this->GetOption("CPACK_EXT_PACKAGE_SCRIPT");
const char* packageScript = this->GetOption("CPACK_EXTERNAL_PACKAGE_SCRIPT");
if (packageScript && *packageScript) {
if (!cmSystemTools::FileIsFullPath(packageScript)) {
cmCPackLogger(
cmCPackLog::LOG_ERROR,
"CPACK_EXT_PACKAGE_SCRIPT does not contain a full file path"
"CPACK_EXTERNAL_PACKAGE_SCRIPT does not contain a full file path"
<< std::endl);
return 0;
}
@ -77,12 +77,12 @@ int cmCPackExtGenerator::PackageFiles()
return 1;
}
bool cmCPackExtGenerator::SupportsComponentInstallation() const
bool cmCPackExternalGenerator::SupportsComponentInstallation() const
{
return true;
}
int cmCPackExtGenerator::InstallProjectViaInstallCommands(
int cmCPackExternalGenerator::InstallProjectViaInstallCommands(
bool setDestDir, const std::string& tempInstallDirectory)
{
if (this->StagingEnabled()) {
@ -93,7 +93,7 @@ int cmCPackExtGenerator::InstallProjectViaInstallCommands(
return 1;
}
int cmCPackExtGenerator::InstallProjectViaInstallScript(
int cmCPackExternalGenerator::InstallProjectViaInstallScript(
bool setDestDir, const std::string& tempInstallDirectory)
{
if (this->StagingEnabled()) {
@ -104,7 +104,7 @@ int cmCPackExtGenerator::InstallProjectViaInstallScript(
return 1;
}
int cmCPackExtGenerator::InstallProjectViaInstalledDirectories(
int cmCPackExternalGenerator::InstallProjectViaInstalledDirectories(
bool setDestDir, const std::string& tempInstallDirectory,
const mode_t* default_dir_mode)
{
@ -116,7 +116,7 @@ int cmCPackExtGenerator::InstallProjectViaInstalledDirectories(
return 1;
}
int cmCPackExtGenerator::RunPreinstallTarget(
int cmCPackExternalGenerator::RunPreinstallTarget(
const std::string& installProjectName, const std::string& installDirectory,
cmGlobalGenerator* globalGenerator, const std::string& buildConfig)
{
@ -128,7 +128,7 @@ int cmCPackExtGenerator::RunPreinstallTarget(
return 1;
}
int cmCPackExtGenerator::InstallCMakeProject(
int cmCPackExternalGenerator::InstallCMakeProject(
bool setDestDir, const std::string& installDirectory,
const std::string& baseTempInstallDirectory, const mode_t* default_dir_mode,
const std::string& component, bool componentInstall,
@ -145,18 +145,19 @@ int cmCPackExtGenerator::InstallCMakeProject(
return 1;
}
bool cmCPackExtGenerator::StagingEnabled() const
bool cmCPackExternalGenerator::StagingEnabled() const
{
return !cmSystemTools::IsOff(this->GetOption("CPACK_EXT_ENABLE_STAGING"));
return !cmSystemTools::IsOff(
this->GetOption("CPACK_EXTERNAL_ENABLE_STAGING"));
}
cmCPackExtGenerator::cmCPackExtVersionGenerator::cmCPackExtVersionGenerator(
cmCPackExtGenerator* parent)
cmCPackExternalGenerator::cmCPackExternalVersionGenerator::
cmCPackExternalVersionGenerator(cmCPackExternalGenerator* parent)
: Parent(parent)
{
}
int cmCPackExtGenerator::cmCPackExtVersionGenerator::WriteVersion(
int cmCPackExternalGenerator::cmCPackExternalVersionGenerator::WriteVersion(
Json::Value& root)
{
root["formatVersionMajor"] = this->GetVersionMajor();
@ -165,7 +166,7 @@ int cmCPackExtGenerator::cmCPackExtVersionGenerator::WriteVersion(
return 1;
}
int cmCPackExtGenerator::cmCPackExtVersionGenerator::WriteToJSON(
int cmCPackExternalGenerator::cmCPackExternalVersionGenerator::WriteToJSON(
Json::Value& root)
{
if (!this->WriteVersion(root)) {

@ -1,7 +1,7 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
#ifndef cmCPackExtGenerator_h
#define cmCPackExtGenerator_h
#ifndef cmCPackExternalGenerator_h
#define cmCPackExternalGenerator_h
#include "cmCPackGenerator.h"
#include "cm_sys_stat.h"
@ -14,13 +14,13 @@ namespace Json {
class Value;
}
/** \class cmCPackExtGenerator
/** \class cmCPackExternalGenerator
* \brief A generator for CPack External packaging tools
*/
class cmCPackExtGenerator : public cmCPackGenerator
class cmCPackExternalGenerator : public cmCPackGenerator
{
public:
cmCPackTypeMacro(cmCPackExtGenerator, cmCPackGenerator);
cmCPackTypeMacro(cmCPackExternalGenerator, cmCPackGenerator);
const char* GetOutputExtension() override { return ".json"; }
@ -54,12 +54,12 @@ protected:
private:
bool StagingEnabled() const;
class cmCPackExtVersionGenerator
class cmCPackExternalVersionGenerator
{
public:
cmCPackExtVersionGenerator(cmCPackExtGenerator* parent);
cmCPackExternalVersionGenerator(cmCPackExternalGenerator* parent);
virtual ~cmCPackExtVersionGenerator() = default;
virtual ~cmCPackExternalVersionGenerator() = default;
virtual int WriteToJSON(Json::Value& root);
@ -69,20 +69,21 @@ private:
int WriteVersion(Json::Value& root);
cmCPackExtGenerator* Parent;
cmCPackExternalGenerator* Parent;
};
class cmCPackExtVersion1Generator : public cmCPackExtVersionGenerator
class cmCPackExternalVersion1Generator
: public cmCPackExternalVersionGenerator
{
public:
using cmCPackExtVersionGenerator::cmCPackExtVersionGenerator;
using cmCPackExternalVersionGenerator::cmCPackExternalVersionGenerator;
protected:
int GetVersionMajor() override { return 1; }
int GetVersionMinor() override { return 0; }
};
std::unique_ptr<cmCPackExtVersionGenerator> Generator;
std::unique_ptr<cmCPackExternalVersionGenerator> Generator;
};
#endif

@ -12,7 +12,7 @@
# include "cmCPackFreeBSDGenerator.h"
#endif
#include "cmCPackDebGenerator.h"
#include "cmCPackExtGenerator.h"
#include "cmCPackExternalGenerator.h"
#include "cmCPackGenerator.h"
#include "cmCPackLog.h"
#include "cmCPackNSISGenerator.h"
@ -111,9 +111,9 @@ cmCPackGeneratorFactory::cmCPackGeneratorFactory()
this->RegisterGenerator("NuGet", "NuGet packages",
cmCPackNuGetGenerator::CreateGenerator);
}
if (cmCPackExtGenerator::CanGenerate()) {
this->RegisterGenerator("Ext", "CPack External packages",
cmCPackExtGenerator::CreateGenerator);
if (cmCPackExternalGenerator::CanGenerate()) {
this->RegisterGenerator("External", "CPack External packages",
cmCPackExternalGenerator::CreateGenerator);
}
#ifdef __APPLE__
if (cmCPackDragNDropGenerator::CanGenerate()) {

@ -1686,6 +1686,7 @@ void cmCTestTestHandler::GetListOfTests()
cm.GetState()->AddBuiltinCommand("set_tests_properties", newCom4);
// Add handler for SET_DIRECTORY_PROPERTIES
cm.GetState()->RemoveBuiltinCommand("set_directory_properties");
cmCTestSetDirectoryPropertiesCommand* newCom5 =
new cmCTestSetDirectoryPropertiesCommand;
newCom5->TestHandler = this;

@ -127,7 +127,8 @@ bool cmProcess::StartProcess(uv_loop_t& loop, std::vector<size_t>* affinity)
uv_pipe_open(pipe_writer, fds[1]);
uv_stdio_container_t stdio[3];
stdio[0].flags = UV_IGNORE;
stdio[0].flags = UV_INHERIT_FD;
stdio[0].data.fd = 0;
stdio[1].flags = UV_INHERIT_STREAM;
stdio[1].data.stream = pipe_writer;
stdio[2] = stdio[1];

@ -593,13 +593,13 @@ static const YY_CHAR yy_ec[256] =
13, 14, 1, 15, 1, 1, 1, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 17, 18, 19,
20, 21, 22, 1, 23, 24, 25, 26, 27, 28,
24, 24, 29, 24, 24, 30, 31, 32, 33, 24,
24, 34, 35, 36, 37, 24, 24, 24, 24, 24,
1, 38, 1, 1, 39, 1, 23, 40, 41, 42,
29, 29, 30, 29, 29, 31, 32, 33, 34, 29,
29, 35, 36, 37, 38, 29, 29, 29, 29, 29,
1, 39, 1, 1, 40, 1, 23, 24, 41, 42,
43, 44, 24, 24, 45, 24, 24, 46, 31, 47,
33, 24, 24, 34, 48, 36, 49, 24, 24, 24,
24, 24, 1, 1, 1, 1, 1, 1, 1, 1,
43, 44, 29, 29, 45, 29, 29, 46, 32, 47,
34, 29, 29, 35, 48, 37, 49, 29, 29, 29,
29, 29, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@ -621,7 +621,7 @@ static const YY_CHAR yy_meta[50] =
1, 2, 2, 3, 4, 3, 3, 1, 1, 3,
3, 3, 3, 1, 3, 5, 3, 3, 1, 3,
6, 1, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 1, 5, 7,
7, 7, 7, 7, 7, 7, 7, 7, 1, 5,
7, 7, 7, 7, 7, 7, 7, 7, 7
} ;
@ -629,28 +629,28 @@ static const flex_int16_t yy_base[219] =
{ 0,
0, 48, 0, 49, 464, 56, 52, 57, 62, 68,
466, 0, 468, 468, 462, 468, 74, 81, 468, 468,
468, 468, 447, 468, 442, 440, 0, 41, 42, 428,
43, 42, 91, 119, 97, 157, 455, 206, 245, 468,
454, 101, 468, 468, 0, 455, 468, 105, 430, 424,
62, 68, 119, 141, 468, 468, 468, 111, 0, 59,
98, 88, 415, 109, 158, 468, 0, 162, 293, 0,
163, 411, 107, 122, 408, 405, 446, 342, 447, 468,
0, 444, 169, 173, 420, 421, 132, 404, 90, 404,
179, 185, 191, 227, 295, 397, 0, 146, 178, 149,
412, 0, 208, 206, 398, 171, 399, 170, 399, 391,
387, 422, 417, 221, 468, 374, 365, 347, 347, 334,
335, 335, 330, 334, 259, 340, 188, 340, 327, 327,
327, 324, 325, 325, 320, 322, 319, 355, 354, 325,
327, 468, 468, 310, 309, 309, 300, 301, 273, 273,
275, 277, 297, 468, 468, 293, 289, 283, 275, 305,
261, 238, 237, 214, 468, 468, 468, 196, 197, 189,
277, 181, 0, 274, 112, 468, 468, 105, 103, 311,
468, 233, 0, 468, 468, 83, 76, 0, 281, 282,
468, 468, 52, 468, 468, 468, 468, 23, 287, 298,
327, 468, 0, 0, 329, 0, 31, 468, 468, 381,
388, 394, 397, 404, 411, 418, 425, 432
468, 468, 447, 468, 442, 440, 0, 19, 41, 427,
47, 41, 90, 119, 97, 158, 455, 207, 247, 468,
454, 101, 468, 468, 0, 455, 468, 105, 430, 423,
62, 67, 119, 151, 468, 468, 468, 121, 0, 90,
93, 110, 431, 112, 142, 468, 0, 160, 295, 0,
162, 411, 123, 102, 408, 405, 446, 344, 447, 468,
0, 444, 170, 174, 420, 421, 132, 404, 95, 404,
180, 186, 192, 228, 297, 397, 0, 168, 144, 52,
411, 0, 204, 217, 397, 179, 390, 170, 389, 378,
364, 390, 389, 230, 468, 363, 355, 337, 337, 334,
335, 335, 330, 334, 187, 339, 267, 339, 327, 327,
327, 324, 325, 325, 318, 319, 318, 354, 352, 323,
327, 468, 468, 310, 307, 305, 297, 297, 275, 275,
277, 279, 287, 468, 468, 286, 283, 273, 196, 307,
200, 238, 234, 210, 468, 468, 468, 174, 171, 162,
279, 182, 0, 269, 150, 468, 468, 137, 109, 323,
468, 239, 0, 468, 468, 72, 71, 0, 283, 283,
468, 468, 51, 468, 468, 468, 468, 37, 283, 288,
330, 468, 0, 0, 331, 0, 52, 468, 468, 384,
391, 397, 400, 407, 414, 421, 428, 435
} ;
static const flex_int16_t yy_def[219] =
@ -685,53 +685,53 @@ static const flex_int16_t yy_nxt[518] =
{ 0,
12, 13, 14, 13, 13, 15, 16, 12, 17, 18,
19, 20, 21, 12, 22, 12, 23, 24, 12, 25,
12, 26, 27, 27, 27, 27, 28, 27, 29, 27,
30, 27, 27, 27, 31, 27, 32, 33, 34, 27,
12, 26, 27, 27, 27, 27, 28, 27, 27, 29,
27, 30, 27, 27, 27, 31, 27, 32, 33, 34,
27, 27, 28, 27, 29, 27, 27, 31, 32, 35,
35, 208, 35, 35, 41, 36, 36, 35, 37, 41,
35, 42, 43, 36, 41, 202, 42, 43, 44, 38,
41, 42, 60, 61, 44, 48, 64, 42, 48, 63,
39, 39, 53, 53, 97, 53, 54, 60, 61, 64,
55, 63, 65, 66, 201, 65, 39, 39, 68, 49,
97, 68, 83, 84, 69, 83, 48, 87, 88, 48,
50, 89, 95, 100, 90, 95, 51, 198, 52, 45,
53, 53, 98, 53, 54, 197, 45, 45, 55, 100,
49, 121, 45, 99, 67, 102, 122, 45, 98, 45,
45, 50, 92, 53, 193, 92, 93, 51, 192, 52,
94, 102, 106, 107, 191, 96, 45, 67, 70, 65,
66, 70, 65, 68, 104, 108, 68, 104, 109, 69,
83, 84, 71, 83, 114, 125, 118, 114, 71, 119,
92, 53, 115, 92, 93, 127, 92, 53, 94, 92,
93, 125, 92, 53, 94, 92, 93, 127, 72, 73,
94, 74, 75, 189, 126, 76, 78, 104, 80, 104,
104, 133, 104, 78, 78, 130, 134, 151, 131, 78,
126, 78, 114, 103, 78, 114, 78, 78, 92, 53,
115, 92, 93, 151, 195, 195, 94, 187, 186, 185,
184, 183, 182, 78, 78, 79, 79, 80, 79, 79,
35, 60, 35, 35, 41, 36, 36, 35, 37, 41,
35, 42, 43, 36, 41, 60, 42, 43, 44, 38,
41, 42, 208, 61, 44, 48, 64, 42, 48, 202,
39, 39, 53, 53, 63, 53, 54, 61, 64, 127,
55, 65, 66, 201, 65, 63, 39, 39, 68, 49,
127, 68, 83, 84, 69, 83, 48, 87, 88, 48,
89, 50, 198, 90, 197, 97, 51, 98, 52, 45,
53, 53, 95, 53, 54, 95, 45, 45, 55, 99,
49, 97, 45, 98, 67, 100, 121, 45, 102, 45,
45, 122, 50, 65, 66, 108, 65, 51, 109, 52,
193, 100, 92, 53, 102, 92, 93, 45, 67, 70,
94, 68, 70, 104, 68, 96, 104, 69, 106, 107,
126, 83, 84, 71, 83, 114, 118, 71, 114, 119,
192, 92, 53, 115, 92, 93, 126, 92, 53, 94,
92, 93, 191, 92, 53, 94, 92, 93, 125, 72,
73, 94, 74, 75, 189, 104, 76, 78, 104, 80,
187, 133, 186, 125, 78, 78, 134, 185, 104, 103,
78, 104, 78, 130, 149, 78, 131, 78, 78, 92,
53, 114, 92, 93, 114, 149, 184, 94, 183, 115,
195, 195, 182, 181, 179, 78, 78, 79, 79, 80,
79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
81, 79, 79, 79, 79, 79, 79, 81, 81, 81,
79, 79, 81, 79, 79, 79, 79, 79, 79, 81,
81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
81, 81, 79, 81, 81, 81, 81, 81, 81, 81,
81, 81, 81, 81, 70, 149, 95, 70, 171, 95,
172, 173, 174, 188, 181, 199, 180, 149, 103, 180,
190, 200, 180, 203, 171, 180, 172, 173, 174, 188,
103, 199, 190, 179, 204, 178, 103, 200, 205, 203,
205, 205, 177, 205, 72, 73, 176, 74, 75, 96,
204, 76, 78, 175, 80, 206, 170, 206, 169, 78,
78, 168, 167, 166, 165, 78, 164, 78, 163, 162,
78, 161, 78, 78, 160, 159, 158, 157, 156, 155,
154, 153, 152, 150, 148, 147, 146, 145, 144, 78,
78, 40, 40, 40, 40, 40, 40, 40, 45, 143,
142, 141, 45, 45, 46, 46, 46, 46, 46, 46,
46, 59, 140, 59, 79, 79, 79, 79, 79, 79,
79, 91, 91, 91, 91, 91, 91, 91, 194, 194,
194, 139, 194, 194, 194, 196, 138, 196, 137, 196,
196, 196, 207, 207, 207, 207, 207, 136, 207, 135,
132, 129, 128, 124, 123, 120, 117, 116, 113, 80,
81, 81, 81, 81, 81, 79, 81, 81, 81, 81,
81, 81, 81, 81, 81, 81, 70, 151, 95, 70,
171, 95, 172, 173, 174, 188, 190, 199, 180, 203,
103, 180, 151, 200, 204, 178, 171, 190, 172, 173,
174, 188, 103, 199, 180, 203, 177, 180, 200, 176,
204, 205, 205, 175, 205, 205, 72, 73, 103, 74,
75, 96, 170, 76, 78, 169, 80, 168, 206, 206,
167, 78, 78, 166, 165, 164, 163, 78, 162, 78,
161, 160, 78, 159, 78, 78, 158, 157, 156, 155,
154, 153, 152, 150, 148, 147, 146, 145, 144, 143,
142, 141, 78, 78, 40, 40, 40, 40, 40, 40,
40, 45, 140, 139, 138, 45, 45, 46, 46, 46,
46, 46, 46, 46, 59, 137, 59, 79, 79, 79,
79, 79, 79, 79, 91, 91, 91, 91, 91, 91,
91, 194, 194, 194, 136, 194, 194, 194, 196, 135,
196, 132, 196, 196, 196, 207, 207, 207, 207, 207,
129, 207, 128, 124, 123, 120, 117, 116, 113, 80,
112, 111, 110, 105, 101, 86, 85, 47, 82, 77,
62, 58, 57, 56, 47, 209, 37, 11, 209, 209,
209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
@ -749,50 +749,50 @@ static const flex_int16_t yy_chk[518] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
4, 207, 2, 4, 7, 2, 4, 6, 6, 8,
6, 7, 7, 6, 9, 198, 8, 8, 9, 6,
10, 9, 28, 29, 10, 17, 32, 10, 17, 31,
6, 6, 18, 18, 60, 18, 18, 28, 29, 32,
18, 31, 33, 33, 193, 33, 6, 6, 35, 17,
60, 35, 42, 42, 35, 42, 48, 51, 51, 48,
17, 52, 58, 62, 52, 58, 17, 187, 17, 34,
53, 53, 61, 53, 53, 186, 34, 34, 53, 62,
48, 89, 34, 61, 34, 64, 89, 34, 61, 34,
34, 48, 54, 54, 179, 54, 54, 48, 178, 48,
54, 64, 73, 73, 175, 58, 34, 34, 36, 65,
65, 36, 65, 68, 71, 74, 68, 71, 74, 68,
83, 83, 36, 83, 84, 98, 87, 84, 71, 87,
91, 91, 84, 91, 91, 100, 92, 92, 91, 92,
92, 98, 93, 93, 92, 93, 93, 100, 36, 36,
93, 36, 36, 172, 99, 36, 38, 104, 38, 103,
104, 108, 103, 38, 38, 106, 108, 127, 106, 38,
99, 38, 114, 103, 38, 114, 38, 38, 94, 94,
114, 94, 94, 127, 182, 182, 94, 170, 169, 168,
164, 163, 162, 38, 38, 39, 39, 39, 39, 39,
4, 28, 2, 4, 7, 2, 4, 6, 6, 8,
6, 7, 7, 6, 9, 28, 8, 8, 9, 6,
10, 9, 207, 29, 10, 17, 32, 10, 17, 198,
6, 6, 18, 18, 31, 18, 18, 29, 32, 100,
18, 33, 33, 193, 33, 31, 6, 6, 35, 17,
100, 35, 42, 42, 35, 42, 48, 51, 51, 48,
52, 17, 187, 52, 186, 60, 17, 61, 17, 34,
53, 53, 58, 53, 53, 58, 34, 34, 53, 61,
48, 60, 34, 61, 34, 62, 89, 34, 64, 34,
34, 89, 48, 65, 65, 74, 65, 48, 74, 48,
179, 62, 54, 54, 64, 54, 54, 34, 34, 36,
54, 68, 36, 71, 68, 58, 71, 68, 73, 73,
99, 83, 83, 36, 83, 84, 87, 71, 84, 87,
178, 91, 91, 84, 91, 91, 99, 92, 92, 91,
92, 92, 175, 93, 93, 92, 93, 93, 98, 36,
36, 93, 36, 36, 172, 103, 36, 38, 103, 38,
170, 108, 169, 98, 38, 38, 108, 168, 104, 103,
38, 104, 38, 106, 125, 38, 106, 38, 38, 94,
94, 114, 94, 94, 114, 125, 164, 94, 163, 114,
182, 182, 162, 161, 159, 38, 38, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
39, 39, 39, 39, 69, 125, 95, 69, 149, 95,
150, 151, 152, 171, 161, 189, 160, 125, 69, 160,
174, 190, 180, 199, 149, 180, 150, 151, 152, 171,
160, 189, 174, 159, 200, 158, 180, 190, 201, 199,
205, 201, 157, 205, 69, 69, 156, 69, 69, 95,
200, 69, 78, 153, 78, 201, 148, 205, 147, 78,
78, 146, 145, 144, 141, 78, 140, 78, 139, 138,
78, 137, 78, 78, 136, 135, 134, 133, 132, 131,
130, 129, 128, 126, 124, 123, 122, 121, 120, 78,
78, 210, 210, 210, 210, 210, 210, 210, 211, 119,
118, 117, 211, 211, 212, 212, 212, 212, 212, 212,
212, 213, 116, 213, 214, 214, 214, 214, 214, 214,
214, 215, 215, 215, 215, 215, 215, 215, 216, 216,
216, 113, 216, 216, 216, 217, 112, 217, 111, 217,
217, 217, 218, 218, 218, 218, 218, 110, 218, 109,
107, 105, 101, 96, 90, 88, 86, 85, 82, 79,
39, 39, 39, 39, 39, 39, 69, 127, 95, 69,
149, 95, 150, 151, 152, 171, 174, 189, 160, 199,
69, 160, 127, 190, 200, 158, 149, 174, 150, 151,
152, 171, 160, 189, 180, 199, 157, 180, 190, 156,
200, 201, 205, 153, 201, 205, 69, 69, 180, 69,
69, 95, 148, 69, 78, 147, 78, 146, 201, 205,
145, 78, 78, 144, 141, 140, 139, 78, 138, 78,
137, 136, 78, 135, 78, 78, 134, 133, 132, 131,
130, 129, 128, 126, 124, 123, 122, 121, 120, 119,
118, 117, 78, 78, 210, 210, 210, 210, 210, 210,
210, 211, 116, 113, 112, 211, 211, 212, 212, 212,
212, 212, 212, 212, 213, 111, 213, 214, 214, 214,
214, 214, 214, 214, 215, 215, 215, 215, 215, 215,
215, 216, 216, 216, 110, 216, 216, 216, 217, 109,
217, 107, 217, 217, 217, 218, 218, 218, 218, 218,
105, 218, 101, 96, 90, 88, 86, 85, 82, 79,
77, 76, 75, 72, 63, 50, 49, 46, 41, 37,
30, 26, 25, 23, 15, 11, 5, 209, 209, 209,
209, 209, 209, 209, 209, 209, 209, 209, 209, 209,

@ -146,7 +146,7 @@ $[ \t]*endif { return F90PPR_ENDIF; }
[Ii][Nn][Cc][Ll][Uu][Dd][Ee] { return INCLUDE; }
[Ii][Nn][Tt][Ee][Rr][Ff][Aa][Cc][Ee] { return INTERFACE; }
[Mm][Oo][Dd][Uu][Ll][Ee] { return MODULE; }
[Ss][Uu][bb][Mm][Oo][Dd][Uu][Ll][Ee] { return SUBMODULE; }
[Ss][Uu][Bb][Mm][Oo][Dd][Uu][Ll][Ee] { return SUBMODULE; }
[Uu][Ss][Ee] { return USE; }
[a-zA-Z_][a-zA-Z_0-9]* {

@ -318,12 +318,6 @@ bool cmAddCustomCommandCommand::InitialPass(
return false;
}
// Convert working directory to a full path.
if (!working.empty()) {
const std::string& build_dir = this->Makefile->GetCurrentBinaryDirectory();
working = cmSystemTools::CollapseFullPath(working, build_dir);
}
// Choose which mode of the command to use.
bool escapeOldStyle = !verbatim;
if (source.empty() && output.empty()) {

@ -181,13 +181,6 @@ bool cmAddCustomTargetCommand::InitialPass(
}
}
// Convert working directory to a full path.
if (!working_directory.empty()) {
const std::string& build_dir = this->Makefile->GetCurrentBinaryDirectory();
working_directory =
cmSystemTools::CollapseFullPath(working_directory, build_dir);
}
if (commandLines.empty() && !byproducts.empty()) {
this->Makefile->IssueMessage(
cmake::FATAL_ERROR,

@ -151,6 +151,8 @@ void GetScriptingCommands(cmState* state)
state->AddBuiltinCommand("separate_arguments",
new cmSeparateArgumentsCommand);
state->AddBuiltinCommand("set", new cmSetCommand);
state->AddBuiltinCommand("set_directory_properties",
new cmSetDirectoryPropertiesCommand);
state->AddBuiltinCommand("set_property", new cmSetPropertyCommand);
state->AddBuiltinCommand("site_name", new cmSiteNameCommand);
state->AddBuiltinCommand("string", new cmStringCommand);
@ -240,8 +242,6 @@ void GetProjectCommands(cmState* state)
state->AddBuiltinCommand("install_targets", new cmInstallTargetsCommand);
state->AddBuiltinCommand("link_directories", new cmLinkDirectoriesCommand);
state->AddBuiltinCommand("project", new cmProjectCommand);
state->AddBuiltinCommand("set_directory_properties",
new cmSetDirectoryPropertiesCommand);
state->AddBuiltinCommand("set_source_files_properties",
new cmSetSourceFilesPropertiesCommand);
state->AddBuiltinCommand("set_target_properties",

@ -20,11 +20,8 @@ bool cmConfigureFileCommand::InitialPass(std::vector<std::string> const& args,
}
std::string const& inFile = args[0];
if (!cmSystemTools::FileIsFullPath(inFile)) {
this->InputFile = this->Makefile->GetCurrentSourceDirectory();
this->InputFile += "/";
}
this->InputFile += inFile;
this->InputFile = cmSystemTools::CollapseFullPath(
inFile, this->Makefile->GetCurrentSourceDirectory());
// If the input location is a directory, error out.
if (cmSystemTools::FileIsDirectory(this->InputFile)) {
@ -39,11 +36,8 @@ bool cmConfigureFileCommand::InitialPass(std::vector<std::string> const& args,
}
std::string const& outFile = args[1];
if (!cmSystemTools::FileIsFullPath(outFile)) {
this->OutputFile = this->Makefile->GetCurrentBinaryDirectory();
this->OutputFile += "/";
}
this->OutputFile += outFile;
this->OutputFile = cmSystemTools::CollapseFullPath(
outFile, this->Makefile->GetCurrentBinaryDirectory());
// If the output location is already a directory put the file in it.
if (cmSystemTools::FileIsDirectory(this->OutputFile)) {

@ -70,6 +70,12 @@ cmCustomCommandGenerator::cmCustomCommandGenerator(cmCustomCommand const& cc,
std::unique_ptr<cmCompiledGeneratorExpression> cge =
this->GE->Parse(workingdirectory);
this->WorkingDirectory = cge->Evaluate(this->LG, this->Config);
// Convert working directory to a full path.
if (!this->WorkingDirectory.empty()) {
std::string const& build_dir = this->LG->GetCurrentBinaryDirectory();
this->WorkingDirectory =
cmSystemTools::CollapseFullPath(this->WorkingDirectory, build_dir);
}
}
}

@ -855,7 +855,7 @@ void cmExportFileGenerator::SetImportDetailProperties(
std::string propval;
if (auto* p = target->GetProperty("COMMON_LANGUAGE_RUNTIME")) {
propval = p;
} else if (target->HasLanguage("CSharp", config)) {
} else if (target->IsCSharpOnly()) {
// C# projects do not have the /clr flag, so we set the property
// here to mark the target as (only) managed (i.e. no .lib file
// to link to). Otherwise the COMMON_LANGUAGE_RUNTIME target

@ -315,6 +315,7 @@ void cmFileMonitor::MonitorPaths(const std::vector<std::string>& paths,
for (std::string const& p : paths) {
std::vector<std::string> pathSegments;
cmsys::SystemTools::SplitPath(p, pathSegments, true);
const bool pathIsFile = !cmsys::SystemTools::FileIsDirectory(p);
const size_t segmentCount = pathSegments.size();
if (segmentCount < 2) { // Expect at least rootdir and filename
@ -324,7 +325,7 @@ void cmFileMonitor::MonitorPaths(const std::vector<std::string>& paths,
for (size_t i = 0; i < segmentCount; ++i) {
assert(currentWatcher);
const bool fileSegment = (i == segmentCount - 1);
const bool fileSegment = (i == segmentCount - 1 && pathIsFile);
const bool rootSegment = (i == 0);
assert(
!(fileSegment &&

@ -5594,20 +5594,23 @@ void cmGeneratorTarget::GetLanguages(std::set<std::string>& languages,
}
}
bool cmGeneratorTarget::HasLanguage(std::string const& language,
std::string const& config,
bool exclusive) const
bool cmGeneratorTarget::IsCSharpOnly() const
{
std::set<std::string> languages;
this->GetLanguages(languages, config);
// The "exclusive" check applies only to source files and not
// the linker language which may be affected by dependencies.
if (exclusive && languages.size() > 1) {
// Only certain target types may compile CSharp.
if (this->GetType() != cmStateEnums::SHARED_LIBRARY &&
this->GetType() != cmStateEnums::STATIC_LIBRARY &&
this->GetType() != cmStateEnums::EXECUTABLE) {
return false;
}
// add linker language (if it is different from compiler languages)
languages.insert(this->GetLinkerLanguage(config));
return languages.count(language) > 0;
std::set<std::string> languages;
this->GetLanguages(languages, "");
// Consider an explicit linker language property, but *not* the
// computed linker language that may depend on linked targets.
const char* linkLang = this->GetProperty("LINKER_LANGUAGE");
if (linkLang && *linkLang) {
languages.insert(linkLang);
}
return languages.size() == 1 && languages.count("CSharp") > 0;
}
void cmGeneratorTarget::ComputeLinkImplementationLanguages(
@ -5971,6 +5974,5 @@ cmGeneratorTarget::ManagedType cmGeneratorTarget::GetManagedType(
// C# targets are always managed. This language specific check
// is added to avoid that the COMMON_LANGUAGE_RUNTIME target property
// has to be set manually for C# targets.
return this->HasLanguage("CSharp", config) ? ManagedType::Managed
: ManagedType::Native;
return this->IsCSharpOnly() ? ManagedType::Managed : ManagedType::Native;
}

@ -372,11 +372,7 @@ public:
void GetLanguages(std::set<std::string>& languages,
std::string const& config) const;
// Evaluate if the target uses the given language for compilation
// and/or linking. If 'exclusive' is true, 'language' is expected
// to be the only language used in source files for the target.
bool HasLanguage(std::string const& language, std::string const& config,
bool exclusive = true) const;
bool IsCSharpOnly() const;
void GetObjectLibrariesCMP0026(
std::vector<cmGeneratorTarget*>& objlibs) const;

@ -215,6 +215,10 @@ bool cmGlobalVisualStudio14Generator::IsWindowsStoreToolsetInstalled() const
std::string cmGlobalVisualStudio14Generator::GetWindows10SDKMaxVersion() const
{
// The last Windows 10 SDK version that VS 2015 can target is 10.0.14393.0.
//
// "VS 2015 Users: The Windows 10 SDK (15063, 16299, 17134, 17763) is
// officially only supported for VS 2017." From:
// https://blogs.msdn.microsoft.com/chuckw/2018/10/02/windows-10-october-2018-update/
return "10.0.14393.0";
}
@ -287,28 +291,28 @@ std::string cmGlobalVisualStudio14Generator::GetWindows10SDKVersion()
// only the UCRT MSIs were installed for them.
cmEraseIf(sdks, NoWindowsH());
if (!sdks.empty()) {
// Only use the filename, which will be the SDK version.
for (std::string& i : sdks) {
i = cmSystemTools::GetFilenameName(i);
}
// Only use the filename, which will be the SDK version.
for (std::string& i : sdks) {
i = cmSystemTools::GetFilenameName(i);
}
// Sort the results to make sure we select the most recent one.
std::sort(sdks.begin(), sdks.end(), cmSystemTools::VersionCompareGreater);
// Skip SDKs that cannot be used with our toolset.
std::string maxVersion = this->GetWindows10SDKMaxVersion();
if (!maxVersion.empty()) {
cmEraseIf(sdks, WindowsSDKTooRecent(maxVersion));
}
// Skip SDKs that cannot be used with our toolset.
std::string maxVersion = this->GetWindows10SDKMaxVersion();
if (!maxVersion.empty()) {
cmEraseIf(sdks, WindowsSDKTooRecent(maxVersion));
}
// Sort the results to make sure we select the most recent one.
std::sort(sdks.begin(), sdks.end(), cmSystemTools::VersionCompareGreater);
// Look for a SDK exactly matching the requested target version.
for (std::string const& i : sdks) {
if (cmSystemTools::VersionCompareEqual(i, this->SystemVersion)) {
return i;
}
// Look for a SDK exactly matching the requested target version.
for (std::string const& i : sdks) {
if (cmSystemTools::VersionCompareEqual(i, this->SystemVersion)) {
return i;
}
}
if (!sdks.empty()) {
// Use the latest Windows 10 SDK since the exact version is not available.
return sdks.at(0);
}

@ -98,7 +98,7 @@ void cmGlobalVisualStudio71Generator::WriteProject(std::ostream& fout,
ext = ".vfproj";
project = "Project(\"{6989167D-11E4-40FE-8C1A-2192A86A7E90}\") = \"";
}
if (t->HasLanguage("CSharp", "")) {
if (t->IsCSharpOnly()) {
ext = ".csproj";
project = "Project(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"";
}

@ -77,15 +77,15 @@ std::string cmLinkLineDeviceComputer::ComputeLinkLibraries(
std::string out;
if (item.IsPath) {
// nvcc understands absolute paths to libraries ending in '.a' should
// be passed to nvlink. Other extensions like '.so' or '.dylib' are
// rejected by the nvcc front-end even though nvlink knows to ignore
// them. Bypass the front-end via '-Xnvlink'.
if (!cmHasLiteralSuffix(item.Value, ".a")) {
out += "-Xnvlink ";
// nvcc understands absolute paths to libraries ending in '.a' or '.lib'.
// These should be passed to nvlink. Other extensions need to be left
// out because nvlink may not understand or need them. Even though it
// can tolerate '.so' or '.dylib' it cannot tolerate '.so.1'.
if (cmHasLiteralSuffix(item.Value, ".a") ||
cmHasLiteralSuffix(item.Value, ".lib")) {
out += this->ConvertToOutputFormat(
this->ConvertToLinkReference(item.Value));
}
out +=
this->ConvertToOutputFormat(this->ConvertToLinkReference(item.Value));
} else if (cmLinkItemValidForDevice(item.Value)) {
out += item.Value;
}

@ -1409,7 +1409,7 @@ bool cmQtAutoGenInitializer::GetUicExecutable()
}
// Test uic command
if (err.empty()) {
if (err.empty() && !this->Uic.Executable.empty()) {
if (cmSystemTools::FileExists(this->Uic.Executable, true)) {
std::vector<std::string> command;
command.push_back(this->Uic.Executable);

@ -502,6 +502,16 @@ std::vector<std::string> cmState::GetCommandNames() const
return commandNames;
}
void cmState::RemoveBuiltinCommand(std::string const& name)
{
assert(name == cmSystemTools::LowerCase(name));
std::map<std::string, cmCommand*>::iterator i =
this->BuiltinCommands.find(name);
assert(i != this->BuiltinCommands.end());
delete i->second;
this->BuiltinCommands.erase(i);
}
void cmState::RemoveUserDefinedCommands()
{
cmDeleteAll(this->ScriptedCommands);

@ -135,6 +135,7 @@ public:
cmPolicies::PolicyID policy, const char* message);
void AddUnexpectedCommand(std::string const& name, const char* error);
void AddScriptedCommand(std::string const& name, cmCommand* command);
void RemoveBuiltinCommand(std::string const& name);
void RemoveUserDefinedCommands();
std::vector<std::string> GetCommandNames() const;

@ -215,12 +215,11 @@ static bool cmVS10IsTargetsFile(std::string const& path)
return cmSystemTools::Strucmp(ext.c_str(), ".targets") == 0;
}
static std::string computeProjectFileExtension(cmGeneratorTarget const* t,
const std::string& config)
static std::string computeProjectFileExtension(cmGeneratorTarget const* t)
{
std::string res;
res = ".vcxproj";
if (t->HasLanguage("CSharp", config)) {
if (t->IsCSharpOnly()) {
res = ".csproj";
}
return res;
@ -315,8 +314,8 @@ void cmVisualStudio10TargetGenerator::Generate()
this->GeneratorTarget->GetProperty("EXTERNAL_MSPROJECT")) {
return;
}
const std::string ProjectFileExtension = computeProjectFileExtension(
this->GeneratorTarget, *this->Configurations.begin());
const std::string ProjectFileExtension =
computeProjectFileExtension(this->GeneratorTarget);
if (ProjectFileExtension == ".vcxproj") {
this->ProjectType = vcxproj;
this->Managed = false;
@ -1409,8 +1408,7 @@ void cmVisualStudio10TargetGenerator::WriteGroups()
std::string path = this->LocalGenerator->GetCurrentBinaryDirectory();
path += "/";
path += this->Name;
path += computeProjectFileExtension(this->GeneratorTarget,
*this->Configurations.begin());
path += computeProjectFileExtension(this->GeneratorTarget);
path += ".filters";
cmGeneratedFileStream fout(path);
fout.SetCopyIfDifferent(true);
@ -3812,7 +3810,7 @@ void cmVisualStudio10TargetGenerator::WriteProjectReferences(Elem& e0)
path = lg->GetCurrentBinaryDirectory();
path += "/";
path += dt->GetName();
path += computeProjectFileExtension(dt, *this->Configurations.begin());
path += computeProjectFileExtension(dt);
}
ConvertToWindowsSlash(path);
Elem e2(e1, "ProjectReference");
@ -3838,7 +3836,7 @@ void cmVisualStudio10TargetGenerator::WriteProjectReferences(Elem& e0)
}
// Workaround for static library C# targets
if (referenceNotManaged && dt->GetType() == cmStateEnums::STATIC_LIBRARY) {
referenceNotManaged = !dt->HasLanguage("CSharp", "");
referenceNotManaged = !dt->IsCSharpOnly();
}
if (referenceNotManaged) {
e2.Element("ReferenceOutputAssembly", "false");

@ -9,5 +9,5 @@ add_executable(CSharpOnly csharponly.cs)
target_link_libraries(CSharpOnly lib1 lib2)
add_custom_target(CSharpCustom SOURCES empty.cs)
add_custom_target(custom.cs DEPENDS empty.txt)
add_custom_target(CSharpCustom ALL SOURCES empty.cs)
add_custom_target(custom.cs ALL DEPENDS empty.txt)

@ -47,7 +47,7 @@ file(MAKE_DIRECTORY ${TestWorkingDir_BINARY_DIR}/genex)
add_custom_command(
OUTPUT "${TestWorkingDir_BINARY_DIR}/genex/working.c"
COMMAND "${CMAKE_COMMAND}" -E copy "${TestWorkingDir_SOURCE_DIR}/working.c.in" "${TestWorkingDir_BINARY_DIR}/genex/working.c"
WORKING_DIRECTORY "${TestWorkingDir_BINARY_DIR}/$<1:genex>/"
WORKING_DIRECTORY "$<0:not_used/>${TestWorkingDir_BINARY_DIR}/$<1:genex>/"
COMMENT "custom command"
)
@ -58,7 +58,7 @@ add_custom_target(
CustomGenex ALL
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${TestWorkingDir_SOURCE_DIR}/customTarget.c" "${TestWorkingDir_BINARY_DIR}/genex/customTarget.c"
BYPRODUCTS "${TestWorkingDir_BINARY_DIR}/genex/customTarget.c"
WORKING_DIRECTORY "${TestWorkingDir_BINARY_DIR}/$<1:genex>/"
WORKING_DIRECTORY "$<0:not_used/>${TestWorkingDir_BINARY_DIR}/$<1:genex>/"
)
add_dependencies(workinggenex CustomGenex)

@ -1,10 +1,10 @@
! Test the notation for a 1st-generation direct
! descendant of a parent module
submodule ( parent ) child
SUBMODULE ( parent ) child
implicit none
contains
CONTAINS
module function child_function() result(child_stuff)
logical :: child_stuff
child_stuff=.true.
end function
end submodule child
END SUBMODULE child

@ -178,6 +178,7 @@ add_RunCMake_test(ObjectLibrary)
if(UNIX AND CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG AND CMAKE_EXECUTABLE_FORMAT STREQUAL "ELF")
add_RunCMake_test(RuntimePath)
endif()
add_RunCMake_test(ScriptMode)
add_RunCMake_test(Swift)
add_RunCMake_test(TargetObjects)
add_RunCMake_test(TargetSources)
@ -367,7 +368,8 @@ add_RunCMake_test(FetchContent)
if(NOT CMake_TEST_EXTERNAL_CMAKE)
set(CTestCommandLine_ARGS -DTEST_AFFINITY=$<TARGET_FILE:testAffinity>)
endif()
add_RunCMake_test(CTestCommandLine)
add_executable(print_stdin print_stdin.c)
add_RunCMake_test(CTestCommandLine -DTEST_PRINT_STDIN=$<TARGET_FILE:print_stdin>)
add_RunCMake_test(CacheNewline)
# Only run this test on unix platforms that support
# symbolic links
@ -433,7 +435,7 @@ if("${CMAKE_GENERATOR}" MATCHES "Make|Ninja")
add_RunCMake_test(ctest_labels_for_subprojects)
endif()
add_RunCMake_test_group(CPack "DEB;RPM;7Z;TBZ2;TGZ;TXZ;TZ;ZIP;STGZ;Ext")
add_RunCMake_test_group(CPack "DEB;RPM;7Z;TBZ2;TGZ;TXZ;TZ;ZIP;STGZ;External")
# add a test to make sure symbols are exported from a shared library
# for MSVC compilers CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS property is used
add_RunCMake_test(AutoExportDll)

@ -18,8 +18,8 @@ run_cpack_test(GENERATE_SHLIBS_LDCONFIG "DEB" true "COMPONENT")
run_cpack_test(INSTALL_SCRIPTS "RPM" false "COMPONENT")
run_cpack_test(LONG_FILENAMES "DEB" false "MONOLITHIC")
run_cpack_test_subtests(MAIN_COMPONENT "invalid;found" "RPM" false "COMPONENT")
run_cpack_test(MINIMAL "RPM;DEB;7Z;TBZ2;TGZ;TXZ;TZ;ZIP;STGZ;Ext" false "MONOLITHIC;COMPONENT")
run_cpack_test_package_target(MINIMAL "RPM;DEB;7Z;TBZ2;TGZ;TXZ;TZ;ZIP;STGZ;Ext" false "MONOLITHIC;COMPONENT")
run_cpack_test(MINIMAL "RPM;DEB;7Z;TBZ2;TGZ;TXZ;TZ;ZIP;STGZ;External" false "MONOLITHIC;COMPONENT")
run_cpack_test_package_target(MINIMAL "RPM;DEB;7Z;TBZ2;TGZ;TXZ;TZ;ZIP;STGZ;External" false "MONOLITHIC;COMPONENT")
run_cpack_test_subtests(PACKAGE_CHECKSUM "invalid;MD5;SHA1;SHA224;SHA256;SHA384;SHA512" "TGZ" false "MONOLITHIC")
run_cpack_test(PARTIALLY_RELOCATABLE_WARNING "RPM" false "COMPONENT")
run_cpack_test(PER_COMPONENT_FIELDS "RPM;DEB" false "COMPONENT")
@ -35,4 +35,4 @@ run_cpack_test(USER_FILELIST "RPM" false "MONOLITHIC")
run_cpack_test(MD5SUMS "DEB" false "MONOLITHIC;COMPONENT")
run_cpack_test(CPACK_INSTALL_SCRIPT "ZIP" false "MONOLITHIC")
run_cpack_test(DEB_PACKAGE_VERSION_BACK_COMPATIBILITY "DEB" false "MONOLITHIC;COMPONENT")
run_cpack_test_subtests(EXT "none;good;good_multi;bad_major;bad_minor;invalid_good;invalid_bad;stage_and_package" "Ext" false "MONOLITHIC;COMPONENT")
run_cpack_test_subtests(EXTERNAL "none;good;good_multi;bad_major;bad_minor;invalid_good;invalid_bad;stage_and_package" "External" false "MONOLITHIC;COMPONENT")

@ -1,3 +0,0 @@
if(RunCMake_SUBTEST_SUFFIX MATCHES "^(none|good(_multi)?|invalid_good)")
check_ext_json("${src_dir}/tests/EXT/expected-json-1.0.txt" "${FOUND_FILE_1}")
endif()

@ -1,6 +0,0 @@
CMake Error at .*/Modules/Internal/CPack/CPackExt\.cmake:[0-9]+ \(message\):
Could not find a suitable version in CPACK_EXT_REQUESTED_VERSIONS
CPack Error: Error while executing CPackExt\.cmake
CPack Error: Cannot initialize the generator Ext

@ -1,6 +0,0 @@
CMake Error at .*/Modules/Internal/CPack/CPackExt\.cmake:[0-9]+ \(message\):
Could not find a suitable version in CPACK_EXT_REQUESTED_VERSIONS
CPack Error: Error while executing CPackExt\.cmake
CPack Error: Cannot initialize the generator Ext

@ -1,6 +0,0 @@
CMake Error at .*/Modules/Internal/CPack/CPackExt\.cmake:[0-9]+ \(message\):
Could not find a suitable version in CPACK_EXT_REQUESTED_VERSIONS
CPack Error: Error while executing CPackExt\.cmake
CPack Error: Cannot initialize the generator Ext

@ -0,0 +1,3 @@
if(RunCMake_SUBTEST_SUFFIX MATCHES "^(none|good(_multi)?|invalid_good)")
check_ext_json("${src_dir}/tests/EXTERNAL/expected-json-1.0.txt" "${FOUND_FILE_1}")
endif()

@ -0,0 +1,6 @@
CMake Error at .*/Modules/Internal/CPack/CPackExternal\.cmake:[0-9]+ \(message\):
Could not find a suitable version in CPACK_EXTERNAL_REQUESTED_VERSIONS
CPack Error: Error while executing CPackExternal\.cmake
CPack Error: Cannot initialize the generator External

@ -0,0 +1,6 @@
CMake Error at .*/Modules/Internal/CPack/CPackExternal\.cmake:[0-9]+ \(message\):
Could not find a suitable version in CPACK_EXTERNAL_REQUESTED_VERSIONS
CPack Error: Error while executing CPackExternal\.cmake
CPack Error: Cannot initialize the generator External

@ -150,8 +150,8 @@
\}
\},
"packageDescriptionFile" : ".*/Templates/CPack\.GenericDescription\.txt",
"packageDescriptionSummary" : "EXT-(none|good(_multi)?|invalid_good)-subtest-(MONOLITHIC|COMPONENT)-type built using CMake",
"packageName" : "ext",
"packageDescriptionSummary" : "EXTERNAL-(none|good(_multi)?|invalid_good)-subtest-(MONOLITHIC|COMPONENT)-type built using CMake",
"packageName" : "external",
"packageVersion" : "0\.1\.1",
"projects" :[ ]
\[
@ -164,9 +164,9 @@
"f3",
"f4"
\],
"directory" : ".*/Tests/RunCMake/Ext/CPack/EXT-build-(none|good(_multi)?|invalid_good)-subtest",
"directory" : ".*/Tests/RunCMake/External/CPack/EXTERNAL-build-(none|good(_multi)?|invalid_good)-subtest",
"installationTypes" : \[\],
"projectName" : "EXT-(none|good(_multi)?|invalid_good)-subtest-(MONOLITHIC|COMPONENT)-type",
"projectName" : "EXTERNAL-(none|good(_multi)?|invalid_good)-subtest-(MONOLITHIC|COMPONENT)-type",
"subDirectory" : "/"
\}
\],

@ -0,0 +1,6 @@
CMake Error at .*/Modules/Internal/CPack/CPackExternal\.cmake:[0-9]+ \(message\):
Could not find a suitable version in CPACK_EXTERNAL_REQUESTED_VERSIONS
CPack Error: Error while executing CPackExternal\.cmake
CPack Error: Cannot initialize the generator External

@ -1,22 +1,22 @@
include(CPackComponent)
if(RunCMake_SUBTEST_SUFFIX STREQUAL "none")
unset(CPACK_EXT_REQUESTED_VERSIONS)
unset(CPACK_EXTERNAL_REQUESTED_VERSIONS)
elseif(RunCMake_SUBTEST_SUFFIX STREQUAL "good")
set(CPACK_EXT_REQUESTED_VERSIONS "1.0")
set(CPACK_EXTERNAL_REQUESTED_VERSIONS "1.0")
elseif(RunCMake_SUBTEST_SUFFIX STREQUAL "good_multi")
set(CPACK_EXT_REQUESTED_VERSIONS "1.0;2.0")
set(CPACK_EXTERNAL_REQUESTED_VERSIONS "1.0;2.0")
elseif(RunCMake_SUBTEST_SUFFIX STREQUAL "bad_major")
set(CPACK_EXT_REQUESTED_VERSIONS "2.0")
set(CPACK_EXTERNAL_REQUESTED_VERSIONS "2.0")
elseif(RunCMake_SUBTEST_SUFFIX STREQUAL "bad_minor")
set(CPACK_EXT_REQUESTED_VERSIONS "1.1")
set(CPACK_EXTERNAL_REQUESTED_VERSIONS "1.1")
elseif(RunCMake_SUBTEST_SUFFIX STREQUAL "invalid_good")
set(CPACK_EXT_REQUESTED_VERSIONS "1;1.0")
set(CPACK_EXTERNAL_REQUESTED_VERSIONS "1;1.0")
elseif(RunCMake_SUBTEST_SUFFIX STREQUAL "invalid_bad")
set(CPACK_EXT_REQUESTED_VERSIONS "1")
set(CPACK_EXTERNAL_REQUESTED_VERSIONS "1")
elseif(RunCMake_SUBTEST_SUFFIX STREQUAL "stage_and_package")
set(CPACK_EXT_ENABLE_STAGING 1)
set(CPACK_EXT_PACKAGE_SCRIPT "${CMAKE_CURRENT_LIST_DIR}/create_package.cmake")
set(CPACK_EXTERNAL_ENABLE_STAGING 1)
set(CPACK_EXTERNAL_PACKAGE_SCRIPT "${CMAKE_CURRENT_LIST_DIR}/create_package.cmake")
endif()
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/f1.txt" test1)

@ -1,5 +1,13 @@
include(RunCMake)
function(run_TargetWithCommand)
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/TargetWithCommand-build)
run_cmake(TargetWithCommand)
set(RunCMake_TEST_NO_CLEAN 1)
run_cmake_command(TargetWithCommand-build ${CMAKE_COMMAND} --build . --config Debug)
endfunction()
run_TargetWithCommand()
# Use a single build tree for a few tests without cleaning.
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/CommandWithOutput-build)
set(RunCMake_TEST_NO_CLEAN 1)

@ -0,0 +1,4 @@
enable_language(CSharp)
add_custom_target(drive ALL SOURCES dummy.cs
COMMAND ${CMAKE_COMMAND} -E echo "Custom target with CSharp source")

@ -161,3 +161,15 @@ endfunction()
if(TEST_AFFINITY)
run_TestAffinity()
endif()
function(run_TestStdin)
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/TestStdin)
set(RunCMake_TEST_NO_CLEAN 1)
file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
file(WRITE "${RunCMake_TEST_BINARY_DIR}/CTestTestfile.cmake" "
add_test(TestStdin \"${TEST_PRINT_STDIN}\")
")
run_cmake_command(TestStdin ${CMAKE_CTEST_COMMAND} -V)
endfunction()
run_TestStdin()

@ -1,3 +1,4 @@
include(RunCMake)
run_cmake(CMakePackage)
run_cmake(NoCXX)

@ -0,0 +1,5 @@
cmake_minimum_required(VERSION 3.12)
project(Test LANGUAGES C)
configure_file(PreventConfigureFileDupBuildRule.cmake PreventTargetAliasesDupBuildRule.cmake @ONLY)
add_subdirectory(SubDirConfigureFileDup)

@ -286,3 +286,10 @@ function (run_PreventTargetAliasesDupBuildRule)
run_ninja("${RunCMake_TEST_BINARY_DIR}" -w dupbuild=err)
endfunction ()
run_PreventTargetAliasesDupBuildRule()
function (run_PreventConfigureFileDupBuildRule)
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/PreventConfigureFileDupBuildRule-build)
run_cmake(PreventConfigureFileDupBuildRule)
run_ninja("${RunCMake_TEST_BINARY_DIR}" -w dupbuild=err)
endfunction()
run_PreventConfigureFileDupBuildRule()

@ -0,0 +1 @@
configure_file(../PreventConfigureFileDupBuildRule.cmake PreventTargetAliasesDupBuildRule.cmake @ONLY)

@ -65,6 +65,13 @@ function(run_cmake test)
else()
set(maybe_timeout "")
endif()
if(RunCMake-stdin-file AND EXISTS ${top_src}/${RunCMake-stdin-file})
set(maybe_input_file INPUT_FILE ${top_src}/${RunCMake-stdin-file})
elseif(EXISTS ${top_src}/${test}-stdin.txt)
set(maybe_input_file INPUT_FILE ${top_src}/${test}-stdin.txt)
else()
set(maybe_input_file "")
endif()
if(RunCMake_TEST_COMMAND)
execute_process(
COMMAND ${RunCMake_TEST_COMMAND}
@ -74,6 +81,7 @@ function(run_cmake test)
RESULT_VARIABLE actual_result
ENCODING UTF8
${maybe_timeout}
${maybe_input_file}
)
else()
if(RunCMake_GENERATOR_INSTANCE)
@ -96,6 +104,7 @@ function(run_cmake test)
RESULT_VARIABLE actual_result
ENCODING UTF8
${maybe_timeout}
${maybe_input_file}
)
endif()
set(msg "")

@ -0,0 +1,3 @@
include(RunCMake)
run_cmake_command(set_directory_properties ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/set_directory_properties.cmake)

@ -0,0 +1 @@
set_directory_properties(PROPERTIES SOME_PROPERTY FALSE)

@ -1,7 +1,7 @@
CMake Error at DirInput.cmake:[0-9]+ \(configure_file\):
configure_file input location
.*/Tests/RunCMake/configure_file/.
.*/Tests/RunCMake/configure_file
is a directory but a file was expected.
Call Stack \(most recent call first\):

@ -0,0 +1,18 @@
#include <stdio.h>
int main()
{
char buf[1024];
size_t nIn = sizeof(buf);
while (nIn == sizeof(buf)) {
nIn = fread(buf, 1, sizeof(buf), stdin);
if (nIn > 0) {
size_t nOut;
nOut = fwrite(buf, 1, nIn, stdout);
if (nOut != nIn) {
return 1;
}
}
}
return 0;
}

@ -51,12 +51,12 @@ function(_Boost_FIND_COMPONENT_DEPENDENCIES component includedir _ret_libs)
# Special-case since it is part of mpi; look only in boost/mpi/python*
if(component STREQUAL "mpi_python")
set(_boost_DEPS "python")
set(_boost_DEPS "python\${component_python_version}")
set(library_component TRUE)
set(_boost_unprocessed_headers ${_boost_mpi_python_headers})
# Special-case since it is part of python; look only in boost/python/numpy*
elseif(component STREQUAL "numpy")
set(_boost_DEPS "python")
set(_boost_DEPS "python\${component_python_version}")
set(library_component TRUE)
set(_boost_unprocessed_headers ${_boost_python_numpy_headers})
# Special-case since it is a serialization variant; look in boost/serialization

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save