On Wed, Sep 16, 2009 at 04:27:48PM -0400, Eric Tellefsen wrote: > Solaris make
My condolences :p. > My problem has to do with the ARGS section of the custom command. > Specifically the 'legacy' Makefile uses an argument --include-regex > "#../../XML/Types/##" in order to remove this prefix from the generated > HXX files, where applicable. > > ----------- Code which invokes macro > SET( STUBDIR ${CMAKE_BINARY_DIR}/Stubs ) > SET( TYPE_XSD_DIR ${CMAKE_CURRENT_SOURCE_DIR} ) > SET( TYPE_REGEX_FLAG "#../../XML/Types/##" ) > > XSDGenCXXSources( TypesOutputFiles > "${TYPE_REGEX_FLAG}" > "${TYPE_XSD_DIR}" > "${STUBDIR}" > "${CMAKE_CURRENT_SOURCE_DIR}" > ) > > ----------- Macro ----------------------------- > macro ( XSDGenCXXSources OUTPUT_FILES REGEX XSD_DIR OUTPUT_DIR Working_Dir > ) > > SET( XSD_EXE $ENV{CODE_SYNTHESIS_HOME}/bin/xsd ) > > ADD_CUSTOM_COMMAND( > OUTPUT ${${OUTPUT_FILES}} > COMMAND mkdir > ARGS -p ${OUTPUT_DIR} > COMMAND ${XSD_EXE} > ARGS cxx-tree --generate-serialization --output-dir > ${OUTPUT_DIR} --include-regex " ${REGEX} " ${XSD_DIR}/*.xsd > COMMENT "Generating CXX files from ${XSD_DIR} and placing them > in ${OUTPUT_DIR}" > WORKING DIRECTORY ${Working_Dir} > ) > endmacro ( XSDGenCXXSources ) Usually, problems like this are caused by improper quoting. First, try the VERBATIM flag to add_custom_command. You can inspect the command line CMake generates for your custom command by doing make VERBOSE=1. Hopefully this will give you a clue as to what is getting mangled. Finally, arguments to macros occasionally do funny things since they aren't "real" variables, but that's probably not the problem here. tyler _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake