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" PARENT_SCOPE ) 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}" ) else( ) set( tol_plat "" ) endif( ) message( STATUS "going to download last version of ${pkg} for platform '${tol_plat}'..." ) 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( ) else( ) message( WARNING "Could not download default packages 'StdLib' and 'TclCore' because wget command is not available. wget must be included in PATH in order to use it" ) endif( WGET_FOUND )