changeset 2848:7836cad5a075

update package vmime build system changed to cmake
author Mark Brand <mabrand@mabrand.nl>
date Mon, 12 Nov 2012 21:57:55 +0100
parents d37122aa7a10
children 1f72bc5b8701
files index.html src/vmime-1-fixes.patch src/vmime.mk
diffstat 3 files changed, 186 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/index.html	Mon Nov 12 21:56:00 2012 +0100
+++ b/index.html	Mon Nov 12 21:57:55 2012 +0100
@@ -1920,7 +1920,7 @@
     </tr>
     <tr>
         <td id="vmime-package">vmime</td>
-        <td id="vmime-version">794afe9</td>
+        <td id="vmime-version">6ae75bc</td>
         <td id="vmime-website"><a href="http://www.vmime.org/">VMime</a></td>
     </tr>
     <tr>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/vmime-1-fixes.patch	Mon Nov 12 21:57:55 2012 +0100
@@ -0,0 +1,177 @@
+This file is part of MXE.
+See index.html for further information.
+
+From 7ffec86f76c8ac83dbff12a949f25484f01c14a8 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Mon, 12 Nov 2012 12:22:03 +0100
+Subject: [PATCH 1/3] add missing wincrypt.h
+
+taken from https://github.com/kisli/vmime/pull/14
+
+diff --git a/src/platforms/windows/windowsHandler.cpp b/src/platforms/windows/windowsHandler.cpp
+index 9a3a85e..6d1f414 100644
+--- a/src/platforms/windows/windowsHandler.cpp
++++ b/src/platforms/windows/windowsHandler.cpp
+@@ -36,6 +36,7 @@
+ #include <process.h>
+ #include <windows.h>  // for winnls.h
+ #include <winsock2.h> // for WSAStartup()
++#include <wincrypt.h>
+ 
+ #ifdef VMIME_HAVE_MLANG_H
+ #   include <mlang.h>
+-- 
+1.7.10.4
+
+
+From 567015bf151eb845c3b88b42560e8e83c88d2d58 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Mon, 12 Nov 2012 12:28:25 +0100
+Subject: [PATCH 2/3] disable shared libs
+
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5be9ca3..ce0fc09 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -81,21 +81,6 @@ IF(UNIX AND NOT APPLE AND NOT CMAKE_CROSSCOMPILING AND NOT EXISTS "/etc/debian_v
+ 	ENDIF()
+ ENDIF()
+ 
+-# Shared library
+-ADD_LIBRARY(
+-	${VMIME_LIBRARY_NAME}
+-	SHARED
+-	${VMIME_LIBRARY_SRC_FILES}
+-	${VMIME_LIBRARY_INCLUDE_FILES}
+-)
+-
+-SET_TARGET_PROPERTIES(
+-	${VMIME_LIBRARY_NAME}
+-	PROPERTIES
+-	VERSION    "${VMIME_VERSION}"
+-	SOVERSION  "${VMIME_API_VERSION}"
+-)
+-
+ # Static library
+ #
+ # Note: cannot have two targets with the same name so the static version has
+@@ -115,19 +100,12 @@ SET_TARGET_PROPERTIES(
+ 
+ # These next two lines are required but it is unclear exactly what they do.
+ # The CMake FAQ mentions they are necessary and it does not work otherwise.
+-SET_TARGET_PROPERTIES(${VMIME_LIBRARY_NAME} PROPERTIES CLEAN_DIRECT_OUTPUT 1)
+ SET_TARGET_PROPERTIES(${VMIME_LIBRARY_NAME}-static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
+ 
+ SET(CMAKE_INSTALL_LIBDIR lib CACHE PATH "Output directory for libraries")
+ 
+ # Installation of libraries
+ INSTALL(
+-	TARGETS ${VMIME_LIBRARY_NAME}
+-	LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT sharedlibs
+-	ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT sharedlibs
+-)
+-
+-INSTALL(
+ 	TARGETS ${VMIME_LIBRARY_NAME}-static
+ 	LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT staticlibs
+ 	ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT staticlibs
+@@ -215,11 +193,7 @@ SET(CPACK_SOURCE_IGNORE_FILES          "\\\\.git;~$;build/")
+ SET(CPACK_SOURCE_PACKAGE_FILE_NAME     ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION})
+ 
+ # Set components
+-SET(CPACK_COMPONENTS_ALL sharedlibs staticlibs headers)
+-
+-SET(CPACK_COMPONENT_SHAREDLIBS_DISPLAY_NAME "Shared libraries")
+-SET(CPACK_COMPONENT_SHAREDLIBS_DESCRIPTION
+-	"Shared library for general use.")
++SET(CPACK_COMPONENTS_ALL staticlibs headers)
+ 
+ SET(CPACK_COMPONENT_STATICLIBS_DISPLAY_NAME "Static libraries")
+ SET(CPACK_COMPONENT_STATICLIBS_DESCRIPTION
+@@ -229,7 +203,6 @@ SET(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "C++ Headers")
+ SET(CPACK_COMPONENT_HEADERS_DESCRIPTION
+ 	"C/C++ header files.")
+ 
+-SET(CPACK_COMPONENT_SHAREDLIBS_GROUP "Development")
+ SET(CPACK_COMPONENT_STATICLIBS_GROUP "Development")
+ SET(CPACK_COMPONENT_HEADERS_GROUP    "Development")
+ SET(CPACK_COMPONENT_GROUP_DEVELOPMENT_DESCRIPTION "")
+@@ -431,12 +404,6 @@ IF(VMIME_HAVE_SASL_SUPPORT)
+ 		${GSASL_INCLUDE_DIR}
+ 	)
+ 
+-	TARGET_LINK_LIBRARIES(
+-		${VMIME_LIBRARY_NAME}
+-		${TARGET_LINK_LIBRARIES}
+-		${GSASL_LIBRARIES}
+-	)
+-
+ 	SET(VMIME_PKGCONFIG_LIBS "${VMIME_PKGCONFIG_LIBS} ${GSASL_LIBRARIES}")
+ 	SET(VMIME_PKGCONFIG_CFLAGS "${VMIME_PKGCONFIG_CFLAGS} ${GSASL_INCLUDE_DIR}")
+ 	SET(VMIME_PKGCONFIG_REQUIRES "${VMIME_PKGCONFIG_REQUIRES} libgsasl")
+@@ -488,12 +455,6 @@ IF(VMIME_HAVE_TLS_SUPPORT)
+ 			${GNUTLS_LIBRARY_DIRS}
+ 		)
+ 
+-		TARGET_LINK_LIBRARIES(
+-			${VMIME_LIBRARY_NAME}
+-			${TARGET_LINK_LIBRARIES}
+-			${GNUTLS_LIBRARY}
+-		)
+-
+ 		SET(VMIME_PKGCONFIG_LIBS "${VMIME_PKGCONFIG_LIBS} ${GNUTLS_LIBRARY_DIRS} ${GNUTLS_LIBRARY}")
+ 		SET(VMIME_PKGCONFIG_CFLAGS "${VMIME_PKGCONFIG_CFLAGS} ${GNUTLS_INCLUDE_DIR}")
+ 		SET(VMIME_PKGCONFIG_REQUIRES "${VMIME_PKGCONFIG_REQUIRES} libgnutls")
+@@ -505,12 +466,6 @@ IF(VMIME_HAVE_TLS_SUPPORT)
+ 			${OPENSSL_INCLUDE_DIR}
+ 		)
+ 
+-		TARGET_LINK_LIBRARIES(
+-			${VMIME_LIBRARY_NAME}
+-			${TARGET_LINK_LIBRARIES}
+-			${OPENSSL_LIBRARIES}
+-		)
+-
+ 		SET(VMIME_PKGCONFIG_LIBS "${VMIME_PKGCONFIG_LIBS} ${OPENSSL_LIBRARIES}")
+ 		SET(VMIME_PKGCONFIG_CFLAGS "${VMIME_PKGCONFIG_CFLAGS} ${OPENSSL_INCLUDE_DIR}")
+ 		SET(VMIME_PKGCONFIG_REQUIRES "${VMIME_PKGCONFIG_REQUIRES} libopenssl")
+@@ -534,12 +489,6 @@ INCLUDE_DIRECTORIES(
+ 	${ICONV_INCLUDE_DIR}
+ )
+ 
+-TARGET_LINK_LIBRARIES(
+-	${VMIME_LIBRARY_NAME}
+-	${TARGET_LINK_LIBRARIES}
+-	${ICONV_LIBRARIES}
+-)
+-
+ 
+ ##############################################################################
+ # Platform
+-- 
+1.7.10.4
+
+
+From 941b09447486a86918f65ddbb42e055a610350f5 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Mon, 12 Nov 2012 13:58:12 +0100
+Subject: [PATCH 3/3] add private dependencies to .pc file
+
+
+diff --git a/libvmime.pc.in b/libvmime.pc.in
+index 5745c52..cea2927 100644
+--- a/libvmime.pc.in
++++ b/libvmime.pc.in
+@@ -7,6 +7,8 @@ Name: @VMIME_LIBRARY_NAME@
+ Description: @VMIME_PACKAGE_DESCRIPTION@
+ Version: @VMIME_PACKAGE_VERSION@
+ Requires: @VMIME_PKGCONFIG_REQUIRES@
++Requires.private: gnutls libgsasl
+ Libs: -L${libdir} -lvmime @VMIME_PKGCONFIG_LIBS@
++Libs.private: -liconv
+ Cflags: -I${includedir}/ @VMIME_PKGCONFIG_CFLAGS@
+ 
+-- 
+1.7.10.4
+
--- a/src/vmime.mk	Mon Nov 12 21:56:00 2012 +0100
+++ b/src/vmime.mk	Mon Nov 12 21:57:55 2012 +0100
@@ -3,7 +3,7 @@
 
 PKG             := vmime
 $(PKG)_IGNORE   :=
-$(PKG)_CHECKSUM := 24a32dcc2eaf78d4a53541936ef72e4cf4f0a6ff
+$(PKG)_CHECKSUM := c33ca934b341ba6e145bb152c83ff4f31a49ba89
 $(PKG)_SUBDIR   := kisli-vmime-$($(PKG)_VERSION)
 $(PKG)_FILE     := $(PKG)-$($(PKG)_VERSION).tar.gz
 $(PKG)_URL      := https://github.com/kisli/vmime/tarball/$($(PKG)_VERSION)/$(PKG)_FILE
@@ -16,24 +16,11 @@
 endef
 
 define $(PKG)_BUILD
-    $(SED) -i 's/pkg-config/$(TARGET)-pkg-config/g;'  '$(1)/SConstruct'
-
-    # The configure script will make the real configuration, but
-    # we need scons to generate configure.in, Makefile.am etc.
-    cd '$(1)' && scons autotools \
-         prefix='$(PREFIX)/$(TARGET)' \
-         target='$(TARGET)' \
-         sendmail_path=/sbin/sendmail
-
-    cd '$(1)' && ./bootstrap
-    cd '$(1)' && ./configure \
-        --prefix='$(PREFIX)/$(TARGET)' \
-        --host='$(TARGET)' \
-        --build="`config.guess`" \
-        --disable-shared \
-        --enable-platform-windows \
-        --disable-rpath \
-        --disable-dependency-tracking
+    cd '$(1)' && cmake \
+        -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
+        -DCMAKE_AR='$(PREFIX)/bin/$(TARGET)-ar' \
+        -DCMAKE_RANLIB='$(PREFIX)/bin/$(TARGET)-ranlib' \
+        .
 
     # Disable VMIME_HAVE_MLANG_H
     # We have the header, but there is no implementation for IMultiLanguage in MinGW
@@ -41,10 +28,11 @@
 
     $(MAKE) -C '$(1)' -j '$(JOBS)'
     $(MAKE) -C '$(1)' install
+    $(INSTALL) -m644 '$(1)/vmime/config.hpp' '$(PREFIX)/$(TARGET)/include/vmime/'
 
     $(SED) -i 's/posix/windows/g;' '$(1)/examples/example6.cpp'
     $(TARGET)-g++ -s -o '$(1)/examples/test-vmime.exe' \
         '$(1)/examples/example6.cpp' \
-        `'$(TARGET)-pkg-config' vmime --cflags --libs`
+        `'$(TARGET)-pkg-config' libvmime --cflags --libs`
     $(INSTALL) -m755 '$(1)/examples/test-vmime.exe' '$(PREFIX)/$(TARGET)/bin/'
 endef