#!/bin/sh # this is a sample shell script used for building a cmake # based project for a cygwin setup package. # get the current directory TOP_DIR=`cd \`echo "$0" | sed -n '/\//{s/\/[^\/]*$//;p;}'\`;pwd` # create build directory mkdirs() { ( mkdir -p "$TOP_DIR/@CPACK_PACKAGE_FILE_NAME@/.build" ) } # cd into # untar source tree and apply patch prep() { ( cd "$TOP_DIR" && tar xvfj @CPACK_PACKAGE_FILE_NAME@.tar.bz2 patch -p0 < "@CPACK_PACKAGE_FILE_NAME@-@CPACK_CYGWIN_PATCH_NUMBER@.patch" && mkdirs ) } # configure the build tree in .build directory # of the source tree conf() { ( cd "$TOP_DIR/@CPACK_PACKAGE_FILE_NAME@/.build" && cmake .. ) } # build the package in the .build directory build() { ( cd "$TOP_DIR/@CPACK_PACKAGE_FILE_NAME@/.build" && make && make test ) } # clean the build tree clean() { ( cd "$TOP_DIR/@CPACK_PACKAGE_FILE_NAME@/.build" && make clean ) } # create the package pkg() { ( cd "$TOP_DIR/@CPACK_PACKAGE_FILE_NAME@/.build" && cpack && mv @CPACK_PACKAGE_FILE_NAME@-@CPACK_CYGWIN_PATCH_NUMBER@.tar.bz2 "$TOP_DIR" ) } # create the source package spkg() { ( cd "$TOP_DIR/@CPACK_PACKAGE_FILE_NAME@/.build" && cpack --config CPackSourceConfig.cmake && mv @CPACK_PACKAGE_FILE_NAME@-@CPACK_CYGWIN_PATCH_NUMBER@-src.tar.bz2 "$TOP_DIR" ) } # clean up finish() { ( rm -rf "@CPACK_PACKAGE_FILE_NAME@" ) } case $1 in prep) prep ; STATUS=$? ;; mkdirs) mkdirs ; STATUS=$? ;; conf) conf ; STATUS=$? ;; build) build ; STATUS=$? ;; clean) clean ; STATUS=$? ;; package) pkg ; STATUS=$? ;; pkg) pkg ; STATUS=$? ;; src-package) spkg ; STATUS=$? ;; spkg) spkg ; STATUS=$? ;; finish) finish ; STATUS=$? ;; all) ( prep && conf && build && pkg && spkg && finish ; STATUS=$? ) ;; *) echo "Error: bad argument (all or one of these: prep mkdirs conf build clean package pkg src-package spkg finish)" ; exit 1 ;; esac exit ${STATUS}