CMake execution que si modification
Bonjour :),
J'ai un problème :( que j'espere vous pourrez m'aider à résoudre.
Mon but est de convertir des xml en cpp+h (via un script) uniquement si les cpp correspondant n'ont pas déjà été convertie ou que les xml est plus récent que cpp déjà convertie.
Mais à chaque appel de make les xml sont converties en cpp :( .
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| set(FAKE_TARGET fakeTarget)
#Recuperation de tous les xml
FILE(GLOB inFiles RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}"
"${CMAKE_CURRENT_SOURCE_DIR}/avc/*.xml")
#Conversion de chacun des xml en CPP+H
FOREACH(infileName ${inFiles})
MESSAGE("Process file XML: ${infileName}")
STRING(REGEX REPLACE "avc/" "" outfileName "${infileName}")
STRING(REGEX REPLACE ".xml" "" fileName "${outfileName}")
SET(cppfile "avc/src/${fileName}.cpp")
if(NOT EXISTS ${cppfile} OR ${infileName} IS_NEWER_THAN ${cppfile} )
add_custom_target(
fakeTarget
COMMAND perl convert.pl ${infileName}
COMMENT tututututu
)
endif()
ENDFOREACH(infileName)
file(
GLOB_RECURSE
source_files
src/*
avc/src/*
)
add_executable(
my_exe
${source_files}
)
add_dependencies(my_exe ${FAKE_TARGET}) |