浏览代码

deb package generation, and version information, prepare for relaese 0.4

Jakob Truelsen 16 年之前
父节点
当前提交
1e3650545d
共有 3 个文件被更改,包括 41 次插入3 次删除
  1. 24 1
      CMakeLists.txt
  2. 16 2
      wkhtmltopdf.cc
  3. 1 0
      wkhtmltopdf.hh

+ 24 - 1
CMakeLists.txt

@@ -14,10 +14,13 @@
 # along with wkhtmltopdf.  If not, see <http://www.gnu.org/licenses/>.
 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
 PROJECT(wkhtmltopdf)
+SET(CPACK_PACKAGE_VERSION_MAJOR "0")
+SET(CPACK_PACKAGE_VERSION_MINOR "4")
+
 SET( CMAKE_COLOR_MAKEFILE ON )
 SET( CMAKE_VERBOSE_MAKEFILE ON )
 SET( CMAKE_INCLUDE_CURRENT_DIR TRUE )
-ADD_DEFINITIONS( -Wall -ansi)
+ADD_DEFINITIONS( -Wall -ansi -DMAJOR_VERSION=${CPACK_PACKAGE_VERSION_MAJOR} -DMINOR_VERSION=${CPACK_PACKAGE_VERSION_MINOR})
 SET( QT_USE_QTWEBKIT TRUE )
 SET( QT_USE_QTNETWORK TRUE )
 FIND_PACKAGE( Qt4 REQUIRED )
@@ -27,3 +30,23 @@ QT4_WRAP_CPP(HAT wkhtmltopdf.hh)
 ADD_EXECUTABLE(wkhtmltopdf wkhtmltopdf.cc ${HAT})
 TARGET_LINK_LIBRARIES( wkhtmltopdf ${QT_LIBRARIES} )
 INSTALL(TARGETS wkhtmltopdf DESTINATION bin)
+
+SET(CPACK_PACKAGE_NAME wkhtmltopdf)
+SET(CPACK_SYSTEM_NAME linux-amd64)
+SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Simple shell utility to convert html to pdf using the webkit rendering engine, and qt.")
+SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Jakob Truelsen (http://www.daimi.au.dk/~jakobt/")
+SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
+#objdump -p wkhtmltopdf | grep NEEDED | sed -re 's/NEEDED//' | xargs dpkg-query -S | sed -re 's/:.*//' | sort -u
+SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libqt4-webkit, libqt4-network, libqt4-gui")
+SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING")
+SET(CPACK_PACKAGE_INSTALL_DIRECTORY "CMake ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}")
+
+SET(CPACK_GENERATOR "DEB")
+execute_process(COMMAND dpkg --print-architecture OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
+SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}-${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
+
+SET(CPACK_STRIP_FILES "bin/wkhtmltopdf")
+SET(CPACK_SOURCE_STRIP_FILES "")
+
+SET(CPACK_PACKAGE_EXECUTABLES "wkhtmltopdf" "wkhtmltopdf")
+INCLUDE(CPack)

+ 16 - 2
wkhtmltopdf.cc

@@ -28,6 +28,7 @@ void WKHtmlToPdf::usage(FILE * fd) {
 "\n"
 "Options:\n"
 "  -h, --help                      print this help.\n"
+"      --version                    output version information and exit\n"
 "  -q, --quiet                     be less verbose.\n"
 "  -i, --input <url>               use url as input.\n"
 "  -o, --output <url>              use url as output.\n"
@@ -57,6 +58,19 @@ void WKHtmlToPdf::usage(FILE * fd) {
 		);
 }
 
+void WKHtmlToPdf::version(FILE * fd) {
+  fprintf(fd,
+"wkhtmltopdf %d.%d\n"
+"Copyright (C) 2008 Jakob Truelsen,\n"
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
+"This is free software: you are free to change and redistribute it.\n"
+"There is NO WARRANTY, to the extent permitted by law.\n"
+"\n"
+"Written by Jakob Truelsen\n"
+"Patches by Mário Silva\n\n",
+	  MAJOR_VERSION, MINOR_VERSION);
+}
+
 void WKHtmlToPdf::setOrientation(const char * o) {
 	if(!strcasecmp(o,"Landscape"))
 		orientation = QPrinter::Landscape;
@@ -101,8 +115,6 @@ void WKHtmlToPdf::setPageSize(const char * o) {
 	else {usage(stderr);exit(1);}
 }
 
-
-
 void WKHtmlToPdf::setProxy(const char * proxy) {
 	//Allow users to use no proxy, even if one is specified in the env
 	if(!strcmp(proxy,"none")) {proxyHost = NULL;return;}
@@ -175,6 +187,8 @@ void WKHtmlToPdf::parseArgs(int argc, const char ** argv) {
 		if(argv[i][1] == '-') { //Long style arguments
 			if(!strcmp(argv[i],"--help")) {
 				usage(stdout); exit(0);
+			} else if(!strcmp(argv[i],"--version")) {
+				version(stdout); exit(0);
 			} else if(!strcmp(argv[i],"--quiet")) {
 				quiet = true;
 			} else if(!strcmp(argv[i],"--input")) {

+ 1 - 0
wkhtmltopdf.hh

@@ -44,6 +44,7 @@ public:
 	QPrinter::PrinterMode resolution; //resolution
 	int dpi;
 
+	void version(FILE * fd); //Print version information to fd
 	void usage(FILE * fd); //Print usage information to fd
 	void setPageSize(const char * size);
 	void setOrientation(const char * orientation);