mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 13:30:52 -05:00 
			
		
		
		
	Also added new sample files to samples/CMakeLists.txt git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7210 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
		
			
				
	
	
		
			108 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			108 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
string (REPLACE " " ";" FILES ${FILES}) # make back into a list
 | 
						|
 | 
						|
function(JOIN VALUES GLUE OUTPUT)
 | 
						|
  string (REGEX REPLACE "([^\\]|^);" "\\1${GLUE}" _TMP_STR "${VALUES}")
 | 
						|
  string (REGEX REPLACE "[\\](.)" "\\1" _TMP_STR "${_TMP_STR}") #fixes escaping
 | 
						|
  set (${OUTPUT} "${_TMP_STR}" PARENT_SCOPE)
 | 
						|
endfunction()
 | 
						|
 | 
						|
function (indent)
 | 
						|
  foreach (temp RANGE ${level})
 | 
						|
    file (APPEND ${contents_file} "  ")
 | 
						|
  endforeach ()
 | 
						|
endfunction ()
 | 
						|
 | 
						|
function (end_entry)
 | 
						|
  file (APPEND ${contents_file} "\n")
 | 
						|
  set(first 0 PARENT_SCOPE)
 | 
						|
  math (EXPR level "${level} - 1")
 | 
						|
  indent ()
 | 
						|
  file (APPEND ${contents_file} "]\n")
 | 
						|
  math (EXPR level "${level} - 2")
 | 
						|
  indent ()
 | 
						|
  file (APPEND ${contents_file} "}")
 | 
						|
  string (FIND "${dirs}" "${cwd}" pos)
 | 
						|
  set (level ${level} PARENT_SCOPE)
 | 
						|
endfunction ()
 | 
						|
 | 
						|
file (WRITE ${contents_file} "[")
 | 
						|
set (cwd)
 | 
						|
set (level 0)
 | 
						|
set (first 1)
 | 
						|
list (SORT FILES)
 | 
						|
foreach (file IN LISTS FILES)
 | 
						|
  string (REGEX MATCHALL "[^/]*/" dirs "${file}")
 | 
						|
  string (REPLACE "/" "" dirs "${dirs}")
 | 
						|
  string (REGEX MATCH "[^/]*$" name "${file}")
 | 
						|
  string (FIND "${dirs}" "${cwd}" pos)
 | 
						|
  list (LENGTH cwd cwd_count)
 | 
						|
  if (${pos} EQUAL 0)
 | 
						|
    # same root
 | 
						|
    while (${cwd_count} GREATER 0)
 | 
						|
      list (REMOVE_AT dirs 0)
 | 
						|
      math (EXPR cwd_count "${cwd_count} - 1")
 | 
						|
    endwhile ()
 | 
						|
  else ()
 | 
						|
    # reduce cwd until matched
 | 
						|
    while ((NOT ${pos} EQUAL 0) AND ${cwd_count} GREATER 0)
 | 
						|
      math (EXPR cwd_count "${cwd_count} - 1")
 | 
						|
      list (REMOVE_AT cwd ${cwd_count})
 | 
						|
      string (FIND "${dirs}" "${cwd}" pos)
 | 
						|
      end_entry ()
 | 
						|
    endwhile ()
 | 
						|
    # back to same root
 | 
						|
    while (${cwd_count} GREATER 0)
 | 
						|
      list (REMOVE_AT dirs 0)
 | 
						|
      math (EXPR cwd_count "${cwd_count} - 1")
 | 
						|
    endwhile ()
 | 
						|
  endif ()
 | 
						|
  list (LENGTH cwd cwd_count)
 | 
						|
  list (LENGTH dirs path_count)
 | 
						|
  while (${path_count} GREATER 0)
 | 
						|
    list (GET dirs 0 dir)
 | 
						|
    list (APPEND cwd "${dir}")
 | 
						|
    list (REMOVE_AT dirs 0)
 | 
						|
    if (${first})
 | 
						|
      file (APPEND ${contents_file} "\n")
 | 
						|
      set (first 0)
 | 
						|
    else ()
 | 
						|
      file (APPEND ${contents_file} ",\n")
 | 
						|
    endif ()
 | 
						|
    indent ()
 | 
						|
    file (APPEND ${contents_file} "{\n")
 | 
						|
    math (EXPR level "${level} + 1")
 | 
						|
    indent ()
 | 
						|
    file (APPEND ${contents_file} "\"type\": \"directory\",\n")
 | 
						|
    indent ()
 | 
						|
    file (APPEND ${contents_file} "\"name\":  \"${dir}\",\n")
 | 
						|
    indent ()
 | 
						|
    file (APPEND ${contents_file} "\"entries\": [")
 | 
						|
    set (first 1)
 | 
						|
    math (EXPR level "${level} + 2")
 | 
						|
    math (EXPR path_count "${path_count} - 1")
 | 
						|
  endwhile ()
 | 
						|
  JOIN ("${cwd}" "/" path)
 | 
						|
  file (COPY "${file}" DESTINATION "${DEST}/web/samples/${path}")
 | 
						|
  if (${first})
 | 
						|
    file (APPEND ${contents_file} "\n")
 | 
						|
    set (first 0)
 | 
						|
  else ()
 | 
						|
    file (APPEND ${contents_file} ",\n")
 | 
						|
  endif ()
 | 
						|
  indent ()
 | 
						|
  file (APPEND ${contents_file} "{\n")
 | 
						|
  math (EXPR level "${level} + 1")
 | 
						|
  indent ()
 | 
						|
  file (APPEND ${contents_file} "\"type\": \"file\",\n")
 | 
						|
  indent ()
 | 
						|
  file (APPEND ${contents_file} "\"name\": \"${name}\"\n")
 | 
						|
  math (EXPR level "${level} - 1")
 | 
						|
  indent ()
 | 
						|
  file (APPEND ${contents_file} "}")
 | 
						|
  set (first 0)
 | 
						|
endforeach ()
 | 
						|
if (${level} GREATER 1)
 | 
						|
  end_entry ()
 | 
						|
endif ()
 | 
						|
file (APPEND ${contents_file} "\n]\n")
 |