| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Teach the Makefile generator to scan the implicit dependencies of PCH
creation. When a header named by `target_precompile_headers` changes
the corresponding PCH must be rebuilt and all consumers recompiled.
Fixes: #19830
|
|
|
|
|
| |
Run the `clang-format.bash` script to update our C and C++ code to a new
include order `.clang-format`. Use `clang-format` version 6.0.
|
| |
|
|
|
|
| |
Fixes: #17997
|
|
|
|
| |
Xcode 10 dropped support for i386 builds.
|
|
|
|
| |
This generator has been deprecated since CMake 3.9. Remove it.
|
|
|
|
| |
This generator has been deprecated since CMake 3.6. Remove it.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Run the `Utilities/Scripts/clang-format.bash` script to update
all our C++ code to a new style defined by `.clang-format`.
Use `clang-format` version 3.8.
* If you reached this commit for a line in `git blame`, re-run the blame
operation starting at the parent of this commit to see older history
for the content.
* See the parent commit for instructions to rebase a change across this
style transition commit.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sort include directives within each block (separated by a blank line) in
lexicographic order (except to prioritize `sys/types.h` first). First
run `clang-format` with the config file:
---
SortIncludes: false
...
Commit the result temporarily. Then run `clang-format` again with:
---
SortIncludes: true
IncludeCategories:
- Regex: 'sys/types.h'
Priority: -1
...
Commit the result temporarily. Start a new branch and cherry-pick the
second commit. Manually resolve conflicts to preserve indentation of
re-ordered includes. This cleans up the include ordering without
changing any other style.
Use the following command to run `clang-format`:
$ git ls-files -z -- \
'*.c' '*.cc' '*.cpp' '*.cxx' '*.h' '*.hh' '*.hpp' '*.hxx' |
egrep -z -v '(Lexer|Parser|ParserHelper)\.' |
egrep -z -v '^Source/cm_sha2' |
egrep -z -v '^Source/(kwsys|CursesDialog/form)/' |
egrep -z -v '^Utilities/(KW|cm).*/' |
egrep -z -v '^Tests/Module/GenerateExportHeader' |
egrep -z -v '^Tests/RunCMake/CommandLine/cmake_depends/test_UTF-16LE.h' |
xargs -0 clang-format -i
This selects source files that do not come from a third-party.
Inspired-by: Daniel Pfeifer <daniel@pfeifer-mail.de>
|
|
|
|
|
|
| |
This generator has been deprecated since CMake 3.3. Remove it.
Update documentation, modules, and tests to drop content specific
to this generator.
|
| |
|
|
|
|
|
|
|
|
| |
The actual file timestamp dependency is known to not work on
Visual Studio or Xcode generators. Tolerate such failure for
these generators (Tests/CustomCommand already covers using
OBJECT_DEPENDS to pull a custom command into a target, and
that still works with these generators).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The use of "cmake -E touch_nocreate" added in commit v3.2.1~4^2
(Makefile: Fix multiple custom command outputs regression, 2015-03-06)
caused builds to fail when one of the outputs is intentionally not
created. This was fixed by our parent commit by making touch_nocreate
succeed when the file is missing. Add a test case covering it.
For the Watcom WMake generator, check for the SYMBOLIC source file
property separately on each output. The mark is needed on outputs that
are not really created to tell 'wmake' not to complain that it is
missing. The mark is also needed on outputs that are created or 'wmake'
will not consider them out of date when they exist.
Inspired-by: Ben Boeckel <ben.boeckel@kitware.com>
|
|
|
|
|
|
|
|
| |
Extend the BuildDepends test with a case covering multiple custom
command outputs with the second one consumed by another rule. With the
old "multiple output pair" infrastructure used in the Makefile and Xcode
generators this did not work. Now that it is fixed, test the case
explicitly.
|
|
|
|
|
| |
The extra post-modification invocations of 'ninja' does not seem to be
needed anymore for the BuildDepends test to pass.
|
|
|
|
|
| |
Use "cmake -E sleep 3" instead of execute_process with a TIMEOUT of 3.
This avoids using a busy loop or depending on a timeout to kill it.
|
|
|
|
|
|
|
| |
Teach ExternalProject_Add a new BUILD_ALWAYS option to skip using
the build step stamp file and execute the step on every build.
Extend the BuildDepends test with a case to cover this option.
|
|
|
|
|
|
| |
Drop the HELP_XCODE workarounds needed on older Xcode versions when
using Xcode >= 5. We now expect builds and rebuilds to work using
proper dependencies with no special help.
|
|
|
|
|
|
| |
Xcode 5.0 now relinks targets when their shared libraries dependencies
are modified, and there seems to be no way to stop it. Report this as a
known limitation in the test output and do not fail.
|
|
|
|
|
|
|
|
| |
In Tests/Architecture and Tests/BuildDepends/Project we select a set of
OS X cpu architectures to use for the test. Prior to Xcode 4 we always
used i386 and ppc. Starting with Xcode 4, the tools do not support ppc
but do support x86_64, so we switch to that. Fix the version check to
recognize Xcode >= 5 as at least Xcode 4 and use the new architectures.
|
|
|
|
|
|
| |
The VS 6 IDE does not want to recompile a particular source after
a particular header it includes is modified, even by hand. For
now just silence the failure and document it with a comment.
|
| |
|
|\
| |
| |
| |
| |
| | |
306796e Teach BuildDepends test to cover LINK_DEPENDS_NO_SHARED
ed97631 Optionally skip link dependencies on shared library files
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Build a shared library and an executable linking to it inside the inner
test. Set LINK_DEPENDS_NO_SHARED on the executable. Add a custom
target to compare the output file times. Verify that on the first build
the executable is newer than the library. Then modify a library source
file. Verify that on the second build the library is newer because the
executable did not have a dependency to re-link.
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
The code handling IMPLICIT_DEPENDS was only able to track a single file,
the latest file replaced earlier files in the list.
The documentation now mentions that the language has to be prefixed to
every file and the test now uses two implicit dependencies, where only
the second is modified to trigger re-running of the custom command.
Alex
Inspired-by: Michael Wild <themiwi@users.sourceforge.net>
|
|
|
|
| |
removing arguments omitted in 9db3116226cb99fcf54e936c833953abcde9b729
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Ancient versions of CMake required else(), endif(), and similar block
termination commands to have arguments matching the command starting the
block. This is no longer the preferred style.
Run the following shell code:
for c in else endif endforeach endfunction endmacro endwhile; do
echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/'
done >convert.sed &&
git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' |
egrep -z -v '^(Utilities/cm|Source/kwsys/)' |
egrep -z -v 'Tests/CMakeTests/While-Endwhile-' |
xargs -0 sed -i -f convert.sed &&
rm convert.sed
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Ancient CMake versions required upper-case commands. Later command
names became case-insensitive. Now the preferred style is lower-case.
Run the following shell code:
cmake --help-command-list |
grep -v "cmake version" |
while read c; do
echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g'
done >convert.sed &&
git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' |
egrep -z -v '^(Utilities/cm|Source/kwsys/)' |
xargs -0 sed -i -f convert.sed &&
rm convert.sed
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Our Git commit hooks disallow modification or addition of lines with
trailing whitespace. Wipe out all remnants of trailing whitespace
everywhere except third-party code.
Run the following shell code:
git ls-files -z -- \
bootstrap doxygen.config '*.readme' \
'*.c' '*.cmake' '*.cpp' '*.cxx' \
'*.el' '*.f' '*.f90' '*.h' '*.in' '*.in.l' '*.java' \
'*.mm' '*.pike' '*.py' '*.txt' '*.vim' |
egrep -z -v '^(Utilities/cm|Source/(kwsys|CursesDialog/form)/)' |
egrep -z -v '^(Modules/CPack\..*\.in)' |
xargs -0 sed -i 's/ \+$//'
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
cmcldeps wraps cl and adds /showInclude before calling cl.
It parses the output of cl for used headers, drops system
headers and writes them to a GCC like dependency file.
cmcldeps uses ATM ninja code for process handling,
but could be ported later to SystemTools.
TODO: Why needs ninja multiple calls in the BuildDepends test?
|
|
|
|
|
|
|
| |
Causes compiler modules (currently only GNU) to set a
CMAKE_DEPFILE_FLAGS_${lang} variable, which communicates to
the generator the flags required to cause the compiler to create
dependency files.
|
|
|
|
| |
Not on Darwin version.
|
|
|
|
|
|
| |
ppc tools are no longer available in the Xcode 4 installation.
Eliminate the use of the hard-coded 'ppc' in the test when
running on Snow Leopard or later.
|
|
|
|
|
| |
Custom Makefile link rules may need to depend on linker scripts. Define
this property to allow user-specified link-time dependencies.
|
|
|
|
|
|
|
| |
The BuildDepends test exercises incremental linking with MSVC and Intel
tools on Windows. In some cases the Intel compiler creates objects that
cause the MS linker it invokes to crash during incremental linking. We
avoid the problem for this test by disabling incremental linking.
|
|
|
|
|
| |
We teach BuildDepends to always print the output from each try_compile.
This may make debugging easier.
|
| |
|
| |
|
|
|
|
|
|
|
| |
- Tests IMPLICIT_DEPENDS_INCLUDE_TRANSFORM properties.
- See issue #6648.
- Works without help in VS IDEs due to native dependency handling.
- Xcode needs help to rebuild correctly.
|
| |
|
|
|
|
| |
the inital configuration.
|
|
|
|
| |
IMPLICIT_DEPENDS feature of custom commands when building in custom targets. Convert multiple-output pair checks to be per-target instead of global.
|
| |
|
|
|
|
|
|
| |
builds
Alex
|
|
|
|
|
|
|
| |
probably because the process was killed before the fflush() worked because
the busy loop blocked the processor (failing midworld test)
Alex
|
|
|
|
| |
Also added hack to rebuild subproject several times for Xcode. The generator should be fixed and the hack removed.
|
|
|
|
| |
does not need to link to the foo library anymore.
|