~diego-fmpwizard/mysql-proxy/bug-43424

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
MACRO(TAR_UNPACK _file _wd)
	FIND_PROGRAM(GTAR_EXECUTABLE NAMES gtar tar)
	FIND_PROGRAM(GZIP_EXECUTABLE NAMES gzip)

	MESSAGE(STATUS "gtar: ${GTAR_EXECUTABLE}")
	MESSAGE(STATUS "gzip: ${GZIP_EXECUTABLE}")

	IF(GTAR_EXECUTABLE AND GZIP_EXECUTABLE)
		# On Windows gzip -cd $file | tar xvf - sometimes reports
		# "Broken pipe" which causes cmake to assume an error has occured
		# In fact, this is harmless, but because of it, this is done in
		# two steps
		MESSAGE(STATUS "unzipping ${_file} with ${GZIP_EXECUTABLE}")
		EXECUTE_PROCESS(COMMAND ${GZIP_EXECUTABLE} "-cd" ${_file}
		  OUTPUT_FILE "${_file}.tar"
			WORKING_DIRECTORY ${_wd}
			ERROR_VARIABLE _err)
		IF(_err)
			MESSAGE(SEND_ERROR "GZIP_UNPACK()-err: ${_err}")
		ENDIF(_err)
		# untar after successful unzip
		MESSAGE(STATUS "untarring ${_file}.tar with ${GTAR_EXECUTABLE}")
		EXECUTE_PROCESS(COMMAND ${GTAR_EXECUTABLE} "xvf" "-"
			INPUT_FILE "${_file}.tar"
			WORKING_DIRECTORY ${_wd}
			OUTPUT_VARIABLE _out
			ERROR_VARIABLE _err)
		IF(_err)
			MESSAGE(SEND_ERROR "TAR_UNPACK()-err: ${_err}")
		ENDIF(_err)
		IF(_out)
			MESSAGE(DEBUG "TAR_UNPACK()-out: ${_out}")
		ENDIF(_out)
		FILE(REMOVE "${_file}.tar")
	ELSE(GTAR_EXECUTABLE AND GZIP_EXECUTABLE)
		MESSAGE(STATUS "gnutar not found")
	ENDIF(GTAR_EXECUTABLE AND GZIP_EXECUTABLE)
ENDMACRO(TAR_UNPACK _file _wd)


MACRO(ZIP_UNPACK _file _wd)
	FIND_PROGRAM(7Z_EXECUTABLE NAMES 7z 7za)

	MESSAGE(STATUS "7zip: ${7Z_EXECUTABLE}")

	IF(7Z_EXECUTABLE)
		EXECUTE_PROCESS(COMMAND ${7Z_EXECUTABLE} x "-o${_wd}" "${_file}")
	ELSE(7Z_EXECUTABLE)
		MESSAGE(STATUS "7zip not found")
	ENDIF(7Z_EXECUTABLE)
ENDMACRO(ZIP_UNPACK _file _wd)