Brad King
128605054a
Normalize slashes of add_custom_(command|target) DEPENDS ( #11973 )
...
All commands accepting file paths should normalize the slashes so that
the string-represented names can be compared reliably. The commands
add_library and add_executable have done this for years. We taught
add_custom_command to normalize its OUTPUT names in commit a75a0a14
(Normalize add_custom_command OUTPUT names, 2010-12-15). We handled a
special case of the DEPENDS option in commit 7befc007
(Handle trailing
slashes on add_custom_command DEPENDS, 2011-01-26).
Teach both add_custom_command and add_custom_target to normalize slashes
of DEPENDS files up front. This approach subsumes the above-mentioned
special case so remove the one line added for it but keep its test.
Extend the CustomCommand test to check that slash count mismatches
between custom command OUTPUT and DEPENDS can still be linked correctly.
2011-03-30 09:52:07 -04:00
Brad King
88548a45fb
Handle relative WORKING_DIRECTORY in add_custom_(command|target)
...
This also fixes handling of trailing slashes in the directory name.
2011-01-26 18:02:02 -05:00
Brad King
a75a0a1448
Normalize add_custom_command OUTPUT names ( #10485 )
...
Previously the OUTPUT arguments of add_custom_command were not
slash-normalized but those of add_library and add_executable were.
This caused the example
add_custom_command(OUTPUT a//b.c ...)
add_library(... a//b.c ...)
to fail at build time with "no rule to make a/b.c". Fix this and modify
the CustomCommand test to try it.
2010-12-15 08:44:57 -05:00
Brad King
96afb12087
Convert CMake to OSI-approved BSD License
...
This converts the CMake license to a pure 3-clause OSI-approved BSD
License. We drop the previous license clause requiring modified
versions to be plainly marked. We also update the CMake copyright to
cover the full development time range.
2009-09-28 11:43:28 -04:00
Brad King
bed3ac8741
ENH: Remove SKIP_RULE_DEPENDS option from add_custom_command()
...
- Option was recently added but never released.
- Custom commands no longer depend on build.make so we do
not need the option.
- Rule hashes now take care of rebuilding when rules change
so the dependency is not needed.
2008-06-02 16:45:07 -04:00
Brad King
600e5e274e
ENH: Add SKIP_RULE_DEPENDS option for add_custom_command()
...
- Allows make rules to be created with no dependencies.
- Such rules will not re-run even if the commands themselves change.
- Useful to create rules that run only if the output is missing.
2008-05-14 11:38:47 -04:00
Brad King
e9503a174e
ENH: Make add_custom_command interpret relative OUTPUT locations with respect to the build tre instead of the source tree. This can greatly simplify user code since generating a file will not need to reference CMAKE_CURRENT_BINARY_DIR. The new behavior is what users expect 99% of the time.
2008-01-30 11:22:10 -05:00
Ken Martin
0e69d38004
ENH: add return and break support to cmake, also change basic command invocation signature to be able to return extra informaiton via the cmExecutionStatus class
2008-01-23 10:28:26 -05:00
Brad King
d7a5d4c191
ENH: Added IMPLICIT_DEPENDS option to ADD_CUSTOM_COMMAND. It currently works only for Makefile generators. It allows a custom command to have implicit dependencies in the form of C or CXX sources.
2007-09-17 10:50:46 -04:00
Brad King
2dfa2ba888
ENH: Added APPEND option to ADD_CUSTOM_COMMAND to allow extra dependencies to be connected later. This is useful to create one rule and then have a macro add things to it later. This addresses bug#2151.
2006-10-04 15:24:26 -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
d01b6f1281
ENH: Added VERBATIM option to ADD_CUSTOM_COMMAND and ADD_CUSTOM_TARGET commands. This option enables full escaping of custom command arguments on all platforms. See bug#3786.
2006-09-28 11:30:49 -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
Andy Cedilnik
ee1975570e
ENH: Allow blocking of writing into the source tree
2006-03-22 14:40:36 -05:00
Ken Martin
3d96e52261
STYLE: some m_ to this-> cleanup
2006-03-15 11:02:08 -05:00
Andy Cedilnik
634343c3e8
STYLE: Fix some style issues
2006-03-10 13:06:26 -05:00
Bill Hoffman
ccdca71332
ENH: fix broken tests
2006-02-08 15:37:54 -05:00
Bill Hoffman
347c5f4b46
ENH: add working directory support
2006-02-08 10:58:36 -05:00
Ken Martin
fd05925bda
ENH: fix for earlier fix on source with relative path
2005-08-08 13:28:12 -04:00
Brad King
bb043289d0
BUG: Do not convert SOURCE argument from relative to full path. It breaks the old-style SOURCE==TARGET trick and the SOURCE argument is only present for old-style commands anyway. This addresses bug#2120.
2005-08-08 12:00:42 -04:00
Ken Martin
91730c6005
ENH: slightly modified version of Alex's relative path arguments for custom commands
2005-07-08 11:51:21 -04:00
Brad King
289429cd00
ENH: Added check for invalid characters in output name.
2005-03-22 08:36: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
Andy Cedilnik
4ef0f1414c
ENH: Fix typo: Bug #100 - Spelling correction to an error message
2003-07-29 07:01:56 -04:00
Bill Hoffman
aeab59d9e7
ENH: better error checking
2003-07-15 12:52:16 -04:00
Ken Martin
ba68f771b3
yikes added new custom command support
2003-06-03 10:30:23 -04:00
Brad King
4888c088ae
ENH: Moved ExpandListVariables out of individual commands. Argument evaluation rules are now very consistent. Double quotes can always be used to create exactly one argument, regardless of contents inside.
2002-12-11 18:13:33 -05:00
Andy Cedilnik
3893ee72d2
Add comment support, so that you can see in build process what the custom command does
2002-12-10 16:47:37 -05:00
Brad King
1f6a3c67b1
ENH: Added reference to Copyright.txt. Removed old reference to ITK copyright. Changed program name to CMake instead of Insight in source file header. Also removed tabs.
2002-10-23 18:03:27 -04:00
Ken Martin
4dec2a174a
remove unused variables
2002-09-15 09:54:08 -04:00
Bill Hoffman
0a3d0d24fd
ENH: add list expansion back
2002-05-22 13:20:54 -04:00
Bill Hoffman
0415b58573
ENH: backwards compatible for VTK 4.0, add cmake version requires
2002-04-17 16:16:06 -04:00
Sebastien Barre
9b8926925b
ENH: use target as source if source is empty
2002-04-11 10:05:47 -04:00
Bill Hoffman
7d76de4403
make sure ; expansion is done in all commands
2002-03-29 14:20:32 -05:00
Bill Hoffman
4651dbcfc6
ENH: expand variables in arguments before the commands get them
2002-03-05 18:41:24 -05:00
Will Schroeder
a6a43d5320
ENH:Updated copyright
2002-01-21 15:30:43 -05:00
Sebastien Barre
e0d02e10b5
Remove hack.
2002-01-16 17:29:24 -05:00
Andy Cedilnik
16977f33f2
Hack to make it work almost like before
2002-01-16 17:26:09 -05:00
Andy Cedilnik
58ee855503
Fix add custom command so that it actually executes the code
2002-01-03 16:02:43 -05:00
Sebastien Barre
61a66c2645
SOURCE, COMMAND, TARGET are required now
2001-11-09 10:42:16 -05:00
Sebastien Barre
6b5e54744c
Reimplement code. Since a custom command is very flexible and might be extended in the future, make all arguments prefixed with arg type, make ordering irrelevant and potentially all args optional.
2001-11-09 10:33:22 -05:00
Sebastien Barre
e17724279e
Fix number of params and expand vars in all args
2001-11-08 14:34:51 -05:00
Andy Cedilnik
39766efaaa
Added accessor for add custom command
2001-11-07 16:47:38 -05:00