Philippe Poilbarbe wrote:
But now as I do it correctly :), the target "extract_gshhs" (I gave
another name in actual file) has no dependency whatever I put
after DEPENDS or by mean of ADD_DEPENDENCIES
command the only dependency generated in build.make is
for build.make itself. The other targets like gshhs_f.b are
correct but not connected to any other:
[snip]
ADD_CUSTOM_COMMAND(
OUTPUT ${BRATHL_UNITFILE}
COMMAND BuildBrathlUnitFile.pl "${UDUNITS_DAT_FILE}"
${BRATHL_UNITFILE}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/BuildBrathlUnitFile.pl
"${UDUNITS_DAT_FILE}"
COMMENT "Unit file specific to BRATHL")
INSTALL_FILES(/share/brathl FILES ${BRATHL_UNITFILE})
SET(TO_CLEAN ${BRATHL_UNITFILE})
MACRO (EXPAND_GSHHS PRECISION)
SET(EXTRACTED_FILE "gshhs_${PRECISION}.b")
ADD_CUSTOM_COMMAND(
OUTPUT ${EXTRACTED_FILE}
COMMAND UnzipFile.pl gshhs_data_files.zip ${EXTRACTED_FILE}
DEPENDS gshhs_data_files.zip)
INSTALL_FILES(/share/brathl FILES ${EXTRACTED_FILE})
SET(TO_CLEAN @TO_CLEAN@ ${EXTRACTED_FILE})
ENDMACRO (EXPAND_GSHHS)
Use this to build up the dependency list:
SET(TO_CLEAN ${TO_CLEAN} ${EXTRACTED_FILE})
ADD_CUSTOM_TARGET(build_data_files ALL DEPENDS @TO_CLEAN@)
and this to reference it:
ADD_CUSTOM_TARGET(build_data_files ALL DEPENDS ${TO_CLEAN})
The @ syntax is meant only for use in the input files to CONFIGURE_FILE.
It was accidentally supported in CMake code previously but is no
longer reliable.
# This line has nothing to do with actual make file it is just
# for testproblem with CMake
ADD_DEPENDENCIES(build_data_files ${CMAKE_CURRENT_SOURCE_DIR}/nothing
${CMAKE_CURRENT_SOURCE_DIR}/existing just_to_see)
This will do nothing unless there are other top-level targets called
"just_to_see", etc. Again, see the command's documentation (which is
much clearer in CMake 2.2 than previously).
SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES
"${TO_CLEAN}")
If you are using CMake 2.2 or above the output files of custom commands
are automatically included in the list to be cleaned.
-Brad
_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake