diff options
author | Julien Louis <ptitlouis@sysif.net> | 2007-08-18 08:27:32 +0000 |
---|---|---|
committer | Julien Louis <ptitlouis@sysif.net> | 2007-08-18 08:27:32 +0000 |
commit | 07d9deaf95201c84e558fcba0af590fba31add76 (patch) | |
tree | 707e8e7f0b78459454b00a4b78a840685ab46a1a | |
parent | 4908e196adaafac045362dcbdeaf4027d895022c (diff) | |
download | weechat-07d9deaf95201c84e558fcba0af590fba31add76.zip |
Add uninstall and dist targets to the cmake build system.
-rw-r--r-- | CMakeLists.txt | 19 | ||||
-rw-r--r-- | cmake/cmake_uninstall.cmake.in | 21 | ||||
-rwxr-xr-x | cmake/makedist.sh.in | 33 | ||||
-rw-r--r-- | weechat/CMakeLists.txt | 19 | ||||
-rw-r--r-- | weechat/cmake/cmake_uninstall.cmake.in | 21 | ||||
-rwxr-xr-x | weechat/cmake/makedist.sh.in | 33 |
6 files changed, 146 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 9633a514f..04bd85605 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,3 +50,22 @@ IF(NOT DISABLE_DOC) ENDIF(NOT DISABLE_DOC) CONFIGURE_FILE(config.h.cmake config.h @ONLY) + +CONFIGURE_FILE( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/makedist.sh.in" + "${CMAKE_CURRENT_BINARY_DIR}/makedist.sh" IMMEDIATE + @ONLY) + +CONFIGURE_FILE( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" + IMMEDIATE @ONLY) + +ADD_CUSTOM_TARGET(uninstall + "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") + +ADD_CUSTOM_TARGET(dist + "${CMAKE_BINARY_DIR}/makedist.sh" + DEPENDS doc + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) + diff --git a/cmake/cmake_uninstall.cmake.in b/cmake/cmake_uninstall.cmake.in new file mode 100644 index 000000000..47187f5a9 --- /dev/null +++ b/cmake/cmake_uninstall.cmake.in @@ -0,0 +1,21 @@ +IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") + MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"") +ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") + +FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files) +STRING(REGEX REPLACE "\n" ";" files "${files}") +FOREACH(file ${files}) + MESSAGE(STATUS "Uninstalling \"${file}\"") + IF(NOT EXISTS "${file}") + MESSAGE(FATAL_ERROR "File \"${file}\" does not exists.") + ENDIF(NOT EXISTS "${file}") + EXEC_PROGRAM("@CMAKE_COMMAND@" ARGS "-E remove \"${file}\"" + OUTPUT_VARIABLE rm_out + RETURN_VARIABLE rm_retval) + IF("${rm_retval}" GREATER 0) + MESSAGE(FATAL_ERROR "Problem when removing \"${file}\"") + ENDIF("${rm_retval}" GREATER 0) +ENDFOREACH(file) + + + diff --git a/cmake/makedist.sh.in b/cmake/makedist.sh.in new file mode 100755 index 000000000..4df9b910b --- /dev/null +++ b/cmake/makedist.sh.in @@ -0,0 +1,33 @@ +#!/bin/sh +VERSION=@VERSION@ +SRCROOT=@CMAKE_SOURCE_DIR@ +BUILDDIR=@CMAKE_BINARY_DIR@ +PROJECT=@PROJECT_NAME@ +TAG=release-$(echo $VERSION | sed -e 's/\./-/g') + +EXCLUDE="@DIST_EXCLUDE@" +EXPORT_DIR="${PROJECT}-${VERSION}" + +if [ -z $CVSROOT ]; then + echo "The CVSROOT variable must be set" + exit 1 +fi + +echo "Exporting source tree" +if [ $(echo $VERSION | grep cvs) ]; then + cvs export -r HEAD -d $PROJECT-$VERSION $PROJECT +else + cvs export -r $TAG -d $PROJECT-$VERSION $PROJECT +fi + +echo "Removing not needed stuff" +for i in $EXCLUDE ; do + echo " $i" + rm -rf $EXPORT_DIR/$i +done + +echo "Generating archive" +tar cjf ${BUILDDIR}/${PROJECT}-${VERSION}.tar.bz2 ${EXPORT_DIR} + +echo "Cleaning up" +rm -rf ${EXPORT_DIR} diff --git a/weechat/CMakeLists.txt b/weechat/CMakeLists.txt index 9633a514f..04bd85605 100644 --- a/weechat/CMakeLists.txt +++ b/weechat/CMakeLists.txt @@ -50,3 +50,22 @@ IF(NOT DISABLE_DOC) ENDIF(NOT DISABLE_DOC) CONFIGURE_FILE(config.h.cmake config.h @ONLY) + +CONFIGURE_FILE( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/makedist.sh.in" + "${CMAKE_CURRENT_BINARY_DIR}/makedist.sh" IMMEDIATE + @ONLY) + +CONFIGURE_FILE( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" + IMMEDIATE @ONLY) + +ADD_CUSTOM_TARGET(uninstall + "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") + +ADD_CUSTOM_TARGET(dist + "${CMAKE_BINARY_DIR}/makedist.sh" + DEPENDS doc + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) + diff --git a/weechat/cmake/cmake_uninstall.cmake.in b/weechat/cmake/cmake_uninstall.cmake.in new file mode 100644 index 000000000..47187f5a9 --- /dev/null +++ b/weechat/cmake/cmake_uninstall.cmake.in @@ -0,0 +1,21 @@ +IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") + MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"") +ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") + +FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files) +STRING(REGEX REPLACE "\n" ";" files "${files}") +FOREACH(file ${files}) + MESSAGE(STATUS "Uninstalling \"${file}\"") + IF(NOT EXISTS "${file}") + MESSAGE(FATAL_ERROR "File \"${file}\" does not exists.") + ENDIF(NOT EXISTS "${file}") + EXEC_PROGRAM("@CMAKE_COMMAND@" ARGS "-E remove \"${file}\"" + OUTPUT_VARIABLE rm_out + RETURN_VARIABLE rm_retval) + IF("${rm_retval}" GREATER 0) + MESSAGE(FATAL_ERROR "Problem when removing \"${file}\"") + ENDIF("${rm_retval}" GREATER 0) +ENDFOREACH(file) + + + diff --git a/weechat/cmake/makedist.sh.in b/weechat/cmake/makedist.sh.in new file mode 100755 index 000000000..4df9b910b --- /dev/null +++ b/weechat/cmake/makedist.sh.in @@ -0,0 +1,33 @@ +#!/bin/sh +VERSION=@VERSION@ +SRCROOT=@CMAKE_SOURCE_DIR@ +BUILDDIR=@CMAKE_BINARY_DIR@ +PROJECT=@PROJECT_NAME@ +TAG=release-$(echo $VERSION | sed -e 's/\./-/g') + +EXCLUDE="@DIST_EXCLUDE@" +EXPORT_DIR="${PROJECT}-${VERSION}" + +if [ -z $CVSROOT ]; then + echo "The CVSROOT variable must be set" + exit 1 +fi + +echo "Exporting source tree" +if [ $(echo $VERSION | grep cvs) ]; then + cvs export -r HEAD -d $PROJECT-$VERSION $PROJECT +else + cvs export -r $TAG -d $PROJECT-$VERSION $PROJECT +fi + +echo "Removing not needed stuff" +for i in $EXCLUDE ; do + echo " $i" + rm -rf $EXPORT_DIR/$i +done + +echo "Generating archive" +tar cjf ${BUILDDIR}/${PROJECT}-${VERSION}.tar.bz2 ${EXPORT_DIR} + +echo "Cleaning up" +rm -rf ${EXPORT_DIR} |