Blob Blame History Raw

function (file_line_count filename variable)
	# Assume `find_progam (WC wc)` has already set this.
	if (NOT WC)
		message (FATAL_ERROR "Need the 'wc' program to find line coount.")
		endif ()

	if (NOT SED)
		message (FATAL_ERROR "Need the 'sed' program to find line coount.")
		endif ()

	if (NOT (EXISTS "${filename}"))
		message (FATAL_ERROR "File ${filename} does not exist.")
		endif ()

	execute_process (
		COMMAND ${WC} -l ${filename}
		COMMAND ${SED} "s/^[ ]*//"    # wc output on Mac has leading whitespace.
		COMMAND ${SED} "s/ .*//"
		OUTPUT_VARIABLE line_count
		)

	# Tedious!
	string (STRIP ${line_count} line_count)

	set (${variable} ${line_count} PARENT_SCOPE)
	endfunction ()

function (assert_line_count_non_zero filename)

	file_line_count (${filename} line_count)

	if (${line_count} LESS 1)
		message (FATAL_ERROR "Line count of ${filename} is ${line_count}, which is less than expected.")
		endif ()

	endfunction ()