CMake merge requestshttps://gitlab.kitware.com/cmake/cmake/-/merge_requests2017-07-17T10:27:28-04:00https://gitlab.kitware.com/cmake/cmake/-/merge_requests/1060Help: Add a 3.9 release note about the VS GenerateDebugInformation update2017-07-17T10:27:28-04:00Brad KingHelp: Add a 3.9 release note about the VS GenerateDebugInformation updateAdd a release note corresponding to the environmental regression fixed by !1002.Add a release note corresponding to the environmental regression fixed by !1002.3.9.0Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1058TestDriver: Fix -Wconversion warning2017-07-17T10:27:05-04:00Brad KingTestDriver: Fix -Wconversion warningSince !431 we convert an expression that uses `sizeof()` to an `int` as a compile-time constant. Some GCC versions warn about this with `-Wconversion`. Add a cast to avoid the warning.Since !431 we convert an expression that uses `sizeof()` to an `int` as a compile-time constant. Some GCC versions warn about this with `-Wconversion`. Add a cast to avoid the warning.3.9.0Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1055CUDA: CMAKE_EXPORT_COMPILE_COMMANDS now works with CUDA and Ninja2017-07-14T08:23:59-04:00Robert MaynardCUDA: CMAKE_EXPORT_COMPILE_COMMANDS now works with CUDA and Ninja3.9.0Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1054Teach Xcode generator to add "outputPaths" to project files2018-06-06T07:36:03-04:00Harry MallonTeach Xcode generator to add "outputPaths" to project files* This makes sure that Xcode 9 builds generated files
without failing using "New Build System"
I have only tested this with our CMake project. The output files for custom commands should appear in Xcode under "Build Phases". Xcode 9 b...* This makes sure that Xcode 9 builds generated files
without failing using "New Build System"
I have only tested this with our CMake project. The output files for custom commands should appear in Xcode under "Build Phases". Xcode 9 beta does not work with the "New Build System" without this change for our CMake project.3.9.0Gregor JasnyGregor Jasnyhttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1053Diagnose object library self-reference2017-07-18T11:12:06-04:00Ben BoeckelDiagnose object library self-referenceThe code
add_library(A OBJECT a.c)
target_sources(A PRIVATE $<TARGET_OBJECTS:A>)
used to crash CMake via infinite recursion while evaluating the
generator expression. Then the change in !677 avoided the infinite recursio...The code
add_library(A OBJECT a.c)
target_sources(A PRIVATE $<TARGET_OBJECTS:A>)
used to crash CMake via infinite recursion while evaluating the
generator expression. Then the change in !677 avoided the infinite recursion because GetKindedSources now
creates a map entry and initializes it once. If it is called again on
the same target during that initialization, the partially computed
results are returned. This is still wrong but does not crash.
Detect and diagnose this case instead.
Fixes: #16578
3.9.0Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1052Android: Always add standard include directories last2017-07-26T17:41:37-04:00Brad KingAndroid: Always add standard include directories lastThe logic added in commit c13408279f035c8261b530e26040cf4b8f01fdab to use
`CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES` incorrectly filters them by
`CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES`. Rather than recognizing
this, !418 worked ...The logic added in commit c13408279f035c8261b530e26040cf4b8f01fdab to use
`CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES` incorrectly filters them by
`CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES`. Rather than recognizing
this, !418 worked around the problem by incorrectly
removing `/usr/include` from `CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES`
so it worked in `CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES`.
By not filtering out `/usr/include` from user-specified include
directories, we allow the code
include_directories(${CMAKE_SYSROOT}/usr/include)
to place the include directory too early on the command line.
Fix support for standard include directories to not be filtered by
implicit include directories, and do not remove `/usr/include` from the
list of implicit include directories for Android builds. Add a test
case to verify that an explicit `/usr/include` is ignored in favor
of the standard directory at the end.
Fixes: #170593.9.0Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1048Android: Link to android_support with c++_shared2017-07-13T11:07:45-04:00Brad KingAndroid: Link to android_support with c++_sharedThe NDK has done this in `build/core/definitions.mk` since r13 (r12 and below do so only for `c++_static`).The NDK has done this in `build/core/definitions.mk` since r13 (r12 and below do so only for `c++_static`).3.9.0Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1044find_*: Honor PATH_SUFFIXES in PackageName_ROOT paths2017-07-12T08:59:10-04:00Brad Kingfind_*: Honor PATH_SUFFIXES in PackageName_ROOT pathsThis was accidentally forgotten in !796.
Fixes: #17052This was accidentally forgotten in !796.
Fixes: #170523.9.0Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1042VS: Add SolutionGuid to generated .sln files2017-07-12T08:59:28-04:00Brad KingVS: Add SolutionGuid to generated .sln filesVisual Studio 2017 Update 3 adds a SolutionGuid to its `.sln` files.
Fixes: #17041Visual Studio 2017 Update 3 adds a SolutionGuid to its `.sln` files.
Fixes: #170413.9.0Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1041bindexplib: Revert support for constants symbols2017-07-12T08:58:41-04:00Brad Kingbindexplib: Revert support for constants symbolsRevert the main logic change of !763 and its test case. Unfortunately some constants may be provided by multiple object files with different `@...` suffixes, leading to ambiguous references. Revert support pending further investigation...Revert the main logic change of !763 and its test case. Unfortunately some constants may be provided by multiple object files with different `@...` suffixes, leading to ambiguous references. Revert support pending further investigation.
Fixes: #170453.9.0Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1039Autogen: Skip included files on demand2017-07-11T07:37:33-04:00Sebastian HoltermannAutogen: Skip included files on demandWhen determining the header name from an `#include "moc_FOO.cpp"` or an `#include "FOO.moc"` statement,
check if the header name is on the skip list an ignore it on demand.
Also some warning and error message typo fixes.When determining the header name from an `#include "moc_FOO.cpp"` or an `#include "FOO.moc"` statement,
check if the header name is on the skip list an ignore it on demand.
Also some warning and error message typo fixes.3.9.0Sebastian HoltermannSebastian Holtermannhttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1033Autogen: Skip generated files for compatibility with CMake 3.82017-07-10T10:23:29-04:00Brad KingAutogen: Skip generated files for compatibility with CMake 3.8The change in !543 changes behavior of existing projects that may not expect `AUTOGEN` on generated files and do not yet set `SKIP_AUTOGEN` on them. Disable the behavior change for now to fix the regression for CMake 3.9. We can restor...The change in !543 changes behavior of existing projects that may not expect `AUTOGEN` on generated files and do not yet set `SKIP_AUTOGEN` on them. Disable the behavior change for now to fix the regression for CMake 3.9. We can restore it later with a policy.
In order to keep the implementation and tests working, add an undocumented property we can use in the tests to enable the behavior before the policy is introduced.
Fixes: #17031
Issue: #161863.9.0Sebastian HoltermannSebastian Holtermannhttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1032find_package: Restore longer message when config files were considered2017-07-10T10:21:25-04:00Brad Kingfind_package: Restore longer message when config files were consideredSince !851 we print only the one line
- Could NOT find Foo (missing: Foo_DIR)
when package Foo cannot be found in CONFIG mode and it is not REQUIRED.
However, in the case that package configuration files were found but not
used, th...Since !851 we print only the one line
- Could NOT find Foo (missing: Foo_DIR)
when package Foo cannot be found in CONFIG mode and it is not REQUIRED.
However, in the case that package configuration files were found but not
used, this one line message leaves out important information. This can
happen when a package configuration file sets `Foo_FOUND` to `FALSE` or
when its package version file does not match the requested version.
Restore the longer message in these cases. Otherwise a seemingly valid
explicit `Foo_DIR` setting appears to be silently ignored even if it was
considered.
Fixes: #170293.9.0Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1030VS: Choose VS 2017 instance via environment variable2018-05-14T10:54:27-04:00Brad KingVS: Choose VS 2017 instance via environment variableIn the `Visual Studio 15 2017` generator, if the `VS150COMNTOOLS`
environment variable points at a specific VS 2017 instance reported by
the Visual Studio Installer tool, use that as the preferred instance.
Fixes: #16846In the `Visual Studio 15 2017` generator, if the `VS150COMNTOOLS`
environment variable points at a specific VS 2017 instance reported by
the Visual Studio Installer tool, use that as the preferred instance.
Fixes: #168463.9.0Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1022Autogen: Continue search for FOO_p.h when FOO.h was found2017-07-06T10:13:27-04:00Sebastian HoltermannAutogen: Continue search for FOO_p.h when FOO.h was foundWhen searching for headers for a source file `FOO.cpp`, `AUTOMOC` stops when `FOO.h` was found.
This differs from previous version where the search continued to see if `FOO_p.h` exists as well.
This patch restores the old behavior.When searching for headers for a source file `FOO.cpp`, `AUTOMOC` stops when `FOO.h` was found.
This differs from previous version where the search continued to see if `FOO_p.h` exists as well.
This patch restores the old behavior.3.9.0Sebastian HoltermannSebastian Holtermannhttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1019FindDoxygen: Create DOXYGEN_OUTPUT_DIRECTORY if it doesn't exist2019-05-09T08:22:38-04:00Robert DaileyFindDoxygen: Create DOXYGEN_OUTPUT_DIRECTORY if it doesn't existIf the doxygen output directory does not exist, create it prior to
running the doxygen commands.
Topic-rename: FindDoxygen-create-output-dir
If the doxygen output directory does not exist, create it prior to
running the doxygen commands.
Topic-rename: FindDoxygen-create-output-dir
3.9.0Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1018VS: Fix support for '/guard:cf' linker flag2017-07-05T10:11:23-04:00Olender SebastianVS: Fix support for '/guard:cf' linker flag/guard:cf is the only viable method in linker settings
The <LinkControlFlowGuard> entry is not documented in msdn.
https://msdn.microsoft.com/en-us/library/windows/desktop/mt637065(v=vs.85).aspx
Topic-rename: vs-link-guard-cf
/guard:cf is the only viable method in linker settings
The <LinkControlFlowGuard> entry is not documented in msdn.
https://msdn.microsoft.com/en-us/library/windows/desktop/mt637065(v=vs.85).aspx
Topic-rename: vs-link-guard-cf
3.9.0Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1017Autogen: Check .moc header name against SKIP list2017-07-10T09:29:33-04:00Sebastian HoltermannAutogen: Check .moc header name against SKIP listWhen encountering an #include "FOO.moc" statement where
FOO.hpp was chosen over FOO.cpp as the moc source, the
FOO.hpp name was not checked against the moc SKIP list.
Topic-rename: autogen-header-skip
When encountering an #include "FOO.moc" statement where
FOO.hpp was chosen over FOO.cpp as the moc source, the
FOO.hpp name was not checked against the moc SKIP list.
Topic-rename: autogen-header-skip
3.9.0Sebastian HoltermannSebastian Holtermannhttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1016Xcode: Use correct Object Library paths for cross-SDK builds2017-06-30T10:32:06-04:00Gregor JasnyXcode: Use correct Object Library paths for cross-SDK buildsWhen calculating Object Library paths take a look at the
XCODE_EMIT_EFFECTIVE_PLATFORM_NAME property to enable builds
with different SDKs. Otherwise a hardcoded architecture could
be chosen.
Issue: #16040When calculating Object Library paths take a look at the
XCODE_EMIT_EFFECTIVE_PLATFORM_NAME property to enable builds
with different SDKs. Otherwise a hardcoded architecture could
be chosen.
Issue: #160403.9.0Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1014FindDoxygen: Fix support for project() and doxygen_add_doc() in a subdirectory2019-01-23T07:46:05-05:00Robert DaileyFindDoxygen: Fix support for project() and doxygen_add_doc() in a subdirectoryInternally, `FindDoxygen.cmake` uses `${PROJECT_BINARY_DIR}` to look for the
top-level `CMakeDoxyfile.in` file. This breaks when `doxygen_add_doc()` is
invoked in a subdirectory that also calls `project()` beforehand. This
modifies th...Internally, `FindDoxygen.cmake` uses `${PROJECT_BINARY_DIR}` to look for the
top-level `CMakeDoxyfile.in` file. This breaks when `doxygen_add_doc()` is
invoked in a subdirectory that also calls `project()` beforehand. This
modifies the `PROJECT_BINARY_DIR` variable to point to the respective
subdirectory in the binary dir tree, which will not have the Doxygen files.
Instead, it should use `${CMAKE_BINARY_DIR}`.
Fixes: #17022
Topic-rename: FindDoxygen-project-in-subdir
3.9.0Brad KingBrad King