Commit Graph

34 Commits

Author SHA1 Message Date
Brad King
035c29fee4 Merge topic 'link-depends-no-shared'
306796e Teach BuildDepends test to cover LINK_DEPENDS_NO_SHARED
ed97631 Optionally skip link dependencies on shared library files
2012-11-13 14:31:54 -05:00
Brad King
306796e862 Teach BuildDepends test to cover LINK_DEPENDS_NO_SHARED
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.
2012-11-09 09:26:51 -05:00
Alex Neundorf
05f162ce95 AddCustomCommand: Handle multiple IMPLICIT_DEPENDS files (#10048)
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>
2012-11-06 11:54:58 -05:00
Marcin Wojdyr
84b49be8f0 Remove CMake multiline block-end command arguments
removing arguments omitted in 9db3116226
2012-08-15 16:50:29 -04:00
Kitware Robot
9db3116226 Remove CMake-language block-end command arguments
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
2012-08-13 14:19:16 -04:00
Kitware Robot
77543bde41 Convert CMake-language commands to lower case
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
2012-08-13 14:19:16 -04:00
Kitware Robot
7bbaa4283d Remove trailing whitespace from most CMake and C/C++ code
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/ \+$//'
2012-08-13 14:18:39 -04:00
Peter Kümmel
207ec5c3b1 Ninja: fix mis-matching endif() argument 2012-07-18 09:51:43 +02:00
Peter Kümmel
392a6541b5 Ninja: on Mac no multiple -arch because of -M 2012-07-10 13:43:01 +02:00
Peter Kuemmel
801f23fe51 Ninja: dep files and multiple -arch flags not possible on mac 2012-06-19 21:27:52 +02:00
Peter Kuemmel
033a687acd Ninja: add wrapper for cl to extract dependencies
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?
2012-06-08 17:42:11 +02:00
Peter Collingbourne
7eb8d9036c Provide dependency file flags to generator
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.
2012-02-02 23:36:49 +00:00
David Cole
5f7acc8d75 Base architecture choice logic on Xcode version
Not on Darwin version.
2011-07-18 09:59:58 -04:00
David Cole
c050c592ee Fix BuildDepends test to work with Xcode 4
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.
2011-07-15 15:34:17 -04:00
Brad King
95f149e61f Define LINK_DEPENDS target property (#11406)
Custom Makefile link rules may need to depend on linker scripts.  Define
this property to allow user-specified link-time dependencies.
2010-11-05 09:05:08 -04:00
Brad King
2e48fe0eec Avoid Intel linker crash in BuildDepends test
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.
2009-10-27 11:31:40 -04:00
Brad King
aaabb2fdc2 More verbose BuildDepends test output
We teach BuildDepends to always print the output from each try_compile.
This may make debugging easier.
2009-10-22 09:35:58 -04:00
Bill Hoffman
819a4f2e57 ENH: make sure multiple archs are only tested when the work 2009-02-19 15:24:44 -05:00
Bill Hoffman
756cb547f3 BUG: fix xcode depend issue and add a test for it 2009-02-19 11:51:24 -05:00
Brad King
91de0b09ef ENH: Update BuildDepends test to check #include lines with macros.
- 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.
2008-05-14 11:55:12 -04:00
Ken Martin
ce8810c4e7 ENH: preclean some warnings 2008-03-25 11:27:18 -04:00
Brad King
d4e0727e4d BUG: Enable CMAKE_SUPPRESS_REGENERATION because the entire test runs during the inital configuration. 2007-12-21 20:19:23 -05:00
Brad King
d83b4cd255 ENH: Add a depends check step to custom targets. Add support for the IMPLICIT_DEPENDS feature of custom commands when building in custom targets. Convert multiple-output pair checks to be per-target instead of global. 2007-12-21 12:22:12 -05:00
Brad King
423cdb561c ENH: Adding test for ADD_CUSTOM_COMMAND's new IMPLICIT_DEPENDS feature. 2007-09-17 10:51:05 -04:00
Alexander Neundorf
7203990661 COMP: removing the directory at the beginning breaks the test for in-source
builds

Alex
2007-06-14 08:33:21 -04:00
Alexander Neundorf
92270d5bf8 COMP: fix test, in some cases stdout from bar was not captured correctly,
probably because the process was killed before the fflush() worked because
the busy loop blocked the processor (failing midworld test)

Alex
2007-06-13 16:26:50 -04:00
Brad King
6a145fb2be BUG: Report proper error message when project does not build the first time. Also added hack to rebuild subproject several times for Xcode. The generator should be fixed and the hack removed. 2007-05-23 17:58:14 -04:00
Brad King
c3474ad029 ENH: Executable bar should rebuild when its generated header changes. It does not need to link to the foo library anymore. 2007-05-23 17:01:26 -04:00
Brad King
303b4312b2 BUG: Target names in the COMMAND part of a custom command should not create a file-level dependency that forces the command to rerun when the executable target rebuilds, but the target-level dependency should still be created. Target names in a DEPENDS should do both a target-level and file-level dependency. Updated the BuildDepends test to check that this works. 2007-05-23 13:30:23 -04:00
Brad King
c288da754a BUG: Target names in the COMMAND part of a custom command should not create a file-level dependency that forces the command to rerun when the executable target rebuilds, but the target-level dependency should still be created. Target names in a DEPENDS should do both a target-level and file-level dependency. Updated the BuildDepends test to check that this works. 2007-05-23 13:27:00 -04:00
Andy Cedilnik
27727a2bba BUG: check in the rest of the changes to move from c to cxx 2007-05-16 07:56:56 -04:00
Andy Cedilnik
9338803697 BUG: fix test for hp move to c++ to avoid ansi issues and produce a message if the compile fails, (really checked in by Bill H.) 2007-05-16 07:55:00 -04:00
Bill Hoffman
1f286c067f ENH: add test for build depends 2007-05-10 10:05:52 -04:00
Bill Hoffman
d419354250 ENH: add a test to make sure Xcode does not break again 2007-05-09 15:10:12 -04:00