On Thu, Apr 21, 2011 at 9:48 AM, Maxime Lecourt <maxime.leco...@gmail.com>wrote:
> Hi, > > I'm currently trying to use add_custom_command, but I do not get any output > (it's working fine in other projects, with Bison and Flex). > > Basically, I have a CMakeLists.txt file with > > include(CMakeCallPerl.cmake) > PERL_SCRIPT("${GLISS_PATH}/nmp2nml.pl" "ppc.nmp") > > > And in my CMakeCallPerl.cmake file : > > find_program(PERL perl) > IF(PERL) > MACRO(PERL_SCRIPT SCRIPT FILENAME) > GET_FILENAME_COMPONENT(PATH "${FILENAME}" PATH) > GET_FILENAME_COMPONENT(PREFIX "${FILENAME}" NAME_WE) > SET(OUTFILE "${PREFIX}.nml") > MESSAGE(STATUS "${PERL} ${SCRIPT} ${FILENAME} ${OUTFILE}") > ADD_CUSTOM_COMMAND( > OUTPUT "${OUTFILE}" > COMMAND "${PERL}" > "${SCRIPT}" > "${FILENAME}" > "${OUTFILE}" > ) > SET_SOURCE_FILES_PROPERTIES("${OUTFILE}" PROPERTIES GENERATED TRUE) > ENDMACRO(PERL_SCRIPT) > ENDIF(PERL) > > What am I doing wrong ? > > Copy/Pasting the MESSAGE output in command line, everything works fine, but > not when compiling after generating with CMake. > (it looks like this : > C:/Win16App/rational/TestRealTime/bin/intel/win32/perl.exe > D:/workspace/ppc/../gliss/nmp2nml.pl ppc.nmp ppc.nml) > There is also no mention for Perl in any CMake generated file. > Using Windows XP and MinGW > > Regards, > > Maxime > > _______________________________________________ > 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 > The output of the custom command needs to be used by something in order for a build to trigger it... After calling your macro, you can depend on the output of it with a custom target if there is no other dependency on it: add_custom_target(run_perl_scripts ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/file1.nml ${CMAKE_CURRENT_BINARY_DIR}/file2.nml ... ) Then a "make" will trigger running perl. You should also probably add: DEPENDS ${FILENAME} ${SCRIPT} to the custom command so that it re-runs if the input or the script changes... HTH, David
_______________________________________________ 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