Commit Graph

8654 Commits

Author SHA1 Message Date
Brad King fff812db95 ENH: Add if(TARGET) command
It is useful to be able to test if a target has been created.  Often
targets are created only inside conditions.  Rather than storing the
result of the condition manually for testing by other parts of the
project, it is much easier for the other parts to just test for the
target's existence.  This will also be useful when find-modules start
reporting results with IMPORTED targets and projects want to test if a
certain target is available.
2008-08-20 11:45:16 -04:00
Brad King 07665de038 BUG: Handle case when select() lies
According to "man select" on Linux it is possible that select() lies
about data being ready on a pipe in some subtle cases.  We deal with
this by switching to non-blocking i/o and checking for EAGAIN.  See
issue #7180.
2008-08-20 09:57:09 -04:00
Brad King 9f1c7bdbaa STYLE: Nightly Date Stamp 2008-08-20 00:00:14 -04:00
Bill Hoffman b3b4350879 BUG: fix for 6462, delete key should delete the current char 2008-08-19 16:40:19 -04:00
Bill Hoffman 1629963e7c BUG: fix for 7045, use gcc for .m 2008-08-19 15:55:10 -04:00
Bill Hoffman d632b96841 BUG: fix 6647 arguments after -E should not be parsed by CMake 2008-08-19 15:42:48 -04:00
Bill Hoffman d2e2ab72bf BUG: fix for 6794 support for LTCG WholeProgramOptimization, which is not available in VS 8 and newer. 2008-08-19 15:07:47 -04:00
Bill Hoffman 513f7d1869 BUG: fix for 7496, do not just report configure done when there is an error during configure 2008-08-19 13:48:21 -04:00
Bill Hoffman 1bda46564e BUG: 7448 fix crash in ccmake when compiler is changed 2008-08-19 13:31:21 -04:00
Brad King fe98e57e38 ENH: Disallow link-type keywords in link interface
The LINK_INTERFACE_LIBRARIES target property may not contain the
"debug", "optimized", or "general" keywords.  These keywords are
supported only by the target_link_libraries (and link_libraries) command
and are not a generic library list feature in CMake.  When a user
attempts to add one of these keywords to the property value, we now
produce an error message that refers users to alternative means.
2008-08-19 11:43:51 -04:00
Brad King 41c5dd13dc ENH: Clarify link interface documentation
The LINK_INTERFACE_LIBRARIES property does not apply for STATIC
libraries.  The IMPORTED_LINK_INTERFACE_LIBRARIES property does apply
for STATIC libraries.  State both explicitly in the documentation.
Also, clarify that the per-configuration version of these properties
completely overrids the generic version.
2008-08-19 10:29:35 -04:00
Brad King 8ee5c92015 BUG: Linking to modules is for 2.2 compat only
The compatibility check to allow linking to modules should test for
CMake 2.2, not the unreleased 2.3.  See issue #7500.  Furthermore, the
message should be more clear about fixing the code instead of setting
CMAKE_BACKWARDS_COMPATIBILITY unless one is just trying to build an
existing project.
2008-08-19 10:28:22 -04:00
Brad King 5264834868 STYLE: Nightly Date Stamp 2008-08-19 00:00:20 -04:00
Brad King f50ed1fd88 ENH: Improve errors when a policy is REQUIRED
In the future some policies may be set to REQUIRED_IF_USED or
REQUIRED_ALWAYS.  This change clarifies the error messages users receive
when violating the requirements.
2008-08-18 16:29:00 -04:00
Brad King 061d20be38 ENH: Add UNKNOWN type for IMPORTED libraries
When creating an IMPORTED target for a library that has been found on
disk, it may not be known whether the library is STATIC or SHARED.
However, the library may still be linked using the file found from disk.
Use of an IMPORTED target is still important to allow per-configuration
files to be specified for the library.

This change creates an UNKNOWN type for IMPORTED library targets.  The
IMPORTED_LOCATION property (and its per-config equivalents) specifies
the location of the library.  CMake makes no assumptions about the
library that cannot be inferred from the file on disk.  This will help
projects and find-modules import targets found on disk or specified by
the user.
2008-08-18 11:39:22 -04:00
Brad King 0bf093fd17 STYLE: Convert unused target type cases to default
In switch statements that deal with only a few target types, use a
'default' case for the remaining target types instead of listing them
explicitly.  This will make it easier to add more types in the future.
2008-08-18 11:26:51 -04:00
Brad King 94c1fe83fd ENH: Make link interface mode more distinct
Rename the recently added INTERFACE mode of the target_link_libraries()
command to LINK_INTERFACE_LIBRARIES.  This makes it much more distinct
from a normal call to the command, and clearly states its connection to
the property of the same name.  Also require the option to appear
immediately after the target name to make it a mode rather than an
option.
2008-08-18 10:11:29 -04:00
Brad King 7f7068e9d4 ENH: Add cmake_policy(GET) command mode
It is likely that projects or CMake modules in the future will need to
check the value of a policy setting.  For example, if we add a policy
that affects the results of FindXYZ.cmake modules, the module code will
need to be able to check the policy.
2008-08-18 09:53:06 -04:00
Brad King f2d2a82cd0 STYLE: Nightly Date Stamp 2008-08-18 00:00:30 -04:00
Brad King 070d4cc28b STYLE: Nightly Date Stamp 2008-08-17 00:00:30 -04:00
Alexander Neundorf 814b368725 STYLE: extend documentation for RETURN() a bit
ENH: add a test for calling RETURN() in an included file

Alex
2008-08-16 18:06:17 -04:00
Alexander Neundorf 9ead2fd67a BUG: fix #7477, set VERBOSE=1 in the kdevelop setting for the environment,
not together with the make executable

Alex
2008-08-16 16:58:20 -04:00
Alexander Neundorf 4d5ea6ddff STYLE: remove some commented code
Alex
2008-08-16 16:48:42 -04:00
Alexander Neundorf 235cb0216f BUG: fix #7471, only put build directories and CMakeFiles/ in the blacklist
Alex
2008-08-16 16:33:47 -04:00
Brad King 442742a187 STYLE: Nightly Date Stamp 2008-08-16 00:00:33 -04:00
Brad King ae60cc235c COMP: Work-around bogus compiler warning. 2008-08-15 09:47:21 -04:00
Brad King 05624f2fe8 STYLE: Nightly Date Stamp 2008-08-15 00:00:38 -04:00
Brad King 8063dd293e ENH: Inform user when RPATH or RUNPATH is removed 2008-08-14 09:53:26 -04:00
Brad King 485c3faea7 BUG: Update both RPATH and RUNPATH entries
During installation the RPATH and RUNPATH entries of ELF binaries are
edited to match the user specification.  Usually either one entry is
present or both entries refer to the same string literal.  In the case
that they are both present and refer to separate string literals we need
to update both.  I have never seen this case in practice, but we should
do this just in case.
2008-08-14 09:53:21 -04:00
Brad King 2a85f8289f BUG: Remove both RPATH and RUNPATH entries
Removal of the RPATH and RUNPATH from ELF binaries must work when both
entries are present.  Both entries should be removed.  Previously only
one would be removed and the other would be blanked because it pointed
at the same string which was zeroed.  This fixes gentoo bug number
224901.
2008-08-14 09:53:17 -04:00
Brad King 777e2d328a STYLE: Nightly Date Stamp 2008-08-14 00:00:44 -04:00
Brad King 3724161114 STYLE: Nightly Date Stamp 2008-08-13 00:00:55 -04:00
Brad King 2b96e0edab ENH: Teach find_package about lib64 paths
When find_package is about to look in <prefix>/lib, search first in
<prefix>/lib64 in cases that find_library would use lib64 paths.
2008-08-12 19:01:04 -04:00
Alexander Neundorf ec5f5b093f STYLE: one ifdef block less, the documentation object can be created a bit later
Alex
2008-08-12 07:01:44 -04:00
Brad King 6d857edb45 STYLE: Nightly Date Stamp 2008-08-12 00:00:55 -04:00
Brad King e322d288af ENH: Simple specification of link interfaces
Create an INTERFACE option to the target_link_libraries command to help
set the LINK_INTERFACE_LIBRARIES and LINK_INTERFACE_LIBRARIES_DEBUG
properties.  This will help users specify link interfaces using
variables from Find*.cmake modules that include the 'debug' and
'optimized' keywords.
2008-08-11 16:23:02 -04:00
Brad King 881a0345d0 STYLE: Nightly Date Stamp 2008-08-11 00:01:01 -04:00
Brad King dd73408328 STYLE: Nightly Date Stamp 2008-08-10 00:01:08 -04:00
Brad King 760fb1f4b7 STYLE: Nightly Date Stamp 2008-08-09 00:01:13 -04:00
Brad King 0208012d83 STYLE: Nightly Date Stamp 2008-08-08 00:01:19 -04:00
Brad King 40fc9174e2 ENH: Tolerate repeated link library types
The "debug", "optimized", and "general" link library type specifier
arguments to the target_link_library commands are sometimes repeated in
user code due to variable expansion and other complications.  Instead of
silently accepting the duplicates and trying to link to a bogus library
like "optimized.lib", warn and ignore the earlier specifiers.
2008-08-07 17:51:29 -04:00
Brad King 2bbb1713de ENH: Clarify documentation of EXCLUDE_FROM_ALL
The add_subdirectory() command's EXCLUDE_FROM_ALL option does not
override inter-target dependencies.  This change clarifies the
documentation accordingly.
2008-08-07 17:12:16 -04:00
Brad King e58fab841f STYLE: Nightly Date Stamp 2008-08-07 00:01:24 -04:00
Brad King d76b20bf3a BUG: Avoid bogus dependency on executable targets
When an executable target within the project is named in
target_link_libraries for another target, but the executable does not
have the ENABLE_EXPORTS property set, then the executable cannot really
be linked.  This is probably a case where the user intends to link to a
third-party library that happens to have the same name as an executable
target in the project (or else will get an error at build time).  We
need to avoid making the other target depend on the executable target
incorrectly, since the executable may actually want to link to that
target and this is not a circular depenency.
2008-08-06 17:48:53 -04:00
Brad King 37a009b7f7 ENH: Improve readability of circular depends error
When reporting the dependencies in a strongly connected component quote
the target names to make the message more readable no matter the target
name.
2008-08-06 17:48:49 -04:00
Brad King 578e83501b BUG: Fix crash on circular target dependencies
After reporting an error about circular target dependencies do not try
to continue generation because the dependency computation object is not
in a useful state.
2008-08-06 17:48:44 -04:00
Alexander Neundorf 138c8a0dab BUG: don't crash in the generator is EXECUTABLE_OUTPUT_PATH or
LIBRARY_OUTPUT_PATH are empty

Alex
2008-08-06 15:35:52 -04:00
Brad King b853e9c19f STYLE: Nightly Date Stamp 2008-08-06 00:01:30 -04:00
Brad King 7e11c5e928 BUG: Custom command depends may match sources
Custom command dependencies that are not full paths or targets may also
match source files.  When one does, the full information about the
source file's location and name may be used.  This fixes the case when a
custom commands depends by relative path on a source file generated by
another custom command specifying its output by relative path.
2008-08-05 13:27:06 -04:00
Brad King d800910efd BUG: Fix matching of ambiguous sf extensions.
A name with an ambiguous extension may only match an unambiguous name
that is extended by one of the fixed set of extensions tried when
finding the source file on disk.  This rule makes matching of source
files with ambiguous extensions much less aggressive but still
sufficient.
2008-08-05 13:27:01 -04:00