AusweisApp2/cmake/cmd.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()