Commit Graph

2006 Commits

Author SHA1 Message Date
Brad King
958191a95c Merge topic 'vs-toolset-version'
5f13168419 VS: Add option to select the version of the toolset used by VS 2017

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Francisco Facioni <fran6co@gmail.com>
Merge-request: !2093
2018-05-30 10:19:21 -04:00
Brad King
83630d4918 cmSystemTools: Revert GetRealPath implementation on Windows
The use of `uv_fs_realpath` introduced by commit v3.11.0-rc1~445^2~1
(cmSystemTools: Implement GetRealPath on Windows, 2017-10-02) causes
`subst` drives to be expanded on Windows, breaking existing use cases.
Revert its use until an alternative implementation can be chosen.

Preserve the behavior introduced by commit v3.11.0-rc1~445^2
(cmTimestamp: For symlinks switch to timestamp of resolved path,
2017-10-02) by retaining use of `uv_fs_realpath` in a function of
a different name.

Fixes: #18033
Issue: #17206
2018-05-29 14:00:33 -04:00
Basil Fierz
5f13168419 VS: Add option to select the version of the toolset used by VS 2017
Add new `version=` parameter in the toolset setting to select the
version.  Add variable `CMAKE_VS_PLATFORM_TOOLSET_VERSION` to hold the
version, if one is set (blank indicates default).

Fixes: #17549
2018-05-29 10:12:59 -04:00
Brad King
f248f8ad78 Merge topic 'parallel_build_option'
1ab3881ec9 cmake: Add options for parallel builds to --build mode

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Henry Schreiner <henryschreineriii@gmail.com>
Merge-request: !1962
2018-05-29 10:05:09 -04:00
Florian Maushart
1ab3881ec9 cmake: Add options for parallel builds to --build mode
While we already support `cmake --build . -- -j`, the options after `--`
are specific to the native build tool.  Add new options `--parallel
[<N>]` and `-j [<N>]` to abstract this and map to the proper option
for the native build tool.
2018-05-25 09:42:20 -04:00
Mateusz Loskot
357db10bd1 FindODBC: Add module to search for ODBC library
Add tests for FindODBC module.
2018-05-22 21:29:22 +02:00
Brad King
7b42ffce09 Merge topic 'PDBDirectoryGenExpression'
79ca546ed2 Add generator expression support to PDB_OUTPUT_DIRECTORY target property

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2083
2018-05-21 11:02:42 -04:00
Marian Klymov
79ca546ed2 Add generator expression support to PDB_OUTPUT_DIRECTORY target property
Fixes: #16365
2018-05-21 11:00:12 -04:00
Brad King
10a6c5a842 Merge topic 'update-kwsys'
3333e2791b Help: Add release note about 'copy_directory' behavior change
24367563d7 Merge branch 'upstream-KWSys' into update-kwsys
1e0a2e9377 KWSys 2018-05-15 (5f757898)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2080
2018-05-17 09:05:09 -04:00
Brad King
cd5d6dfada Merge topic 'subdirectory-linking'
c9349cc1b9 target_link_libraries: Allow use with targets in other directories

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2040
2018-05-16 10:03:39 -04:00
Brad King
c8c07c24dd Merge topic 'dotnet_target_fw_init'
71a033616a added CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2032
2018-05-16 10:02:48 -04:00
Brad King
3333e2791b Help: Add release note about 'copy_directory' behavior change
Issue: #16001
2018-05-16 09:54:27 -04:00
Patrick Stotko
c9349cc1b9 target_link_libraries: Allow use with targets in other directories
Previously the command did not allow naming targets on the LHS that
were not created in the calling directory.  Lift this restriction to
enable more flexible use by projects.

Fixes: #17943
2018-05-15 10:22:35 -04:00
Brad King
92ce7cc230 Merge topic 'fix-automoc-warnings'
9672d81ca3 Qt4Macros: Don't AUTOMOC or AUTOUIC qt4-generated files
800b2fcf80 Qt4Macros: Use get_property/set_property

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2066
2018-05-15 10:15:14 -04:00
Matthew Woehlke
9672d81ca3 Qt4Macros: Don't AUTOMOC or AUTOUIC qt4-generated files
Suppress AUTOMOC and AUTOUIC on files generated by Qt4 wrapping macros;
particularly, those generated by `qt4_wrap_cpp`, `qt4_wrap_ui`, and
`qt4_add_resources`.  None of these should need AUTOMOC or AUTOUIC
treatment, and CMP0071 makes it important to mark this explicitly.
2018-05-15 09:50:22 -04:00
Michael Stürmer
71a033616a added CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION variable
Fixes: #17955
2018-05-15 09:00:31 +02:00
Brad King
99e658258e Merge topic 'FindPkgConfig-LINK_LIBRARIES'
92ac721a44 FindPkgConfig: export the list of found libraries also as variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2068
2018-05-14 09:46:31 -04:00
Brad King
a04ca510c1 Merge topic 'cpack-nuget'
f739752ad6 CPack: Add NuGet support
dd43e6fe89 Tests: Format `RunCPackVerifyResult.cmake` more consistently
43582cda57 Tests: Fix comment for finding dpkg tool

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1972
2018-05-14 09:32:04 -04:00
Rolf Eike Beer
92ac721a44 FindPkgConfig: export the list of found libraries also as variable 2018-05-11 19:35:53 +02:00
Alex Turbov
f739752ad6 CPack: Add NuGet support
Create a CPack generator that uses `nuget.exe` to create packages:

    https://docs.microsoft.com/en-us/nuget/what-is-nuget

NuGet packages could be easily produced from a `*.nuspec` file (running
`nuget pack` in the directory w/ the spec file).  The spec filename does
not affect the result `*.nupkg` name -- only `id` and `version` elements
of the spec are used (by NuGet).

Some implementation details:

* Minimize C++ code -- use CMake script do to the job. It just let the
  base class (`cmCPackGenerator`) to preinstall everything to a temp
  directory, render the spec file and run `nuget pack` in it, harvesting
  `*.nupkg` files...;

* Ignore package name (and use default paths) prepared by the base class
  (only `CPACK_TEMPORARY_DIRECTORY` is important) -- final package
  filename is a responsibility of NuGet, so after generation just scan the
  temp directory for the result `*.nupkg` file(s) and update
  `packageFileNames` data-member of the generator;

* The generator supports _all-in-one_ (default), _one-group-per-package_
  and _one-component-per-package_ modes.
2018-05-11 09:28:44 -04:00
Brad King
1e521a1a91 Merge topic 'restore-imported-lib-alias-diagnostic'
e567d7eb63 add_library: Restore error on alias of non-global imported target

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2058
2018-05-11 09:18:08 -04:00
Brad King
e567d7eb63 add_library: Restore error on alias of non-global imported target
In commit v3.11.0-rc1~433^2~1 (Add support for IMPORTED GLOBAL targets
to be aliased, 2017-09-14) we accidentally dropped the error on calling
`add_library` to alias an imported target that is not globally visible.
The `add_executable` command's equivalent check was properly updated.
Restore the check in `add_library` with the same update.  Also fix the
test case accordingly.

Fixes: #17982
2018-05-10 09:57:31 -04:00
Kyle Edwards
9deaf07597 Help: add release notes for ctest_start() changes 2018-05-09 08:23:01 -04:00
Craig Scott
7de29da7c4 Merge topic 'feature/cpack-default-package-version'
af1c48871c CPack: Use project version as default for `CPACK_PACKAGE_VERSION`

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Harry Mallon <hjmallon@gmail.com>
Merge-request: !2020
2018-05-03 17:18:38 -04:00
Brad King
7c2866ec60 Merge topic 'namelink-component'
7e8046e20b Help: add release notes for NAMELINK_COMPONENT
c02eeb0853 Help: clarify "undefined behavior" in install(EXPORT) command
edcb545a24 install: add test for new NAMELINK_COMPONENT parameter
0212d7c762 install: add NAMELINK_COMPONENT argument
cbb609072f Help: clean up install(TARGETS) documentation
b81280ba1f Help: add list of command signatures to top of INSTALL page

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Alex Turbov <i.zaufi@gmail.com>
Merge-request: !1982
2018-05-03 08:11:20 -04:00
Kyle Edwards
7e8046e20b Help: add release notes for NAMELINK_COMPONENT 2018-05-03 08:08:42 -04:00
Alex Turbov
af1c48871c CPack: Use project version as default for CPACK_PACKAGE_VERSION
* Introduce `CMAKE_PROJECT_VERSION` and the corresponsing components:
  `CMAKE_PROJECT_VERSION_MAJOR`, `CMAKE_PROJECT_VERSION_MINOR`,
  `CMAKE_PROJECT_VERSION_PATCH` and `CMAKE_PROJECT_VERSION_TWEAK`.

* `CPack` module use `CMAKE_PROJECT_VERSION_MAJOR`,
  `CMAKE_PROJECT_VERSION_MINOR` and `CMAKE_PROJECT_VERSION_PATCH`
  to initialize corresponsing CPack variables.
2018-05-03 08:26:03 +10:00
Jeremiah van Oosten
83ed65cdde Add generator expressions for VS_SHADER_ source file properties. 2018-04-26 23:00:10 +02:00
Brad King
e5d15848ca Merge topic 'vs-hlsl-object-name'
8d1ccbc693 VS: Add VS_SHADER_OBJECT_FILE_NAME source file property

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1997
2018-04-25 08:53:54 -04:00
Jeremiah van Oosten
8d1ccbc693 VS: Add VS_SHADER_OBJECT_FILE_NAME source file property 2018-04-24 11:29:16 -04:00
Brad King
195400cab7 Merge topic 'Genex-TARGET_GENEX_PROPERTY'
4d15046edd Genex: Add $<TARGET_GENEX_EVAL:...> and $<GENEX_EVAL:...>

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1984
2018-04-24 11:06:19 -04:00
Brad King
b928be62fa Merge topic 'reorder-sys-includes'
76ad2ecb50 Order SYSTEM include directories after non-system directories

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1968
2018-04-24 11:05:12 -04:00
Ephi Sinowitz
76ad2ecb50 Order SYSTEM include directories after non-system directories
An effect of the `-isystem` flag is to search the directory after those
specified via `-I` flags.  Make behavior more consistent on compilers
that do not have any `-isystem` flag by explicitly moving system include
directories to the end.
2018-04-23 11:47:52 -04:00
Brad King
f9b3b5a773 Merge topic 'fortran-submodule-depends'
b1f95e5b14 Fortran: Extend submodule test with great-grandchild
402735314e Fortran: Add support for submodule dependencies
62538b2c4c Fortran: Refactor to treat .mod extension as part of module name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Izaak Beekman <contact@izaakbeekman.com>
Merge-request: !1989
2018-04-23 10:28:50 -04:00
Brad King
3d6bedb903 Merge topic 'cmake-install-doc'
a4f71b4ba8 Help: Document existence of cmake_install.cmake
fcf64866da Help: move DESTDIR into a separate page

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1979
2018-04-23 10:17:42 -04:00
Brad King
ba234392b1 Merge topic 'add_compile_definitions'
cb83314e65 add_compile_definitions: add new command

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1988
2018-04-23 10:16:24 -04:00
Marc Chevrier
4d15046edd Genex: Add $<TARGET_GENEX_EVAL:...> and $<GENEX_EVAL:...>
Fixes: #17884
2018-04-23 11:13:52 +02:00
Brad King
402735314e Fortran: Add support for submodule dependencies
Since commit v3.7.0-rc1~73^2~1 (Fortran: Add support for submodule
syntax in dependency scanning, 2016-09-05) we support parsing Fortran
sources that use submodule syntax, but it left addition of `.smod`
dependencies to future work.  Add it now.

The syntax

    submodule (module_name) submodule_name

means the current source requires `module_name.mod` and provides
`module_name@submodule_name.smod`.  The syntax

    submodule (module_name:submodule_name) nested_submodule_name

means the current source requires `module_name@submodule_name.smod`
provides `module_name@nested_submodule_name.smod`.

Fixes: #17017
2018-04-20 10:57:31 -04:00
Marc Chevrier
cb83314e65 add_compile_definitions: add new command
This command manages preprocessor definitions at directory level and
supports generator expressions.

Fixes: #15374
2018-04-20 09:28:13 -04:00
Kyle Edwards
a4f71b4ba8 Help: Document existence of cmake_install.cmake
This file, which is currently undocumented, is useful for external
packaging programs that wish to install only a single component at a
time. This change adds documentation for the file.
2018-04-20 08:39:52 -04:00
Brad King
fe0082875a Merge topic 'vs-sdk-dirs'
6ec3e880e7 VS: Add variables to set SDK directories in vcxproj files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1965
2018-04-20 07:52:02 -04:00
Bastien Schatt
6ec3e880e7 VS: Add variables to set SDK directories in vcxproj files
Create `CMAKE_VS_SDK_*_DIRECTORIES` variables to tell the VS generator
how to populate fields in `.vcxproj` files that specify SDK directories.

Fixes: #17908
2018-04-19 09:39:34 -04:00
Brad King
c14497191b Merge topic 'FindJPEG-imported-targets'
87f2cf3b1c FindJPEG: Add imported target support and full test
13952a3b7f FindJPEG: Add multi config support and associated docs
1f6649b7d1 FindJPEG: Add version detection and associated test update and docs
8d07408a62 FindJPEG: Cleanup documentation formatting
e70da3f0f3 FindJPEG: Clean up whitepaces and lowercase function names

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1974
2018-04-19 08:26:34 -04:00
Mateusz Loskot
87f2cf3b1c FindJPEG: Add imported target support and full test 2018-04-18 08:59:06 -04:00
Brad King
a61ae3fb80 CheckIncludeFiles: Honor CMAKE_REQUIRED_LIBRARIES
Other check modules honor this variable, so include file checks should
too.  Add policy `CMP0075` to enable the behavior in a compatible way.

This change was originally made by commit v3.11.0-rc1~108^2
(CheckIncludeFiles: Honor CMAKE_REQUIRED_LIBRARIES, 2017-12-24) but it
was reverted by commit v3.11.1~9^2 (Revert "CheckIncludeFiles: Honor
CMAKE_REQUIRED_LIBRARIES", 2018-04-04) because the behavior change could
affect checks in existing projects in an incompatible way.

Fixes: #9514
2018-04-18 08:09:56 -04:00
Marc Chevrier
dca2347980 list: Add TRANSFORM sub-command
Issue: #17823
2018-04-16 17:11:53 +02:00
Brad King
498be66fd7 Merge topic 'add_support_for_clr_targets'
312527de47 document COMMON_LANGUAGE_RUNTIME target properties
4b7a82b4ed cmVisualStudio10TargetGenerator: set /clr compiler flag from property
20e31fb4c9 cmExportFileGenerator: add target property for managed targets
411a22706a cmGeneratorTarget: add handling of managed assemblies to HasImportLibrary()
fb433ff283 cmGeneratorTarget: Make import library checks config-aware
4c1f33961f cmGeneratorTarget: add GetManagedType() and CheckManagedType() methods
6c517a9f8d cmGeneratorTarget: add HasLanguage() as wrapper for GetLanguages()

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1916
2018-04-12 11:36:28 -04:00
Michael Stürmer
312527de47 document COMMON_LANGUAGE_RUNTIME target properties 2018-04-09 06:50:39 +02:00
Brad King
d308e9442e Merge topic 'glob_configure_depends'
6c4f8b4596 Adjust help documentation for file(GLOB), add topic notes
20612978c8 Add tests for `file(GLOB)` CONFIGURE_DEPENDS flag
3f4b81f540 Add glob verify support to XCode, VS, Ninja, and Makefile generators
ca0befc2e1 Add `CONFIGURE_DEPENDS` flag support to cmFileCommand::HandleGlobCommand
599c93e22d Add cmGlobVerificationManager class, integrate with cmake and cmState

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1767
2018-04-06 10:25:08 -04:00
Brad King
308d21b225 Merge topic 'msvc-toolset-version-variable'
45bf6f6246 Modules: Use MSVC_TOOLSET_VERSION variable to simplify logic
304f493e57 MSVC: Add MSVC_TOOLSET_VERSION variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1882
2018-04-05 13:26:49 -04:00