summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Louis <ptitlouis@sysif.net>2007-08-18 08:27:32 +0000
committerJulien Louis <ptitlouis@sysif.net>2007-08-18 08:27:32 +0000
commit07d9deaf95201c84e558fcba0af590fba31add76 (patch)
tree707e8e7f0b78459454b00a4b78a840685ab46a1a
parent4908e196adaafac045362dcbdeaf4027d895022c (diff)
downloadweechat-07d9deaf95201c84e558fcba0af590fba31add76.zip
Add uninstall and dist targets to the cmake build system.
-rw-r--r--CMakeLists.txt19
-rw-r--r--cmake/cmake_uninstall.cmake.in21
-rwxr-xr-xcmake/makedist.sh.in33
-rw-r--r--weechat/CMakeLists.txt19
-rw-r--r--weechat/cmake/cmake_uninstall.cmake.in21
-rwxr-xr-xweechat/cmake/makedist.sh.in33
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}