Bill Hoffman
ee886fbbdb
ENH: add CMAKE_DEFINE_FLAG_(LANG) that can replace -D flags with what the compiler actually uses
2008-01-11 13:00:29 -05:00
Brad King
52eb0ccac7
BUG: Restore old interface of "make foo.o" and "make foo.i" even though object file names now include source extensions. For Java we also need to always remove the source extension (.java -> .class). This fixes the re-opening of bug #6169 .
2008-01-07 16:12:37 -05:00
Brad King
3efc6e40cb
BUG: Do not remove the source file extension when computing an object file name. This addresses bug #6169 . If CMAKE_BACKWARDS_COMPATIBILITY is 2.4 or lower maintain the old behavior so that existing build trees and old project releases are not affected.
2007-12-28 23:07:26 -05:00
Brad King
f872c10b7e
ENH: Added method cmLocalGenerator::GetBackwardsCompatibility to reduce parsing of CMAKE_BACKWARDS_COMPATIBILITY variable. Add cmLocalGenerator::NeedBackwardsCompatibility to simplify checks for compatibility requirements.
2007-12-28 23:07:14 -05:00
Brad King
850721f9af
COMP: Fixed data loss warning.
2007-12-20 09:27:59 -05:00
Alexander Neundorf
ac017f7aba
STYLE: fix warnings: comparison signed/unsigned, unused variable
...
Alex
2007-12-19 03:56:13 -05:00
Alexander Neundorf
3ae731fab7
ENH: add support for chrpath, so the RPATH in ELF files can be changed when
...
installing without having to link the target again -> can save a lot of time
chrpath is handled very similar to install_name_tool on the mac. If the
RPATH in the build tree file is to short, it is padded using the separator
character.
This is currently disabled by default, it can be enabled using the option
CMAKE_USE_CHRPATH. There are additional checks whether it is safe to enable
it. I will rework them and use FILE(READ) instead to detect whether the
binaries are actually ELF files.
chrpath is available here
http://www.tux.org/pub/X-Windows/ftp.hungry.com/chrpath/
or kde svn (since a few days): http://websvn.kde.org/trunk/kdesupport/chrpath/
Alex
2007-12-18 17:50:27 -05:00
Alexander Neundorf
f2bb0af819
STYLE: restructure OutputLinkLibraries() a bit, so that new there is a
...
function which returns the RPATH, so e.g. the install rpath can be queried
when the command for the build rpath is created. This is a first step for
supporting chrpath.
Alex
2007-11-26 17:57:39 -05:00
Bill Hoffman
5765fbbb88
ENH: fix spelling error
2007-10-22 14:01:49 -04:00
Bill Hoffman
613c35e033
ENH: do not always add -arch flags
2007-10-19 22:24:00 -04:00
David Cole
c8e832dcf5
BUG: Fix #5868 - add COMPONENT handling to the SCRIPT and CODE signatures of the INSTALL command.
2007-10-15 07:08:15 -04:00
Bill Hoffman
79d9041d81
BUG: fix for bug 0003618 , allow one arch in OSX_ARCHS to work
2007-10-12 10:58:59 -04:00
Alexander Neundorf
c3b42e90ed
ENH: add flag so a terminating slash for the link path can be specified (needed by the Digital Mars D compiler)
...
Alex
2007-08-28 16:19:01 -04:00
Alexander Neundorf
7ff741f14d
STYLE: more space in the cmake_install.cmake script (easier to read)
...
Alex
2007-08-21 16:22:55 -04:00
Brad King
ea874415d9
ENH: Moved GetTargetDirectory method up to cmLocalGenerator. This provides a common interface to something that was implemented in most local generators anyway.
2007-08-01 15:25:40 -04:00
David Cole
ee91e25499
BUG: Only pay attention to the FRAMEWORK target property for SHARED library targets
2007-08-01 13:04:45 -04:00
Alexander Neundorf
dddbad259c
PERF: micro optimization: the (*pos1) && (*pos1=='/') were redundant, and
...
hasDoubleSlash is false in most cases, so in most cases 3 comparisons were
done, now only one
Alex
2007-07-23 09:06:48 -04:00
Alexander Neundorf
a4429ad30a
STYLE: fix line lengths and add "remove -f" to the docs
...
Alex
2007-07-17 10:44:09 -04:00
Alexander Neundorf
95a8331edb
ENH: produce a lot more output when running with --debug-output
...
-try to fix build error on HPUX
Alex
2007-07-17 09:25:08 -04:00
Alexander Neundorf
e126db1f71
BUG: handle dependencies to imported targets better: don't create a
...
dependency if the target name was not listed in DEPENDS, if it was listed in
DEPENDS, create a dependency to the file
Seems to work, but have to check with Brad.
Alex
2007-06-21 13:08:22 -04:00
Brad King
35936433e1
ENH: Merging changes from branch CMake-SourceFile2-b between tags
...
CMake-SourceFile2-bp and CMake-SourceFile2-b-mp1 to trunk. This
commit is surrounded by tags CMake-SourceFile2-b-mp1-pre and
CMake-SourceFile2-b-mp1-post on the trunk.
The changes re-implement cmSourceFile and the use of it to allow
instances to be created much earlier. The use of cmSourceFileLocation
allows locating a source file referenced by a user to be much simpler
and more robust. The two SetName methods are no longer needed so some
duplicate code has been removed. The strange "SourceName" stuff is
gone. Code that created cmSourceFile instances on the stack and then
sent them to cmMakefile::AddSource has been simplified and converted
to getting cmSourceFile instances from cmMakefile. The CPluginAPI has
preserved the old API through a compatibility interface.
Source lists are gone. Targets now get real instances of cmSourceFile
right away instead of storing a list of strings until the final pass.
TraceVSDependencies has been re-written to avoid the use of
SourceName. It is now called TraceDependencies since it is not just
for VS. It is now implemented with a helper object which makes the
code simpler.
2007-06-18 11:59:23 -04:00
Alexander Neundorf
74750610cf
ENH: determine typesize by compiling a file and reading strings from the compiled output.
...
Tested with various gcc, XCode, MSVC7, sdcc
For OSX when doing TRY_COMPILE() CMAKE_OSX_ARCHITECTURES is used, if there are different results an error is generated. CMAKE_OSX_ARCHITECTURES can be overwritten for the TRY_COMPILES with CMAKE_TRY_COMPILE_OSX_ARCHITECTURES.
Alex
2007-06-04 17:08:46 -04:00
Brad King
3f2dd9bc54
ENH: Made cmTarget::GetSourceFiles method return reference to const so addition of cmSourceFile pointers must be done with an access method in cmTarget.
2007-05-28 10:25:03 -04:00
Alexander Neundorf
79756b0e67
BUG: don't use non-imported target when cross compiling as commands in custom commands
...
STYLE: remove now invalid comments, use this->
Alex
2007-05-24 08:43:31 -04:00
Brad King
5639c69d39
ENH: Removed unused code now that INSTALL_FILES and INSTALL_PROGRAMS are not targets.
2007-05-23 18:23:17 -04:00
Brad King
9d75da9eaf
ENH: Removed unused code now that INSTALL_FILES and INSTALL_PROGRAMS are not targets.
2007-05-23 18:22:52 -04:00
Brad King
ba7780a3c4
ENH: Fixed INSTALL_FILES and INSTALL_PROGRAMS commands to not create targets. No targets of type cmTarget::INSTALL_FILES or cmTarget::INSTALL_PROGRAMS are created, so we do not need to check for them everywhere anymore.
2007-05-23 15:40:12 -04:00
Alexander Neundorf
4878c00905
ENH: add the IMPORT keyword to ADD_EXECUTABLE(), which generates an
...
"imported" executable target. This can then be used e.g. with
ADD_CUSTOM_COMMAND() to generate stuff. It adds a second container for
"imported" targets, and FindTarget() now takes an additional argument bool
useImportedTargets to specify whether you also want to search in the
imported targets or only in the "normal" targets.
Alex
2007-05-22 10:24:59 -04:00
Brad King
92c0f41251
ENH: Use CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES from platform files to block link directories.
2007-05-18 11:36:23 -04:00
Alexander Neundorf
891f2130cf
COMP: fix link rules with nmake, the linker command has to be converted to shortpath form for nmake
...
Alex
2007-05-18 10:32:22 -04:00
Brad King
c25d2bfdd2
ENH: Added testing for custom command line arguments containing all special characters on the US keyboard. Fixed curly brace arguments on borland and % arguments in mingw32-make.
2007-05-17 10:53:18 -04:00
Brad King
bd78952748
BUG: Do not emit /usr/lib32 or /usr/lib64 as linker paths. Submitted by David Faure.
2007-05-16 09:07:53 -04:00
Bill Hoffman
76dd86b410
BUG: fix -D escaped quotes for watcom
2007-05-10 14:43:55 -04:00
Alexander Neundorf
7f11536704
ENH: now target names can be used in add_custom_command() and
...
add_custom_target() as COMMAND, and cmake will recognize them and replace
them with the actual output path of these executables. Also the dependency
will be added automatically. Test included.
ENH: moved TraceVSDependencies() to the end of GlobalGenerator::Configure(),
so it is done now in one central place
Alex
2007-05-09 08:25:45 -04:00
Bill Hoffman
39ccc4fb11
ENH: fix it so that the FRAMEWORK property does not break the building of normal shared libs on non-mac platforms
2007-05-08 11:53:39 -04:00
Bill Hoffman
9323a27989
ENH: initial support for creation of frameworks on Mac
2007-05-08 10:32:54 -04:00
Brad King
47159b69be
BUG: Fix ComputeLinkInformation. When using a loader_flag link item the full per-configuration path should be used. The fullPathLibs returned should refer to the import library if it was used. Since the full paths are used for dependencies the executable used with loader_flag should be returned also.
2007-04-18 09:56:06 -04:00
Brad King
4241e699c7
BUG: Cannot escape link items because some need the spaces to separate arguments. Instead just escape the argument to the loader flag.
2007-04-18 00:04:56 -04:00
Brad King
07b9423e7d
BUG: Fix ComputeLinkInformation for non-linked targets. Why is it called for utility targets anyway?
2007-04-17 23:16:35 -04:00
Brad King
f9f5772557
ENH: Added use of platform variable CMAKE_SHARED_MODULE_LOADER_<lang>_FLAG to add a special flag when linking a plugin to an executable that loads it.
2007-04-17 16:11:00 -04:00
Brad King
a017333d9a
ENH: Added option CMAKE_INSTALL_SO_NO_EXE on linux to choose whether the default permissions for shared libraries include the executable bit. This is necessary to support the conflicting policies of Debian and Fedora. These changes address bug#4805.
2007-04-10 11:22:15 -04:00
Bill Hoffman
5ed2141d12
ENH: make sure default /System framework is not added with -F
2007-03-30 10:53:02 -04:00
Brad King
5a32aa5919
ENH: Added target property ENABLE_EXPORTS for executable targets. It enables the executables for linking by loadable modules that import symbols from the executable. This finishes the executable import library support mentioned in bug #4210 .
2007-03-22 09:45:25 -04:00
Brad King
1f639ee76c
ENH: Added computation of object file names that are almost always short enough to not exceed the filesystem path length limitation. This is useful when a source file from outside the tree is referenced with a long full path. The object file name previously would contain the entire path which when combined with the build output directory could exceed the filesystem limit. Now CMake recognizes this case and replaces enough of the beginning of the full path to the source file with an md5sum of the replaced portion to make the name fit on disk. This addresses bug#4520.
2007-03-16 10:34:25 -04:00
Brad King
9da6f96d98
BUG: Reverting previous changes related to using an empty string for a relative path to the current directory. Too many places want the . version. Instead we can just convert the . to an empty string in the one place that motiviated the original change.
2007-03-14 16:29:10 -04:00
Brad King
a724f0d425
BUG: During relative path conversion if the remote and target paths are the same return the empty string instead of ".".
2007-03-14 13:36:24 -04:00
Brad King
d720036e61
BUG: Fix check of EXCLUDE_FROM_ALL property to use boolean type. This is required for installation of subdirectories to work.
2007-03-13 11:58:12 -04:00
Ken Martin
b99129d2d8
ENH: some code cleanup
2007-03-12 10:26:59 -04:00
Brad King
1e25f2b3db
BUG: Use real path subdirectory check instead of substring comparison to identify when paths are below the relative path tops. Otherwise when the build tree is next to the source tree with the same name plus a suffix the relative path from the binary to source tree is allowed even though it goes outside cmake-managed directories.
2007-03-09 17:15:13 -05:00
Brad King
54923d6ad8
ENH: Implemented new policy to choose the directory part of the object file name. This should keep the names looking as nice and short as possible. This partially addresses bug#4520.
2007-03-09 10:30:07 -05:00
Brad King
528f60f4a6
ENH: Added implib option to cmTarget::GetDirectory to support a separate directory containing the import library. This is an incremental step for bug#4210.
2007-03-09 09:30:16 -05:00
Brad King
4089c76890
BUG: Some calls to Convert() were converting for MAKEFILE but then passing the output to the build shell. The calls have now been converted to call Convert() with SHELL.
2007-03-08 10:31:03 -05:00
Brad King
2f2b5b2503
ENH: SetupPathConversions is now called automatically on demand.
2007-03-08 08:38:40 -05:00
Brad King
b90e241a31
ENH: Modified GetObjectFileNameWithoutTarget to use relative paths for object file names with sources above the current directory so long as the relative path conversion works.
2007-03-07 17:39:16 -05:00
Brad King
4036627487
ENH: Improved computation of RelativePathTopSource and RelativePathTopBinary to use higher relative path tops when the source directories jump around in a tree below the original source top.
2007-03-07 17:32:35 -05:00
Brad King
ad4055f3e2
ENH: Set RelativePathTopSource and RelativePathTopBinary independently for each local generator. Relative path conversion is safe within a tree as long as it does not go above the highest parent directory still managed by CMake.
2007-03-07 16:35:53 -05:00
Brad King
c841258170
COMP: Add missing include for assert.
2007-03-07 15:30:30 -05:00
Brad King
fc19882e8f
ENH: Moved ConvertToRelativePath from cmGlobalGenerator to cmLocalGenerator. This is in preparation for setting up each local generator to have its own RelativePathTopSource and RelativePathTopBinary based on its ancestor directories.
2007-03-07 15:15:46 -05:00
Bill Hoffman
1503caa14e
ENH: remove qnx special stuff that does not work
2007-02-28 17:26:20 -05:00
Bill Hoffman
ecbec236b1
ENH: one more pass at paths with spaces and parens
2007-02-28 14:29:26 -05:00
Bill Hoffman
90974ea1d6
ENH: go back to \ escapes for qnx
2007-02-26 11:56:13 -05:00
Bill Hoffman
4d5321f891
ENH: go back to EscapeForShell version
2007-02-26 11:41:41 -05:00
Bill Hoffman
512d5dd1e3
ENH: try and use \ for space and () escapes
2007-02-25 16:13:33 -05:00
Bill Hoffman
f0d5bdf86e
ENH: try another thing 3
2007-02-23 20:37:35 -05:00
Bill Hoffman
d7e57294fb
ENH: try another thing
2007-02-23 17:38:59 -05:00
Bill Hoffman
77ad2d62c2
ENH: add some debug stuff
2007-02-23 17:07:57 -05:00
Bill Hoffman
ae1d9e8b93
ENH: add some debug stuff
2007-02-23 16:44:13 -05:00
Andy Cedilnik
8ad3430931
ENH: Make EXCLUDE_FROM_ALL a target and directory properties. Also, make IsInAll use EXCLUDE_FROM_ALL. Also, enable the test that tests this
2007-02-23 09:46:27 -05:00
Bill Hoffman
48202ef623
ENH: hack put the hack back for qnx to try and fix spaces in the path
2007-02-22 17:34:14 -05:00
Bill Hoffman
0b350cbb97
ENH: undo hack and try to get dashboard back
2007-02-22 17:26:36 -05:00
Brad King
c1eae5b891
BUG: Hack to try working around a problem with spaces in an rpath on QNX.
2007-02-22 16:23:12 -05:00
Bill Hoffman
417b2073df
ENH: add new escape stuff
2007-02-22 15:33:49 -05:00
Bill Hoffman
5647e6e254
ENH: fix parens in the path with spaces in the path
2007-02-21 21:24:17 -05:00
Bill Hoffman
f7cd9f76ce
STYLE: fix line length issues
2007-02-17 08:46:25 -05:00
Bill Hoffman
66523061d0
ENH: remove warnings and debug statement
2007-02-17 08:38:41 -05:00
Bill Hoffman
ca0230a33e
ENH: check in initial conv library stuff
2007-02-16 16:12:17 -05:00
Bill Hoffman
8013ffd23b
ENH: do not use crazy long paths to object files for try compile
2007-01-31 16:49:25 -05:00
Bill Hoffman
37d979e0fc
ENH: this does not need to be safe as the value is checked
2007-01-23 14:28:40 -05:00
Bill Hoffman
0272c209a5
ENH: avoid crash, but do not make it an error if include flags is missing from a language
2007-01-23 13:08:40 -05:00
Bill Hoffman
91bd8099d8
ENH: make the include flag required for a language avoids seg fault
2007-01-23 11:39:22 -05:00
Ken Martin
27379d7b08
ENH: make properties a bit more formal with documentation and chaining
2006-12-07 09:45:32 -05:00
Bill Hoffman
26b527ac0f
ENH: fix bug in full path to target depends stuff
2006-12-06 23:05:10 -05:00
Brad King
d045ae45f2
BUG: Do not print empty install configuration repeatedly.
2006-12-04 13:54:32 -05:00
Bill Hoffman
ccb77b65c6
ENH: unify version stuff, get rid of it out of cmake and cmMakefile and only use cmVersion
2006-11-29 15:59:16 -05:00
Bill Hoffman
9baa760315
BUG: fix problem when a target name is the same as the output of a custom command
2006-11-25 10:59:26 -05:00
Brad King
54731fa2c8
ENH: Adding support for # escape in Watcom WMake.
2006-10-25 11:23:04 -04:00
Brad King
b155f3aa1c
ENH: Adding image version number (major.minor) property to windows binaries. Default is 0.0, but the VERSION target property may change the value. Windows now has first-class support for dll and exe versioning. This addresses bug#1219.
2006-10-16 18:17:14 -04:00
Brad King
023041362d
BUG: Do not try to compute the location of a non-library target for linking.
2006-10-13 10:03:54 -04:00
Brad King
86dd8579c5
BUG: TARGET_QUOTED should always be replaced if Target is set in the rule variables.
2006-10-10 14:13:35 -04:00
Brad King
bdf8e186e5
BUG: Need to match shared library names before static because some platforms have static name patterns that match their shared patterns but not vice versa. This is needed for implementing bug#1644 on cygwin.
2006-10-05 16:59:46 -04:00
Brad King
7ad07e0811
BUG: Fix link flags on cygwin shared libraries. This requires that the shared library prefix be supported in the link library regex.
2006-10-05 15:08:20 -04:00
Brad King
c11cf31c9b
ENH: Adding SYSTEM option to INCLUDE_DIRECTORIES command. This addresses bug #3462 .
2006-10-05 08:55:59 -04:00
Brad King
406f3554c7
BUG: Fixed display of custom command comments with quotes, dollars, and other special characters in them.
2006-10-04 18:52:29 -04:00
Brad King
9a1d4e92eb
BUG: Fix/cleanup custom commands and custom targets. Make empty comment strings work. Fix ZERO_CHECK target always out of date for debugging. Fix Makefile driving of custom commands in a custom target. Fix dependencies on custom targets not in ALL in VS generators.
2006-09-28 16:40:35 -04:00
Brad King
019dabc97f
BUG: MSYS makefile shell needs posix paths to executables in some cases and it does not hurt to do it always.
2006-09-28 10:37:19 -04:00
Brad King
0b135767d6
BUG: Do not filter system directories for include file dependencies.
2006-09-28 09:49:40 -04:00
Brad King
dd332a00cc
ENH: Re-implemented command line argument shell quoting to support several platforms with one code base.
2006-09-27 13:43:46 -04:00
Brad King
c1b4a0bf74
BUG: Disable new shell escape code until backward compatibility can be established in the new implementation.
2006-09-25 10:22:48 -04:00
Brad King
6d72bb5ae1
BUG: Need to escape spaces in custom command line arguments.
2006-09-21 15:35:41 -04:00
Brad King
45a44a70b3
BUG: Do not escape parens because we need to be able to reference make variables in the scripts.
2006-09-21 15:30:06 -04:00
Brad King
2459ceb076
BUG: Centralized generation of command line arguments in escaped form. This addresses bug#3786 for several platforms.
2006-09-21 15:14:06 -04:00
Brad King
4a3a9eb883
BUG: Do not look for linker language unless it is needed.
2006-09-16 11:52:00 -04:00
Brad King
1d0502927c
ENH: Adding support to link specifically to an archive or a shared library based on the file name specified. This fixes the problem of having -lfoo linking to libfoo.so even when it came from libfoo.a being specified.
2006-09-15 14:09:10 -04:00
Brad King
eef327b944
ENH: Adding install/local global target for Makefile generators. This runs installation only in the current directory and not subdirectories.
2006-08-29 10:03:47 -04:00
Bill Hoffman
8f1aaf28c1
ENH: make sure RuleVariable struct is initialized correctly, also make sure custom command targets do not crash cmake
2006-08-08 13:44:25 -04:00
Brad King
5cfa1b02ab
ENH: Added generation of rules to manually request preprocessed or generated assembly sources.
2006-08-07 23:25:21 -04:00
Brad King
88702ff442
ENH: Moved GetSourceFileLanguage up to cmLocalGenerator.
2006-08-03 09:26:07 -04:00
Brad King
9bf5af6e32
ENH: Moved unique object file name computation from cmLocalUnixMakefileGenerator3 up to cmLocalGenerator for use by all generators. Created cmLocalVisualStudioGenerator as superclass for all VS generators. Implemented on-demand unique object file name computation for VS 7 generator to avoid slow compiles when all sources are in subdirectories.
2006-07-11 11:41:38 -04:00
Brad King
b4542762a7
ENH: Added target property INSTALL_RPATH_USE_LINK_PATH to append the linker search path directories not inside the project to the INSTALL_RPATH automatically. The property is initialized by the variable CMAKE_INSTALL_RPATH_USE_LINK_PATH when the target is created.
2006-06-15 10:12:19 -04:00
Ken Martin
8e9a6beccc
ENH: centralized locaiton of CMakeFiles setting
2006-06-14 12:28:32 -04:00
Ken Martin
7dc8a92246
STYLE: fix line length
2006-05-12 11:56:09 -04:00
Brad King
50a0f71120
ENH: Added CONFIGURATIONS option to INSTALL command to allow per-configuration install rules.
2006-05-05 14:57:19 -04:00
Bill Hoffman
8d3d137dc9
ENH: make sure special vs ide path is only used for msvc_ide builds
2006-04-25 11:58:01 -04:00
Brad King
8c02cc6627
ENH: Added option CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE to put all in-project include directories before all out-of-project include directories.
2006-04-25 09:54:12 -04:00
Bill Hoffman
0005d625a0
ENH: add special windows CMAKE_MSVCIDE_RUN_PATH variable for adding to the path of vs IDE for running custom commands from cmake
2006-04-25 09:38:29 -04:00
Bill Hoffman
e6ef33f598
ENH: name pdb files for visual studio make based builds
2006-04-19 16:36:14 -04:00
Bill Hoffman
8fa5ed7300
ENH: fix java for ide builds again
2006-04-17 15:35:51 -04:00
Bill Hoffman
5ecfd3d4d3
ENH: fix java and add OBJECT_DIR support
2006-04-17 14:01:22 -04:00
Bill Hoffman
ed4974da55
ENH: enable test for java with IDE builds
2006-04-11 17:11:34 -04:00
Brad King
08289893b8
ENH: Split CMAKE_STANDARD_LIBRARIES into per-language variables CMAKE_<lang>_STANDARD_LIBRARIES. This is needed to get programmable language support working with Visual Studio generators. It makes sense anyway.
2006-04-11 16:55:49 -04:00
Brad King
bb014b0f4d
ENH: Restored implementation of AddCustomCommandToCreateObject. Updated it to use newer custom command functionality.
2006-04-11 14:53:57 -04:00
Brad King
ae2cbc346d
BUG: Install scripts should honor EXCLUDE_FROM_ALL options for subdirectories. This addresses bug#3100.
2006-04-11 13:32:48 -04:00
Brad King
acf33ba191
BUG: Do not add non-per-config subdirectory name of cmake target libraries as full path libs.
2006-04-11 11:40:24 -04:00
Brad King
d5719f22c1
ENH: Added support for multiple outputs generated by a single custom command. For Visual Studio generators the native tool provides support. For Xcode and Makefile generators a simple trick is used. The first output is considered primary and has the build rule attached. Other outputs simply depend on the first output with no build rule. During cmake_check_build_system CMake detects when a secondary output is missing and removes the primary output to make sure all outputs are regenerated. This approach always builds the custom command at the right time and only once even during parallel builds.
2006-04-11 11:06:19 -04:00
Brad King
8e39418f6c
BUG: Fixed cmOrderLinkDirectories to deal with raw link items that do not yet exist and correct drive letter case to avoid duplicate paths on windows. Fixed cmLocalGenerator to pass CMake targets as full paths to cmOrderLinkDirectories to make sure the ordering will pick up the proper target libraries.
2006-04-05 11:05:06 -04:00
Brad King
99ee1883d4
BUG: Removing part of earlier fix because it does not work with VS generators. It may be restored later after cmOrderLinkDirs is further fixed.
2006-04-04 17:14:20 -04:00
Brad King
57a9e26c15
BUG: Fixed cmOrderLinkDirectories to make sure cmake-built libraries are found properly. Also taking libraries that will be built but may not yet exist into account. The per-configuration subdirectories that are included by generators in the link path are checked for conflicting libraries also. Potentially conflicting libraries that are actually symlinks back to the desired library are no longer considered conflicting, which avoids bogus impossible ordering warnings.
2006-04-04 14:25:17 -04:00
Brad King
2301a025ea
ENH: Added global TargetManifest computation between Configure and Generate steps. This allows generators to know what other targets will exist on disk when the build completes.
2006-04-04 11:48:19 -04:00
Bill Hoffman
3c8e899102
ENH: add support for per config target LINK_FLAGS
2006-04-03 12:57:51 -04:00
Brad King
08b14163ee
ENH: Added named component installation implementation. Installation behavior should be unchanged unless -DCOMPONENT=<name> is specified when cmake_install.cmake is invoked.
2006-03-30 13:33:48 -05:00
Andy Cedilnik
93f5712a7d
COMP: Remove warnings
2006-03-28 16:25:29 -05:00
Bill Hoffman
f7c1723135
ENH: add support for universal binaries
2006-03-24 09:15:05 -05:00
Brad King
0376fe4b9b
ENH: Added support for linking to MS .lib libraries in MinGW.
2006-03-22 11:10:58 -05:00
Brad King
bcfca6e1c1
ENH: Enabling CMAKE_INCLUDE_CURRENT_DIR even for in-source builds to be more consistent with its name. This also makes double-quote and angle-bracket include styles (almost) identical.
2006-03-21 08:45:57 -05:00
Brad King
77c65b954e
BUG: Fixed generation of mismatched IF in install script. This bug was introduced during the m_ sweep.
2006-03-16 14:51:54 -05:00
Ken Martin
3d96e52261
STYLE: some m_ to this-> cleanup
2006-03-15 11:02:08 -05:00
Bill Hoffman
3f532f5489
ENH: add support for language flags at rule expansion time
2006-03-06 15:14:23 -05:00
Brad King
2b7e43961c
BUG: Fix for generated install scripts to support prefixes with trailing slashes or just a single slash.
2006-03-05 09:09:12 -05:00
Brad King
a2e136fd17
ENH: Added PERMISSIONS and RENAME options to the INSTALL command's FILES and PROGRAMS mode, and corresponding support to FILE(INSTALL). Default permissions for shared libraries on non-Windows/non-OSX platforms no longer has the execute bit set.
2006-03-03 18:44:32 -05:00
Brad King
586a9427d3
ENH: Created target property INSTALL_NAME_DIR initalized by CMAKE_INSTALL_NAME_DIR specifying the directory portion of the OSX install_name field in shared libraries. This is the OSX equivalent of RPATH.
2006-02-24 13:13:14 -05:00
Brad King
576f0b65c7
BUG: Fix generation of Xcode 2.0 and earlier projects to use CMAKE_BUILD_TYPE.
2006-02-24 11:13:31 -05:00
Andy Cedilnik
f119d6e4ef
COMP: Remove warnings
2006-02-24 10:56:39 -05:00
Bill Hoffman
39e636a4a4
ENH: change expand stuff to pass a struct for all the args
2006-02-20 13:42:18 -05:00
Brad King
518080136d
ENH: Implemented FILES and PROGRAMS forms of the INSTALL command as replacements for the INSTALL_FILES and INSTALL_PROGRAMS commands. This addresses the request for absolute path install destinations in bug#2691.
2006-02-19 18:47:13 -05:00
Brad King
96f0266228
ENH: Created new install script generation framework. The INSTALL command creates the generators which are later used by cmLocalGenerator to create the cmake_install.cmake files. A new target installation interface is provided by the INSTALL command which fixes several problems with the INSTALL_TARGETS command. See bug#2691. Bugs 1481 and 1695 are addressed by these changes.
2006-02-19 15:25:27 -05:00
Brad King
98a187a8d4
ENH: Automatic include directories should not be done by default as was just implemented. Instead a project may now set CMAKE_INCLUDE_CURRENT_DIR to get this behavior. The current source and binary directories are added automatically to the beginning of the include path in every directory. This simulates in-source behavior for double-quote includes when there are generated sources and headers in the directory.
2006-02-19 13:10:25 -05:00
Brad King
377f4e79b1
BUG: Remove trailing slashes from install destinations.
2006-02-18 16:47:28 -05:00
Brad King
644f6e83ee
COMP: Fixed shadowed variable warning.
2006-02-18 15:42:14 -05:00
Brad King
81677b3130
ENH: Generate import libraries for DLLs on Cygwin and MinGW.
2006-02-18 15:37:23 -05:00
Brad King
9ba0283870
ENH: If CMAKE_NO_AUTOMATIC_INCLUDE_DIRECTORIES is not set try to approximate in-source build include file behavior in an out-of-source build by adding the build tree directory corresponding to a source tree directory at the beginning of the include path. Also fixed VS6 and VS7 generators to use cmLocalGenerator's computation of include paths. The VS6 generator will now short-path the include directories if the total length is too long in order to try to avoid its truncation limit.
2006-02-18 11:51:23 -05:00
Brad King
537e2b4ed5
ENH: Implemented RPATH specification support. It is documented by the command SET_TARGET_PROPERTIES.
2006-02-16 15:19:00 -05:00
Brad King
b8a33fb424
ENH: Added INSTALL command as a placeholder for a future generic install specification interface. Currently it supports only a SCRIPT option specifying a script to run during the install stage.
2006-02-10 13:54:36 -05:00
Bill Hoffman
6cccf0ab30
ENH: fix bug for single char libraries
2006-02-10 10:11:16 -05:00
Bill Hoffman
347c5f4b46
ENH: add working directory support
2006-02-08 10:58:36 -05:00
Bill Hoffman
a2c1777300
COMP: fix warning
2006-01-24 07:58:55 -05:00
Bill Hoffman
a6a20d8ce2
ENH: fix warning
2006-01-23 17:24:18 -05:00
Bill Hoffman
7f237c51f4
ENH: fix problem with watcom and short paths and -I
2006-01-23 13:50:23 -05:00
Brad King
8340c0d186
ENH: Further centralized custom command dependency computation. Custom command dependencies in the source tree may now also be specified relative to the source directory.
2006-01-13 20:51:45 -05:00
Brad King
079826d367
COMP: Removed unused variables.
2006-01-13 19:35:16 -05:00
Brad King
327489ae59
COMP: Removed unused paramter from cmLocalGenerator::OutputLinkLibraries.
2006-01-13 18:33:51 -05:00
Brad King
22c62c9e65
BUG: Sweeping changes to cleanup computation of target names. This should
...
fix many bugs related to target names being computed inconsistently.
- Centralized computation of a target's file name to a method in
cmTarget. Now that global knowledge is always available the
*_CMAKE_PATH cache variables are no longer needed.
- Centralized computation of link library command lines and link
directory search order.
- Moved computation of link directories needed to link CMake targets
to be after evaluation of linking dependencies.
This also removed alot of duplicate code in which each version had its
own bugs.
This commit is surrounded by the tags
CMake-TargetNameCentralization1-pre
and
CMake-TargetNameCentralization1-post
so make the large set of changes easy to identify.
2006-01-13 18:18:32 -05:00
Bill Hoffman
82bb6fae0d
ENH: add framework support to FIND_FILE
2005-12-27 14:56:56 -05:00
Bill Hoffman
452925649a
ENH: add better support for framework linking
2005-12-26 13:14:19 -05:00
Bill Hoffman
f6588b7919
ENH: fix borland make clean targets before build, add new generators for msys and mingw
2005-12-22 16:42:36 -05:00
Brad King
163e3ff56c
ENH: Removed cmMakefile arguments from cmTarget methods because cmTarget has the ivar m_Makefile now. Re-implemented cmLocalUnixMakefileGenerator3::AppendAnyDepend to use the new global knowledge and avoid the need to look at the cache for information about other targets. This should fix problems with custom commands and executables with the OUTPUT_NAME set. Also the <target>_LIBRARY_TYPE cache variable is no longer needed at all and has been removed.
2005-12-14 10:47:33 -05:00
Andy Cedilnik
ea7c7bb34d
ENH: Allow the installer to overwrite the install prefix
2005-12-10 12:11:20 -05:00
Andy Cedilnik
34e7834451
ENH: Add support for output reguilar expression
2005-11-08 17:59:20 -05:00
Andy Cedilnik
fcce3ac0a1
ENH: Add a way for test to intentionally fail
2005-09-06 23:31:41 -04:00
Brad King
d392acb4e6
ENH: Added versioned executable support. This partially addresses bug#2143. Also made OUTPUT_NAME work when installing executables.
2005-08-17 16:11:18 -04:00
Bill Hoffman
e59e9d0e59
ENH: fix bug 2087 lib prefix stripped off on windows
2005-08-10 12:55:41 -04:00
Andy Cedilnik
bebc745824
ENH: Add set and get test propety command
2005-07-31 11:51:42 -04:00
Ken Martin
c6b011e35e
ENH: put cmake files intoa CMakeFiles subdir to clean up bin tree
2005-07-29 09:19:25 -04:00
Ken Martin
f85f919dbc
ENH: reduce the number of files produced still needs a bit more cleanup
2005-07-27 09:49:37 -04:00
Bill Hoffman
b8b298104b
ENH: make sure flags set in CC or CXX environment variables stay with the compiler
2005-07-20 15:44:55 -04:00
Bill Hoffman
44b54d2b94
ENH: fix for bug 992, mac bundle install fix
2005-07-14 16:00:40 -04:00
Bill Hoffman
1b115dc2e3
ENH: add -L as possible library flag
2005-07-13 16:24:16 -04:00
Ken Martin
d11707c6e6
BUG: fix for debug optimized link libraries
2005-07-05 09:00:20 -04:00
Ken Martin
369308ca76
ENH: make LOCATION an computed property of the target and get rid of a bunch of const junk
2005-06-22 09:06:46 -04:00
Ken Martin
708828dc37
ENH: removed old convert calls
2005-06-10 08:41:47 -04:00
Andy Cedilnik
6af66e8b20
ENH: Add capability to include files to DartTestfile.txt and add example of that
2005-06-07 09:57:05 -04:00
Ken Martin
a3a7f040c6
COMP: shut up warning
2005-05-13 15:50:42 -04:00
Ken Martin
8c65179339
ENH: warning fixes and some first steps in cleaning up the convert code
2005-05-13 09:54:30 -04:00
Andy Cedilnik
26d4dd174f
COMP: Remove warning
2005-04-25 09:59:59 -04:00
Andy Cedilnik
d395b563ed
ENH: Improve internal test handling by creating a test class. Command cmEnableTesting now only sets CMAKE_TESTING_ENABLED and cmAddTest only adds a test to the list. The actual test files are written by local generator. This way we can at some point in the future replace DartTestfile with some XML file
2005-04-24 15:59:51 -04:00
Brad King
1b71f4477b
ENH: Added cmTarget::GetBaseName and cmTarget::GetFullName methods and removed cmLocalGenerator::GetFullTargetName and cmLocalUnixMakefileGenerator2::GetBaseTargetName. This functionality is more sensibly implemented in cmTarget. It is also needed for an upcoming feature in which both the shared and static versions of a library will be removed before one is linked.
2005-04-22 15:23:21 -04:00
Bill Hoffman
c8cc20a1af
BUG: add missing header for borland
2005-04-12 15:11:54 -04:00
Bill Hoffman
1004073942
ENH: performance improvements
2005-04-12 13:27:07 -04:00
Ken Martin
ee7fbdf058
BUG: local gen was setting proj dir when it shouldnt
2005-04-12 09:36:18 -04:00
Bill Hoffman
e0fab29395
ENH: remove commented code
2005-03-22 07:27:10 -05:00
Ken Martin
345cf04012
ENH: big change that includes immediate subdir support, removing the notion of inherited commands, makefiles no longer read in the parent makefiles but instead inherit thier parent makefiles current settings
2005-03-18 10:41:41 -05:00
Ken Martin
791aa6052b
ENH: add support for out of source source
2005-03-14 11:29:15 -05:00
Brad King
ea258e9a1a
ENH: Converted some ConvertToRelativeOutputPath calls to ConvertToOptionallyRelativeOutputPath in preparation for making ConvertToRelativeOutputPath not check CMAKE_USE_RELATIVE_PATHS.
2005-02-24 16:25:47 -05:00
Brad King
cb48e0c161
ENH: Merged implementations of ConvertToRelative*Path methods. The main ConvertToRelativePath method is now in cmGlobalGenerator. It converts paths only if they are at least inside the deepest common directory between the top-level source and build trees. Each cmLocalGenerator instance calls this global method with its own output directory as the "local" argument from which paths are relative. Added separate ConvertToOptionallyRelative path that pays attention to the CMAKE_USE_RELATIVE_PATHS option.
2005-02-24 16:04:54 -05:00
Bill Hoffman
2ebbf64508
ENH: remove unused code
2005-02-24 14:27:16 -05:00
Bill Hoffman
ff812580eb
ENH: add a new library path ordering algorithm to make sure -L paths will pick the correct libraries if possible
2005-02-24 13:16:41 -05:00
Brad King
7c7b173042
ENH: Added better default install location for windows builds. The previous default /usr/local did not make much sense. Now "%SystemDrive%/Program Files/PROJECT_NAME" is used, which is the windows equivalent to /usr/local.
2005-02-22 15:22:40 -05:00
Brad King
39af9ee1e4
ENH: Updated implementation of custom commands. Multiple command lines are now supported effectively allowing entire scripts to be written. Also removed extra variable expansions and cleaned up passing of commands through to the generators. The command and individual arguments are now kept separate all the way until the generator writes them out. This cleans up alot of escaping issues.
2005-02-22 10:32:44 -05:00
Bill Hoffman
785b0dc012
ENH: all tests are passing for XCode
2005-02-18 13:32:51 -05:00
Bill Hoffman
35ec09480a
ENH: move AddFlags stuff up to LocalGenerator from LocalUnix generator
2005-02-02 13:19:57 -05:00
Brad King
a5ae290a5b
STYLE: Adjusted signature of cmGeneratedFileStream to make copy-if-different more explicity.
2004-11-03 07:51:51 -05:00