summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2008-06-04 16:10:59 (GMT)
committerBrad King <brad.king@kitware.com>2008-06-04 16:10:59 (GMT)
commit306e3e573fe409c0818fa069fd7e625c19713ed9 (patch)
tree3ae92cbbe3ec500a83632d45259e4a47018b134b
parent7fc72e6471f641a9c08fe85c2c7d24eda75d10db (diff)
downloadCMake-306e3e573fe409c0818fa069fd7e625c19713ed9.zip
CMake-306e3e573fe409c0818fa069fd7e625c19713ed9.tar.gz
CMake-306e3e573fe409c0818fa069fd7e625c19713ed9.tar.bz2
ENH: Add test for make variable replacement in a custom command with the VERBATIM option.
-rw-r--r--Tests/CustomCommand/CMakeLists.txt2
-rw-r--r--Tests/CustomCommand/wrapper.cxx12
2 files changed, 14 insertions, 0 deletions
diff --git a/Tests/CustomCommand/CMakeLists.txt b/Tests/CustomCommand/CMakeLists.txt
index 7e9f29c..5d785bc 100644
--- a/Tests/CustomCommand/CMakeLists.txt
+++ b/Tests/CustomCommand/CMakeLists.txt
@@ -42,6 +42,8 @@ ADD_CUSTOM_COMMAND(
MAIN_DEPENDENCY ${PROJECT_SOURCE_DIR}/wrapped.h
COMMAND ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/wrapper
${PROJECT_BINARY_DIR}/wrapped.c ${PROJECT_BINARY_DIR}/wrapped_help.c
+ ${CMAKE_CFG_INTDIR} # this argument tests passing of the configuration
+ VERBATIM # passing of configuration should work in this mode
)
################################################################
diff --git a/Tests/CustomCommand/wrapper.cxx b/Tests/CustomCommand/wrapper.cxx
index 3ad0794..97912de 100644
--- a/Tests/CustomCommand/wrapper.cxx
+++ b/Tests/CustomCommand/wrapper.cxx
@@ -1,4 +1,5 @@
#include <stdio.h>
+#include <string.h>
int main(int argc, char *argv[])
{
@@ -14,5 +15,16 @@ int main(int argc, char *argv[])
fp = fopen(argv[2],"w");
fprintf(fp,"int wrapped_help() { return 5; }\n");
fclose(fp);
+#ifdef CMAKE_INTDIR
+ const char* cfg = (argc >= 4)? argv[3] : "";
+ if(strcmp(cfg, CMAKE_INTDIR) != 0)
+ {
+ fprintf(stderr,
+ "Did not receive expected configuration argument:\n"
+ " expected [" CMAKE_INTDIR "]\n"
+ " received [%s]\n", cfg);
+ return 1;
+ }
+#endif
return 0;
}