4
function( configure_file_buildtime filename out_filename )
7
set( regex_1 "^[^@]*(@[^@]+@[^@]*)+[^@]*$")
9
file ( STRINGS "${filename}" results REGEX "${regex_1}" )
12
foreach( line ${results})
14
set( regex_2 "^[^@]*@([^@]+)@(.*)$" )
16
string( REGEX MATCH "${regex_2}" line_match "${line}" )
17
list( APPEND vars ${CMAKE_MATCH_1} )
18
while( CMAKE_MATCH_1 )
19
string( REGEX MATCH "${regex_2}" line_match "${CMAKE_MATCH_2}" )
20
list( APPEND vars ${CMAKE_MATCH_1} )
24
list( REMOVE_DUPLICATES vars )
31
set( CONFIGUREBUILDTIME_filename ${filename} )
32
set( CONFIGUREBUILDTIME_out_filename ${out_filename} )
34
list( APPEND vars CONFIGUREBUILDTIME_filename CONFIGUREBUILDTIME_out_filename )
36
VariableListToArgs( vars configure_vars )
38
file( WRITE "${CMAKE_BINARY_DIR}/CMake/configure_file_buildtime.cmake"
39
"configure_file( \"\${CONFIGUREBUILDTIME_filename}\" \"\${CONFIGUREBUILDTIME_out_filename}\" )" )
41
set( cmd ${CMAKE_COMMAND} "${configure_vars}" -P "${CMAKE_BINARY_DIR}/CMake/configure_file_buildtime.cmake")
43
if( TARGET ConfigureFileBuildtime )
44
add_custom_command( TARGET ConfigureFileBuildtime
46
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
47
COMMENT "BuildTime Configuration of ${filename} to ${out_filename}"
52
OUTPUT "${out_filename}"
53
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
55
COMMENT "BuildTime Configuration of ${filename} to ${out_filename}"
58
add_custom_target(ConfigureFileBuildtime ALL DEPENDS "${out_filename}" )