File: sitkConfigureFileBuildtime.cmake

package info (click to toggle)
simpleitk 1.0.1-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 75,056 kB
  • sloc: cpp: 25,403; python: 3,060; sh: 1,131; ansic: 369; java: 260; cs: 215; makefile: 51; ruby: 47; tcl: 22
file content (61 lines) | stat: -rw-r--r-- 1,690 bytes parent folder | download
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61

include(VariableList)

function( configure_file_buildtime filename out_filename )


set( regex_1 "^[^@]*(@[^@]+@[^@]*)+[^@]*$")

file ( STRINGS "${filename}" results REGEX "${regex_1}" )
set( vars "" )

foreach( line ${results})

  set( regex_2 "^[^@]*@([^@]+)@(.*)$" )

  string( REGEX MATCH "${regex_2}" line_match "${line}" )
  list( APPEND vars ${CMAKE_MATCH_1} )
  while( CMAKE_MATCH_1 )
    string( REGEX MATCH "${regex_2}" line_match  "${CMAKE_MATCH_2}" )
    list( APPEND vars ${CMAKE_MATCH_1} )
  endwhile()
    
  list( SORT vars )
  list( REMOVE_DUPLICATES vars )



  
endforeach()

set( CONFIGUREBUILDTIME_filename ${filename} )
set( CONFIGUREBUILDTIME_out_filename ${out_filename} )

list( APPEND vars CONFIGUREBUILDTIME_filename CONFIGUREBUILDTIME_out_filename )

VariableListToArgs( vars configure_vars )

file( WRITE "${CMAKE_BINARY_DIR}/CMake/configure_file_buildtime.cmake"
  "configure_file( \"\${CONFIGUREBUILDTIME_filename}\" \"\${CONFIGUREBUILDTIME_out_filename}\" )" )

set( cmd ${CMAKE_COMMAND} "${configure_vars}"  -P "${CMAKE_BINARY_DIR}/CMake/configure_file_buildtime.cmake")

if( TARGET ConfigureFileBuildtime )
  add_custom_command( TARGET ConfigureFileBuildtime
    PRE_BUILD
    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
    COMMENT "BuildTime Configuration of ${filename} to ${out_filename}"
    COMMAND  ${cmd}
    )
else()
  add_custom_command(
    OUTPUT "${out_filename}"
    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
    DEPENDS "${filename}"
    COMMENT "BuildTime Configuration of ${filename} to ${out_filename}"
    COMMAND  ${cmd}
    )
  add_custom_target(ConfigureFileBuildtime ALL DEPENDS "${out_filename}" )
endif()

endfunction()