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 : Sélectionner tout - Visualiser dans une fenêtre à part
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})