cmake_minimum_required(VERSION 2.8)
project( TestDownload )

function( get_tol_plat var )
  if( CMAKE_SIZEOF_VOID_P EQUAL 4 )
    set( tol_ps 32 )
  elseif( CMAKE_SIZEOF_VOID_P EQUAL 8 )
    set( tol_ps 64 )
  else( )
    message( WARNING "Could not determine pointer size because CMAKE_SIZEOF_VOID_P=${CMAKE_SIZEOF_VOID_P}" )
    set( ${var} "unknown" PARENT_SCOPE )
    return()    
  endif( )
  string( TOUPPER ${CMAKE_SYSTEM_NAME} _system )
  if( UNIX )
    if( _system STREQUAL "LINUX" )
      set( ${var} "Linux${tol_ps}GNU" PARENT_SCOPE )
      return()
    else( )
      message( WARNING "Could not determine TOL platform for system ${CMAKE_SYSTEM_NAME}" )
      set( ${var} "unknown" PARENT_SCOPE )
      return()
    endif( )
  elseif( MINGW )
    set( ${var} "Win${tol_ps}GNU" )
  else( MINGW )
    message( WARNING "Could not determine TOL platform for system ${CMAKE_SYSTEM_NAME}" )
    set( ${var} "unknown" PARENT_SCOPE )
    return()
  endif( UNIX )
endfunction( get_tol_plat )

function( download_tol_package pkg bin )
  set( url "http://packages.tol-project.org/OfficialTolArchiveNetwork/repository.php?action=download&format=attachment&tol_package_version=4&package=${pkg}" )
  if ( WGET_FOUND )
    if( bin )
      get_tol_plat( tol_plat )
      set( url "${url}%23${tol_plat}" )
    endif( )
    message( "going to download last version of ${pkg} ..." )
    execute_process( 
      COMMAND ${WGET_EXECUTABLE} --content-disposition "${url}" 
      OUTPUT_VARIABLE WGET_OUTPUT
      ERROR_VARIABLE IGNORE_ERROR
      OUTPUT_STRIP_TRAILING_WHITESPACE )
  else( WGET_FOUND )
    message( WARNING "Could not download package ${pkg} because wget command is not available" )
  endif( WGET_FOUND )
endfunction( download_tol_package )

find_package( Wget )
if ( WGET_FOUND )
  download_tol_package( StdLib 0 )
  download_tol_package( TclCore 1 )
  message( "${CMAKE_CURRENT_BINARY_DIR}/*.zip.1" )
  file( GLOB zip_copies "${CMAKE_CURRENT_BINARY_DIR}/*.zip.1" )
  message( STATUS "zip_copies = ${zip_copies}" )
  foreach( f ${zip_copies} )
    string( REPLACE ".zip.1" ".zip" f_zip ${f} )
    file( REMOVE ${f_zip} )
    file( RENAME ${f} ${f_zip} )
  endforeach( )
endif( WGET_FOUND )

