Commit Graph

13281 Commits

Author SHA1 Message Date
Brad King 80c947b397 No /fast targets in try_compile project mode
The try_compile command builds the cmTryCompileExec executable using the
cmTryCompileExec/fast target with Makefile generators in order to save
time since dependencies are not needed.  However, in project mode the
command builds an entire source tree that may have dependencies.
Therefore we can use the /fast target approach only in one-source mode.
2009-08-04 14:37:46 -04:00
Brad King f3cd1e06f5 Test C, C++, Fortran interface combinations
Previously the Fortran test created a single executable containing C,
C++, and Fortran sources.  This commit divides the executable into three
libraries corresponding to each language, and two executables testing
Fortran/C only and Fortran/C/C++ together.  The result tests more
combinations of using the languages together, and that language
requirements propagate through linking.
2009-08-04 14:06:45 -04:00
Ken Martin 39e0e04416 ENH: change to CDASH 2009-08-04 13:16:30 -04:00
KWSys Robot 346a5b2d46 KWSys Nightly Date Stamp 2009-08-04 00:01:03 -04:00
Brad King 73de2362dd Fix recursive try_compile calls
When building an entire source tree with try_compile instead of just a
single source file, it is possible that the CMakeLists.txt file in the
try-compiled project invokes try_compile.  This commit fixes propagation
of language-initialization results from the outer-most project into any
number of try-compile levels.
2009-08-03 13:37:36 -04:00
Brad King 1a159bbf33 Test try_compile project mode
The try_compile command project mode builds an entire source tree
instead of one source file.  It uses an existing CMakeLists.txt file in
the given source tree instead of generating one.  This commit creates a
test for the mode in the TryCompile test.
2009-08-03 13:37:28 -04:00
KWSys Robot 8049b50398 KWSys Nightly Date Stamp 2009-08-03 00:01:04 -04:00
KWSys Robot a166e1baec KWSys Nightly Date Stamp 2009-08-02 00:01:05 -04:00
KWSys Robot 196cc7ec95 KWSys Nightly Date Stamp 2009-08-01 00:01:07 -04:00
Alexander Neundorf e5dd49c5f8 DOCS: fix typo (#9231)
Alex
2009-07-31 16:11:28 -04:00
Brad King a48f29c904 Set current directory variables in CTest scripts
The commit "Fix get_filename_component ABSOLUTE mode" broke the code

  get_filename_component(cwd . ABSOLUTE)

because CTest scripts did not make cmMakefile::GetCurrentDirectory()
available.  This commit fixes the problem by setting the proper
information on CTest script instances of cmMakefile.

This also makes CMAKE_CURRENT_SOURCE_DIR and CMAKE_CURRENT_BINARY_DIR
available to CTest scripts.  They are set to the working directory at
script startup.
2009-07-31 09:19:19 -04:00
Brad King 36bb624907 Fix installation when built by CMake 2.4
CMake 2.4 generates old-style cmake_install.cmake code including calls
to the file(INSTALL) command with the COMPONENTS argument.  We need to
set CMAKE_INSTALL_SELF_2_4 for the whole install tree to prevent the
command from complaining in this special case.  Previously this was
needed only in the QtDialog directory, but now it is needed in the
entire tree.
2009-07-31 08:27:36 -04:00
Alexander Neundorf 121df27fa2 DOCS: fix typo (see #9308)
Alex
2009-07-31 06:22:18 -04:00
KWSys Robot 8783f8d078 KWSys Nightly Date Stamp 2009-07-31 00:01:03 -04:00
Brad King 6843448379 Pass Fortran90 test result to try-compile
This stores CMAKE_Fortran_COMPILER_SUPPORTS_F90 in the Fortran compiler
information file CMakeFiles/CMakeFortranCompiler.cmake instead of in
CMakeCache.txt.  This file makes the result available to try-compile
projects.
2009-07-30 13:46:51 -04:00
Brad King fcab87c9f8 Do not always propagate linker language preference
The commit "Consider link dependencies for link language" taught CMake
to propagate linker language preference from languages compiled into
libraries linked by a target.  It turns out this should only be done for
some languages, such as C++, because normally the language of the
program entry point (main) should be used.

We introduce variable CMAKE_<LANG>_LINKER_PREFERENCE_PROPAGATES to tell
CMake whether a language should propagate its linker preference across
targets.  Currently it is true only for C++.
2009-07-30 10:59:37 -04:00
Brad King fd633b33cf Refactor target linker language selection
This factors the decision logic out of cmTarget::ComputeLinkClosure into
dedicated class cmTargetSelectLinker.  We replace several local
variables with a single object instance, and organize code into methods.
2009-07-30 10:59:25 -04:00
KWSys Robot ace4d5d31d STYLE: Nightly Date Stamp 2009-07-30 00:01:05 -04:00
Brad King 76eb733f3a Separate Xcode flag escaping code from defines
Generalize the core Xcode generator preprocessor flag escaping code to
be useful for escaping all flags.
2009-07-29 16:40:07 -04:00
Brad King 8ab2548d6c Re-order cmGlobalXCodeGenerator implementation
This defines class cmGlobalXCodeGenerator::BuildObjectListOrString early
in the source file so it can be used in more places.
2009-07-29 16:39:45 -04:00
Brad King 2537a72f8e Check PGI linker lines in ImplicitLinkInfo test
This adds sample linker invocation lines for the PGI compiler on Linux.
2009-07-29 16:38:12 -04:00
Brad King 35f36727c5 Set CMAKE_<LANG>_VERBOSE_FLAG variables for PGI
We set the variables to contain "-v", the verbose front-end output
option for PGI compilers.  This enables detection of implicit link
libraries and directories for these compilers.
2009-07-29 16:38:06 -04:00
Brad King f47ae0599d Check Intel linker lines in ImplicitLinkInfo test
This adds sample linker invocation lines for the Intel compiler on
Linux.  In particular, this exercises the case when "ld" appears without
a full path.
2009-07-29 16:07:33 -04:00
Brad King 0ea43ee128 Set CMAKE_<LANG>_VERBOSE_FLAG variables for Intel
We set the variables to contain "-v", the verbose front-end output
option for Intel compilers.  This enables detection of implicit link
libraries and directories for these compilers.
2009-07-29 16:07:27 -04:00
Brad King edad475e26 Recognize linker commands without paths
This teaches the implicit link line parsing code to recognize link lines
that do not have a full path to the linker executable.  At least one
version of the Intel compiler on Linux invokes the linker as just "ld"
instead of "/usr/bin/ld".
2009-07-29 16:07:19 -04:00
Brad King 5b85a581a8 ENH: Separate option mapping from VS generators
Split cmVisualStudioGeneratorOptions core functionality out into a
base class cmIDEOptions.  It will be useful for other generators.
2009-07-29 11:29:08 -04:00
Brad King e339f3133f ENH: Separate VS flag table type
Move the cmVS7FlagTable type out of the VS generators and rename it to
cmIDEFlagTable.  It will be useful for other generators.
2009-07-29 11:28:55 -04:00
Brad King 819b0742c6 Test cache entry property "STRINGS"
The STRINGS property tells cmake-gui to create a drop-down selection
list.  This teaches the Properties test to set and verify its value.
2009-07-29 08:39:50 -04:00
KWSys Robot 797f91bc0b STYLE: Nightly Date Stamp 2009-07-29 00:01:03 -04:00
Bill Hoffman b590e1dfae ENH: remove code duplication and use cmVisualStudioGeneratorOptions for all versions of vs 7 and greater. 2009-07-28 14:30:15 -04:00
Brad King e9d7ebb3ec BUG: Do not double-initialize local generators
All global generator CreateLocalGenerator methods automatically
initialize the local generator instances with SetGlobalGenerator.  In
several places we were calling SetGlobalGenerator again after receiving
the return value from CreateLocalGenerator.  The double-initializations
leaked the resources allocated by the first call to SetGlobalGenerator.
This fix removes the unnecessary calls.
2009-07-28 10:47:02 -04:00
Brad King 57057ee595 BUG: Do not filter non-library implicit link items
We list implicit link items of languages linked into a target but filter
them by the implicit libraries known to be passed by the main linker
language.  Implicit link flags like "-z..." should not be filtered out
because they are not libraries.
2009-07-28 08:36:17 -04:00
Brad King 836447663e BUG: Parse implicit link editor -z*extract options
The Sun Fortran compiler passes -zallextract and -zdefaultextract to the
linker so that all objects from one of its archives are included in the
link.  This teaches the implicit options parser to recognize the flags.
We need to pass them explicitly on C++ link lines when Fortran code is
linked.
2009-07-28 08:36:11 -04:00
Brad King 855d07f80e BUG: Always pass linker flags untouched
In cmComputeLinkInformation we recognize link options that look like
library file names, but pass flags starting in '-' through untouched.
This fixes the ordering of the check to recognize '-' flags first in
case the rest of the option looks like a library file name, as in the
case of "-l:libfoo.a".
2009-07-28 08:08:00 -04:00
Brad King 06a1e35d8a BUG: Do not recognize ':' in a library name
In cmComputeLinkInformation we construct regular expressions to
recognize library file names.  This fixes the expressions to not allow a
colon (':') in the file name so that "-l:libfoo.a" is left alone.
2009-07-28 08:07:52 -04:00
KWSys Robot 87c3e1662c STYLE: Nightly Date Stamp 2009-07-28 00:01:06 -04:00
Brad King cf1225b9af BUG: Enable large files only if <cstdio> works
Some AIX/gcc version combinations the <cstdio> header breaks when large
file support is enabled.  See this GCC issue for details:

  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20366

We work around the problem by enhancing the configuration check for
large file support to include <cstdio> when available.  This will cause
LFS to be disabled when the above problem occurs.
2009-07-27 16:45:15 -04:00
Bill Hoffman 40850e7f1f ENH: add test times and a total time to the output of command line ctest 2009-07-27 14:17:38 -04:00
Brad King 2b849a77a6 ENH: Test Fortran and C++ in one executable
This extends the Fortran-to-C interface test to add a C++ source file.
The executable can only link with the C++ linker and with the proper
Fortran runtime libraries.  These libraries should be detected by CMake
automatically, so this tests verifies the detection functionality.
2009-07-27 12:43:42 -04:00
Brad King 1c98cdf224 ENH: Remove EXTRA_FORTRAN_C_LIBS Fortran test hack
This hack was created to help the Fortran test executables link to the
implicit C libraries added by BullsEye.  Now that implicit libraries
from all languages are detected and included automatically the hack is
no longer needed.
2009-07-27 12:43:27 -04:00
Brad King 0de8be8b49 ENH: Link runtime libraries of all languages
This adds implicit libraries and search directories for languages linked
into a target other than the linker language to its link line.  For
example, when linking an executable containing both C++ and Fortran code
the C++ linker is used but we need to add the Fortran libraries.

The variables

  CMAKE_<LANG>_IMPLICIT_LINK_LIBRARIES
  CMAKE_<LANG>_IMPLICIT_LINK_DIRECTORIES

contain the implicit libraries and directories for each language.
Entries for the linker language are known to be implicit in the
generated link line.  Entries for other languages that do not appear in
the known implicit set are listed explicitly at the end of the link
line.
2009-07-27 12:43:17 -04:00
Brad King 0afa7a95f2 ENH: Report CMake logs in SystemInformation test
This teaches the SystemInformation test to report the CMake log files
CMakeOutput.log and CMakeError.log from the CMake build tree and from
the SystemInformation test build tree.  These logs may help diagnose
dashboard problems remotely.
2009-07-27 12:35:12 -04:00
David Cole 7ae028eb33 ENH: Make the CheckSourceTree test emit a warning (but pass instead of fail) when there is an in-source build on a dashboard machine. 2009-07-27 12:04:03 -04:00
Brad King 38d1ff59da ENH: Require language libs in Fortran/C test
This extends the Fortran/C interface test to require that the executable
link to the fortran language runtime libraries.  We must verify that the
proper linker is chosen.
2009-07-27 11:56:09 -04:00
KWSys Robot 4c0a142d3d STYLE: Nightly Date Stamp 2009-07-27 00:01:07 -04:00
Dave Partyka 1d158cffca ENH: try and see if using string.append instead of += will make valgrind not complaing that JoinPath is leaking. 2009-07-26 01:01:05 -04:00
KWSys Robot de83a83b8c STYLE: Nightly Date Stamp 2009-07-26 00:01:04 -04:00
David Cole 32be77df8c ENH: Improvements to the new CheckSourceTree test: ignore Thumbs.db and .DS_Store files. Force all output to stderr by not using STATUS with message. Better error text. 2009-07-25 13:32:07 -04:00
Brad King 55718eb869 BUG: Further avoid ImplicitLinkInfo case change
The commit "Avoid case change in ImplicitLinkInfo test" did not change
all of the paths to mingw, so some case change still occurs.  This
changes more of them.
2009-07-25 08:11:57 -04:00
KWSys Robot d0a2ff5d6e STYLE: Nightly Date Stamp 2009-07-25 00:01:04 -04:00