ENH: Adding test for auto-object-depends feature. It has been tested with the Makefile generator. Hopefully this will work for the Visual Studio and XCode generators.

This commit is contained in:
Brad King 2005-08-17 11:48:05 -04:00
parent f4920b8369
commit 1774d306ee
3 changed files with 20 additions and 2 deletions

View File

@ -77,6 +77,17 @@ ADD_CUSTOM_COMMAND(OUTPUT ${PROJECT_BINARY_DIR}/doc1.h
COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_BINARY_DIR}/doc1temp.h COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_BINARY_DIR}/doc1temp.h
) )
# Add custom command to generate foo.h.
ADD_CUSTOM_COMMAND(OUTPUT ${PROJECT_BINARY_DIR}/foo.h
DEPENDS ${PROJECT_SOURCE_DIR}/foo.h.in
COMMAND ${CMAKE_COMMAND} -E echo " Copying foo.h.in to foo.h."
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/foo.h.in
${PROJECT_BINARY_DIR}/foo.h
)
# Add the location of foo.h to the include path.
INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR})
# Add a custom target to drive generation of doc1.h. # Add a custom target to drive generation of doc1.h.
ADD_CUSTOM_TARGET(TDocument ALL ADD_CUSTOM_TARGET(TDocument ALL
COMMAND ${CMAKE_COMMAND} -E echo " Copying doc1.h to doc2.h." COMMAND ${CMAKE_COMMAND} -E echo " Copying doc1.h to doc2.h."
@ -118,8 +129,13 @@ ADD_CUSTOM_COMMAND(OUTPUT ${PROJECT_BINARY_DIR}/foo.c
${PROJECT_BINARY_DIR}/foo.c ${PROJECT_BINARY_DIR}/foo.c
) )
SET_SOURCE_FILES_PROPERTIES(${PROJECT_BINARY_DIR}/foo.c PROPERTIES # This object dependency is removed to test the new
OBJECT_DEPENDS ${PROJECT_BINARY_DIR}/doc1.h) # auto-object-depends feature. If the feature is removed these lines
# must be restored.
#SET_SOURCE_FILES_PROPERTIES(${PROJECT_BINARY_DIR}/foo.c PROPERTIES
# OBJECT_DEPENDS ${PROJECT_BINARY_DIR}/doc1.h)
#SET_SOURCE_FILES_PROPERTIES(${PROJECT_BINARY_DIR}/foo.c PROPERTIES
# OBJECT_DEPENDS ${PROJECT_BINARY_DIR}/foo.h)
# add the library # add the library
ADD_EXECUTABLE(CustomCommand ADD_EXECUTABLE(CustomCommand

View File

@ -0,0 +1 @@
// Empty header file just used to test header generation.

View File

@ -1,4 +1,5 @@
#include "doc1.h" #include "doc1.h"
#include "foo.h"
int generated(); int generated();
int wrapped(); int wrapped();