您的焦油例如直譯是:
ADD_CUSTOM_TARGET(tar
tar -cvf ${CMAKE_CURRENT_BINARY_DIR}/${PROGNAME}.tar ${SRCS} Makefile
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
這增加了一個新的目標「焦油」始終執行時只要您運行make tar
它被要求作爲一個命令行的目標,即給定的命令它會創建一個新的tar文件。 WORKING_DIRECTORY
參數將確保源文件從源目錄中獲取,而CMAKE_CURRENT_BINARY_DIR確保輸出進入當前構建目錄。
稍微好一點的迭代是將tar
替換爲${CMAKE_COMMAND} -E tar
,因爲這不取決於命令行tar
程序可用。所以,當你運行make tar
像這樣的焦油了所有的頭文件:
SET(HEADER_FILES my.h another.h)
SET(PROGNAME myprog)
ADD_CUSTOM_TARGET(tar ${CMAKE_COMMAND} -E tar -czvf
${CMAKE_CURRENT_BINARY_DIR}/${PROGNAME}.tar.gz ${HEADER_FILES}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
一個更好的迭代將使用CPack功能來創建源代碼或二進制tar文件,但是這是相當多的工作,可能不是你所需要的。
無法解釋更好!謝謝! – Rizo 2010-06-18 10:50:26
順便說一句,爲什麼我要在使用** CMake **時備份'Makefile'? =) – Rizo 2010-06-18 16:31:00
爲什麼的確如此!也許一個包裝的Makefile,只有「mkdir構建; CD建立; cmake ..; $(MAKE)$(MAKECMDGOALS)」? – richq 2010-06-18 16:39:13