53 lines
1.0 KiB
CMake
53 lines
1.0 KiB
CMake
CMAKE_MINIMUM_REQUIRED(VERSION 3.1.0)
|
|
|
|
###########################################
|
|
#### Usage: cmake -DCMD= -P cmake/cmd.cmake
|
|
###########################################
|
|
|
|
FUNCTION(MESSAGE type)
|
|
IF(ARGV0 STREQUAL "STDOUT")
|
|
EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E echo "${ARGN}")
|
|
ELSE()
|
|
_MESSAGE(${type} "${ARGN}")
|
|
ENDIF()
|
|
ENDFUNCTION()
|
|
|
|
|
|
FUNCTION(CREATE_HASH)
|
|
IF(NOT FILES)
|
|
MESSAGE(FATAL_ERROR "You need to specify 'FILES'")
|
|
ENDIF()
|
|
|
|
IF(NOT ALGORITHM)
|
|
SET(ALGORITHM SHA256)
|
|
ENDIF()
|
|
STRING(TOLOWER "${ALGORITHM}" HASHFILE_ENDING)
|
|
|
|
FILE(GLOB GLOBBED_FILES RELATIVE "${CMAKE_CURRENT_BINARY_DIR}" "${FILES}")
|
|
|
|
FOREACH(f ${GLOBBED_FILES})
|
|
FILE(${ALGORITHM} ${f} fHash)
|
|
SET(OUTPUT "${fHash} ${f}")
|
|
MESSAGE(STDOUT ${OUTPUT})
|
|
IF(CREATE_FILE)
|
|
FILE(WRITE ${f}.${HASHFILE_ENDING} "${OUTPUT}\n")
|
|
ENDIF()
|
|
ENDFOREACH()
|
|
ENDFUNCTION()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IF(NOT CMD)
|
|
MESSAGE(FATAL_ERROR "You need to specify 'CMD'")
|
|
ENDIF()
|
|
|
|
IF(CMD STREQUAL "HASH")
|
|
CREATE_HASH()
|
|
ELSE()
|
|
MESSAGE(FATAL_ERROR "Unknown CMD: ${CMD}")
|
|
ENDIF()
|