summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* continue: Add a new CMake language command for loop continuation (#14013)Gregor Jasny2014-12-017-0/+116
| | | | | Inspired-by: Doug Barbieri Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
* Merge topic 'target-sources-error-conditions'Brad King2014-12-013-3/+44
|\ | | | | | | | | | | | | 8a75c7ef Help: Document the export limitation of INTERFACE_SOURCES. e1348056 Export: Disallow export of targets with INTERFACE_SOURCES bb5905bb cmTarget: Don't allow relative paths in INTERFACE_SOURCES
| * Export: Disallow export of targets with INTERFACE_SOURCESStephen Kelly2014-11-292-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This can be allowed in the next release, but it needs to have some features present and tested such as * Ensuring that relative paths do not appear in the generated property. * Ensuring that paths to the source or build directories do not appear. * Generating a check in the file for CMake 3.1 or later so that the resulting property will be consumed. * Ensuring that any referenced targets are part of an export set and generating a check for them. * INSTALL_INTERFACE and BUILD_INTERFACE content. All of these checks are already done for INTERFACE_INCLUDE_DIRECTORIES, but it is too late to add them for INTERFACE_SOURCES for CMake 3.1. As the checks introduce some new error conditions, it is better to disallow exporting fully for this case and introduce proper error conditions later instead of policies.
| * cmTarget: Don't allow relative paths in INTERFACE_SOURCESStephen Kelly2014-11-291-3/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Follow the pattern of checks that are made for INTERFACE_INCLUDE_DIRECTORIES. Existence is already checked by cmSourceFile::GetFullPath. Add a check to disallow relative paths in source directories. Otherwise code such as target_sources(lib1 INTERFACE foo.cpp) would fail if consumed by a target in a different directory. Unlike the INTERFACE_INCLUDE_DIRECTORIES behavior, we don't care whether the entry comes from an IMPORTED target or not. In the include directories case, the directory for a non-imported target might not exist yet but might be created. In the sources case, a file which does not yet exist in the filesystem must be explicitly marked with the GENERATED property. Adjust existing tests and add a new test for the error.
* | Merge topic 'fix-transitive-OBJECT_SOURCES-context'Brad King2014-12-011-34/+40
|\ \ | | | | | | | | | | | | 672f1001 Genex: Fix evaluation context propagation for TARGET_OBJECTS.
| * | Genex: Fix evaluation context propagation for TARGET_OBJECTS.Stephen Kelly2014-11-261-34/+40
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extract a new method to encapsulate the requirements of evaluating dependent-expressions, namely, propagation of the EvaluateForBuildsystem setting, which is missing from the getLinkedTargetsContent implementation. Commit v3.1.0-rc1~688^2 (Genex: Only evaluate TARGET_OBJECTS to determine target sources., 2014-03-20) introduced an error case for use of TARGET_OBJECTS outside of the context of generating the buildsystem, as the path to object files may be dependent on buildsystem variables (See bug #15226). Commit v3.1.0-rc1~314^2 (Allow INTERFACE_SOURCES to specify $<TARGET_OBJECTS> (#14970), 2014-07-09) made it possible to propagate such content to dependent targets. While that commit propagated the EvaluateForBuildsystem setting for the case of a TARGET_PROPERTY expression, as generated for direct dependencies of a target in cmTargetInternals::AddInterfaceEntries, it did not add propagation for content from further transitive target dependencies, as determined by getLinkedTargetsContent.
* | Merge topic 'fix-source-case-matching'Brad King2014-12-011-1/+2
|\ \ | | | | | | | | | | | | 84d124e8 Fix lookup of source names after conversion to their actual case (#15259)
| * | Fix lookup of source names after conversion to their actual case (#15259)Brad King2014-11-261-1/+2
| |/ | | | | | | | | | | | | | | | | | | | | | | Since commit v3.1.0-rc1~688^2~15 (cmTarget: Add a method to obtain list of filenames for sources, 2014-03-17) we have code paths that lookup sources by strings containing their own full path after normalization to the actual case on disk. This fails in the case that a cmSourceFile has already been created with a different case in the filename. The comparison of the directory works because it is always normalized. Only the comparison of the file name fails. Fix this by using a case-insensitive comparison of source file names on platforms that do not have case-sensitive filesystems.
* | Merge topic 'revert-cached-regex-clear-for-master'Brad King2014-12-015-60/+43
|\ \ | | | | | | | | | | | | | | | 808c77e2 Merge branch 'revert-cached-regex-clear' into revert-cached-regex-clear-for-master 7d674b5f Revert "ClearMatches: Only clear matches which were actually set" (#15261)
| * \ Merge branch 'revert-cached-regex-clear' into ↵Brad King2014-11-265-60/+43
| |\ \ | | | | | | | | | | | | | | | | | | | | revert-cached-regex-clear-for-master Resolve conflict in Source/cmMakefile.h by integrating both changes.
| | * | Revert "ClearMatches: Only clear matches which were actually set" (#15261)Ben Boeckel2014-11-265-60/+43
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit v3.1.0-rc1~557^2~2 (ClearMatches: Only clear matches which were actually set, 2014-03-12). The optimization did not track the match count in the same scope as the variables, allowing possible inconsistency. Resolve conflicts in Source/cmIfCommand.cxx, Source/cmMakefile.cxx, and Source/cmMakefile.h by moving the changes to the new location of the code involved.
| | * Merge branch 'vs-check-phone-store-tools' into releaseBrad King2014-11-177-35/+242
| | |\
| | * \ Merge branch 'vs14-is-2015' into releaseBrad King2014-11-172-11/+31
| | |\ \
| | * \ \ Merge branch 'kwsys-SharedForward-vs14' into releaseBrad King2014-11-171-1/+1
| | |\ \ \
| | | * | | KWSys SharedForward: Hard-code the ldpath buffer size to below VS 14 limitBrad King2014-11-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Visual Studio 14 (2015) complains if a static character array is declared with more than 65535 elements. This limit should be large enough for SharedForward clients, so just hard-code that instead of trying to compute a limit.
| | * | | | Merge branch 'vs-nsight-tegra-version' into releaseBrad King2014-11-131-2/+2
| | |\ \ \ \
| | * \ \ \ \ Merge branch 'no-cmake-self-install-when-cross-compiling' into releaseBrad King2014-11-131-1/+2
| | |\ \ \ \ \
* | | | | | | | CMake Nightly Date StampKitware Robot2014-12-011-1/+1
| | | | | | | |
* | | | | | | | CMake Nightly Date StampKitware Robot2014-11-301-1/+1
| | | | | | | |
* | | | | | | | CMake Nightly Date StampKitware Robot2014-11-291-1/+1
| | | | | | | |
* | | | | | | | CMake Nightly Date StampKitware Robot2014-11-281-1/+1
| | | | | | | |
* | | | | | | | CMake Nightly Date StampKitware Robot2014-11-271-1/+1
|/ / / / / / /
* | | | | | | Merge topic 'break-command-strictness'Brad King2014-11-267-1/+145
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | d54617d0 break: Add policy CMP0055 to check calls strictly bae604d9 Track nested loop levels in CMake language with a stack of counters
| * | | | | | | break: Add policy CMP0055 to check calls strictlyGregor Jasny2014-11-253-1/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reject break() without loop scope or any arguments. Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
| * | | | | | | Track nested loop levels in CMake language with a stack of countersGregor Jasny2014-11-254-0/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It gets incremented while entering a loop block (e.g. foreach or while) and gets decremented when leaving the block. Because scope borders for example at function borders must be taken into account the counter is put into a stack. With every new scope an empty counter is pushed on the stack, when leaving the scope the original value is restored. This will allow easy querying if the break command is properly nested within a loop scope. Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
* | | | | | | | Merge topic 'ccmake-system-form'Brad King2014-11-261-3/+15
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6b045c3b ccmake: Add CMAKE_USE_SYSTEM_FORM option to use libform instead of cmForm
| * | | | | | | | ccmake: Add CMAKE_USE_SYSTEM_FORM option to use libform instead of cmFormÅdne Hovda2014-11-251-3/+15
| |/ / / / / / /
* | | | | | | | CMake Nightly Date StampKitware Robot2014-11-261-1/+1
|/ / / / / / /
* | | | | | | Merge topic 'remove-ancient-msvc-workarounds'Brad King2014-11-256-50/+4
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 12cb0b86 Help: Update developer manual with some C++ features now permitted. ba74465f cmGeneratorTarget: Remove MSVC7 workaround 41363c0c VisualStudio: Remove MSVC6 compatibility macro. 4efcfe52 cmSystemTools: Remove MSVC6 compatibility define. 5f4695cd cmStandardIncludes: Remove MSVC6 condition for cmArrayBegin macro. 7a064337 cmFindCommon: Remove MSVC6 workaround for nested struct private access. fdb73547 cmTarget: Remove std::min and std::max MSVC6 compatibility code.
| * | | | | | | cmGeneratorTarget: Remove MSVC7 workaroundStephen Kelly2014-11-201-20/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use partial specialization everywhere.
| * | | | | | | VisualStudio: Remove MSVC6 compatibility macro.Stephen Kelly2014-11-201-6/+0
| | | | | | | |
| * | | | | | | cmSystemTools: Remove MSVC6 compatibility define.Stephen Kelly2014-11-201-3/+1
| | | | | | | |
| * | | | | | | cmStandardIncludes: Remove MSVC6 condition for cmArrayBegin macro.Stephen Kelly2014-11-201-2/+1
| | | | | | | |
| * | | | | | | cmFindCommon: Remove MSVC6 workaround for nested struct private access.Stephen Kelly2014-11-201-7/+0
| | | | | | | |
| * | | | | | | cmTarget: Remove std::min and std::max MSVC6 compatibility code.Stephen Kelly2014-11-201-12/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CMake is no longer required to build with MSVC6.
* | | | | | | | Merge topic 'remove-c_str'Brad King2014-11-2526-59/+59
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5eb4d759 Remove some unneeded c_str calls.
| * | | | | | | | Remove some unneeded c_str calls.Stephen Kelly2014-11-2326-59/+59
| | | | | | | | |
* | | | | | | | | Merge topic 'fortran-linker-flags'Brad King2014-11-253-5/+61
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 17b0fe03 Fix incremental linking setting for Fortran + VS
| * | | | | | | | | Fix incremental linking setting for Fortran + VSZack Galbreath2014-11-213-5/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit fixes a bug where it was impossible to specify /INCREMENTAL to Fortran projects built with Visual Studio. The problem was due to the fact that .vfproj files expect the value of this flag to be "linkIncremental{No,Yes}, whereas .vcproj files expect this value to be 0, 1, or 2. The implementation of this fix adds a new data structure for Visual Studio linker flags specific to Fortran. This can easily be extended in the future if more such discrepencies between C/C++ and Fortran linking are discovered.
* | | | | | | | | | Merge topic 'cmTarget-null_ptr-everywhere'Brad King2014-11-251-19/+2
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 32a191ce cmTarget: Use null_ptr code path on all platforms
| * | | | | | | | | | cmTarget: Use null_ptr code path on all platformsBrad King2014-11-201-19/+2
| | |_|/ / / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reduces conversions asked of the compiler. Also drop 'static' from the declaration of the local null_ptr helper.
* | | | | | | | | | Merge topic 'file-GENERATE-rerun'Brad King2014-11-251-0/+2
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 26e98c34 file(GENERATE): Re-run cmake when appropriate.
| * | | | | | | | | | file(GENERATE): Re-run cmake when appropriate.Stephen Kelly2014-11-181-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Re-run if the input file changes or if the output file is removed. This only works with the Makefile generators currently. The limitation of the Ninja generator is tracked as issue #15256. The IDE generators will need larger refactoring as they currently rely on being able to determine the depends and output files at the start of generate-time, which is too early for the file(GENERATE) case.
* | | | | | | | | | | Merge topic 'clean-autogen'Brad King2014-11-251-4/+4
|\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3bd59b60 QtAutogen: Use cmHasLiteral{Prefix,Suffix} where possible. bf00f528 QtAutogen: Don't take a reference to temporary.
| * | | | | | | | | | | QtAutogen: Use cmHasLiteral{Prefix,Suffix} where possible.Stephen Kelly2014-11-181-3/+3
| | | | | | | | | | | |
| * | | | | | | | | | | QtAutogen: Don't take a reference to temporary.Stephen Kelly2014-11-181-1/+1
| |/ / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While a const reference to a temporary is standard conformant, it doesn't seem to be necessary or advantageous here.
* | | | | | | | | | | Merge topic 'ccmake-hpux'Brad King2014-11-257-64/+15
|\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7a687292 ccmake: Cleanup and simplify conditional blocks for HP-UX 44f02b42 ccmake: Use standard getmaxyx instead of non-standard getmax[xy] ee3d06a4 ccmake: Remove incomplete support for cur_colr on old HP-UX
| * | | | | | | | | | | ccmake: Cleanup and simplify conditional blocks for HP-UXÅdne Hovda2014-11-185-42/+13
| | | | | | | | | | | |
| * | | | | | | | | | | ccmake: Use standard getmaxyx instead of non-standard getmax[xy]Ådne Hovda2014-11-183-22/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Swap out getmax[xy]() calls for single call to getmaxyx(), to support strict X/Open conformant curses implementations, e.g. HP-UX Xcurses.
| * | | | | | | | | | | ccmake: Remove incomplete support for cur_colr on old HP-UXÅdne Hovda2014-11-181-1/+1
| |/ / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Enable support for the more modern Xcurses.