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 62 63 64 65 66 67 68 69
|
SET(VER 0.9.7.4)
SET(URL https://github.com/g-truc/glm/archive/${VER}.tar.gz)
SET(MD5 475b0092c3baaf6ac899dc0dcd87f898)
SET(thirdPartyDir "${PROJECT_BINARY_DIR}/third_party")
SET(srcDir "${thirdPartyDir}/glm-${VER}")
SET(archive ${srcDir}.tar.gz)
SET(inflated ${srcDir}-inflated)
# the config to be used in the code
SET(GLM_INCLUDE_DIRS "${srcDir}")
# do we have to do it again?
SET(doExtraction ON)
IF(EXISTS "${inflated}")
FILE(READ "${inflated}" extractedMD5)
IF("${extractedMD5}" STREQUAL "${MD5}")
# nope, everything looks fine
return()
ENDIF()
ENDIF()
# lets get and extract GLM
MESSAGE(STATUS "GLM...")
IF(EXISTS "${archive}")
FILE(MD5 "${archive}" md5)
IF(NOT "${md5}" STREQUAL "${MD5}")
MESSAGE(" wrong check sum ${md5}, redownloading")
FILE(REMOVE "${archive}")
ENDIF()
ENDIF()
IF(NOT EXISTS "${archive}")
MESSAGE(STATUS " getting ${URL}")
FILE(DOWNLOAD "${URL}" ${archive}
STATUS rv
SHOW_PROGRESS)
ENDIF()
MESSAGE(STATUS " validating ${archive}")
FILE(MD5 "${archive}" md5)
IF(NOT "${md5}" STREQUAL "${MD5}")
MESSAGE(WARNING "${archive}: Invalid check sum ${md5}. Expected was ${MD5}")
IF("${md5}" STREQUAL "d41d8cd98f00b204e9800998ecf8427e")
MESSAGE(STATUS "Trying wget ${URL}")
EXECUTE_PROCESS(COMMAND wget -O ${archive} ${URL})
FILE(MD5 "${archive}" md5_)
IF(NOT "${md5_}" STREQUAL "${MD5}")
MESSAGE(FATAL_ERROR "${archive}: Invalid check sum ${md5_}. Expected was ${MD5}")
ENDIF(NOT "${md5_}" STREQUAL "${MD5}")
MESSAGE(STATUS "wget successful")
ENDIF("${md5}" STREQUAL "d41d8cd98f00b204e9800998ecf8427e")
ENDIF()
IF(IS_DIRECTORY ${srcDir})
MESSAGE(STATUS " cleaning ${cleaning}")
FILE(REMOVE_RECURSE ${srcDir})
ENDIF()
MESSAGE(STATUS " extracting ${archive}")
FILE(MAKE_DIRECTORY ${srcDir})
EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E tar xfz ${archive}
WORKING_DIRECTORY ${thirdPartyDir}
RESULT_VARIABLE rv)
IF(NOT rv EQUAL 0)
MESSAGE(FATAL_ERROR "'${archive}' extraction failed")
ENDIF()
FILE(WRITE ${inflated} "${MD5}")
|