summaryrefslogtreecommitdiff
path: root/Modules/CPackZIP.cmake
diff options
context:
space:
mode:
authorAlexander Neundorf <neundorf@kde.org>2007-07-24 12:52:39 -0400
committerAlexander Neundorf <neundorf@kde.org>2007-07-24 12:52:39 -0400
commit919265516ea3233e6a4e29a17ad4ec24150eefda (patch)
tree1d2beab70b483ab0f2153d6766763094c7b11331 /Modules/CPackZIP.cmake
parent4ae802d9c19d1f021970215d992b6aebc4165ec8 (diff)
downloadcmake-919265516ea3233e6a4e29a17ad4ec24150eefda.tar.gz
ENH: add ReadListFile() to cmCPackGenericGenerator, so cmMakefile can be
private again -convert the ZIP generator to use a cmake script instead of hardcoding everything (CPackZIP.cmake) Alex
Diffstat (limited to 'Modules/CPackZIP.cmake')
-rw-r--r--Modules/CPackZIP.cmake27
1 files changed, 27 insertions, 0 deletions
diff --git a/Modules/CPackZIP.cmake b/Modules/CPackZIP.cmake
new file mode 100644
index 0000000000..4a65856940
--- /dev/null
+++ b/Modules/CPackZIP.cmake
@@ -0,0 +1,27 @@
+IF(CMAKE_BINARY_DIR)
+ MESSAGE(FATAL_ERROR "CPackZIP.cmake may only be used by CPack internally.")
+ENDIF(CMAKE_BINARY_DIR)
+
+FIND_PROGRAM(ZIP_EXECUTABLE wzzip PATHS "$ENV{ProgramFiles}/WinZip")
+IF(ZIP_EXECUTABLE)
+ SET(CPACK_ZIP_COMMAND "\"${ZIP_EXECUTABLE}\" -P \"<ARCHIVE>\" @<FILELIST>")
+ SET(CPACK_ZIP_NEED_QUOTES TRUE)
+ENDIF(ZIP_EXECUTABLE)
+
+IF(NOT ZIP_EXECUTABLE)
+ FIND_PROGRAM(ZIP_EXECUTABLE 7z PATHS "$ENV{ProgramFiles}/7-Zip")
+ IF(ZIP_EXECUTABLE)
+ SET(CPACK_ZIP_COMMAND "\"${ZIP_EXECUTABLE}\" a -tzip \"<ARCHIVE>\" @<FILELIST>")
+ SET(CPACK_ZIP_NEED_QUOTES TRUE)
+ ENDIF(ZIP_EXECUTABLE)
+ENDIF(NOT ZIP_EXECUTABLE)
+
+IF(NOT ZIP_EXECUTABLE)
+ FIND_PACKAGE(Cygwin)
+ FIND_PROGRAM(ZIP_EXECUTABLE zip PATHS "${CYGWIN_INSTALL_PATH}/bin")
+ IF(ZIP_EXECUTABLE)
+ SET(CPACK_ZIP_COMMAND "\"${ZIP_EXECUTABLE}\" -r \"<ARCHIVE>\" . -i@<FILELIST>")
+ SET(CPACK_ZIP_NEED_QUOTES FALSE)
+ ENDIF(ZIP_EXECUTABLE)
+ENDIF(NOT ZIP_EXECUTABLE)
+