changeset 3295:14d0e2102581

[MSVC] Enable gl2ps compilation. * src/gl2ps.mk: Use cmake/nmake for compilation with MSVC. * src/msvc-gl2ps-1.patch: Disable static libraries and fix installation of import libraries.
author Michael Goffioul <michael.goffioul@gmail.com>
date Sat, 09 Nov 2013 23:28:04 -0500
parents 762fe9ac559f
children 8f0877237c55
files src/gl2ps.mk src/msvc-gl2ps-1.patch
diffstat 2 files changed, 77 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/gl2ps.mk	Sat Nov 09 23:28:04 2013 -0500
+++ b/src/gl2ps.mk	Sat Nov 09 23:28:04 2013 -0500
@@ -10,7 +10,11 @@
 
 
 ifeq ($(MXE_NATIVE_MINGW_BUILD),yes)
-    $(PKG)_CMAKE_FLAGS := -G 'MSYS Makefiles'
+    ifeq ($(MXE_SYSTEM),msvc)
+        $(PKG)_CMAKE_FLAGS := -G 'NMake Makefiles'
+    else
+        $(PKG)_CMAKE_FLAGS := -G 'MSYS Makefiles'
+    endif
 else
     $(PKG)_CMAKE_FLAGS := \
         -DCMAKE_AR='$(MXE_AR)' \
@@ -22,6 +26,17 @@
     echo $(gl2ps_VERSION)
 endef
 
+ifeq ($(MXE_SYSTEM),msvc)
+define $(PKG)_BUILD
+    cd '$(1)' && cmake \
+        $($(PKG)_CMAKE_FLAGS) \
+        -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
+        -DPNG_NAMES=png16 \
+        .
+    cd '$(1)' && env -u MAKE -u MAKEFLAGS nmake
+    cd '$(1)' && env -u MAKE -u MAKEFLAGS nmake DESTDIR='$(3)' install
+endef
+else
 define $(PKG)_BUILD
     cd '$(1)' && cmake \
         $($(PKG)_CMAKE_FLAGS) \
@@ -32,15 +47,16 @@
     # native mingw build doesnt want to install the files, even
     # though it logs that it did
     if [ x$(MXE_NATIVE_MINGW_BUILD) = xyes ]; then \
-      $(INSTALL) -m644 '$(1)/libgl2ps.a' '$(HOST_LIBDIR)'; \
-      $(INSTALL) -m644 '$(1)/libgl2ps.dll.a' '$(HOST_LIBDIR)'; \
-      $(INSTALL) -m644 '$(1)/libgl2ps.dll' '$(HOST_BINDIR)'; \
-      $(INSTALL) -m644 '$(1)/gl2ps.h' '$(HOST_INCDIR)'; \
+      $(INSTALL) -m644 '$(1)/libgl2ps.a' '$(3)$(HOST_LIBDIR)'; \
+      $(INSTALL) -m644 '$(1)/libgl2ps.dll.a' '$(3)$(HOST_LIBDIR)'; \
+      $(INSTALL) -m644 '$(1)/libgl2ps.dll' '$(3)$(HOST_BINDIR)'; \
+      $(INSTALL) -m644 '$(1)/gl2ps.h' '$(3)$(HOST_INCDIR)'; \
     else \
-      $(MAKE) -C '$(1)' -j 1 VERBOSE=1 install; \
+      $(MAKE) -C '$(1)' -j 1 VERBOSE=1 DESTDIR='$(3)' install; \
       if [ $(MXE_SYSTEM) = mingw ]; then \
         echo "Install dll"; \
-        $(INSTALL) '$(1)/libgl2ps.dll' '$(HOST_BINDIR)/'; \
+        $(INSTALL) '$(1)/libgl2ps.dll' '$(3)$(HOST_BINDIR)/'; \
       fi; \
     fi
 endef
+endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/msvc-gl2ps-1.patch	Sat Nov 09 23:28:04 2013 -0500
@@ -0,0 +1,54 @@
+diff -ur gl2ps-1.3.8-source-orig/CMakeLists.txt gl2ps-1.3.8-source/CMakeLists.txt
+--- gl2ps-1.3.8-source-orig/CMakeLists.txt	2012-11-27 14:41:06 -0500
++++ gl2ps-1.3.8-source/CMakeLists.txt	2013-11-09 15:41:14 -0500
+@@ -32,6 +32,9 @@
+ #  Please report all bugs and problems to <gl2ps@geuz.org>.
+ 
+ cmake_minimum_required(VERSION 2.4 FATAL_ERROR)
++if(COMMAND cmake_policy)
++  cmake_policy(SET CMP0003 NEW)
++endif(COMMAND cmake_policy)
+ 
+ # if CMAKE_BUILD_TYPE is specified use it; otherwise set the default
+ # build type to "RelWithDebInfo" ("-O2 -g" with gcc) prior to calling
+@@ -109,9 +112,6 @@
+ include_directories(${EXTERNAL_INCLUDES})
+ 
+ if(OPENGL_FOUND)
+-  add_library(lib STATIC gl2ps.c gl2ps.h)
+-  set_target_properties(lib PROPERTIES OUTPUT_NAME gl2ps)
+-
+   add_library(shared SHARED gl2ps.c gl2ps.h)
+   target_link_libraries(shared ${EXTERNAL_LIBRARIES})
+   set_target_properties(shared PROPERTIES OUTPUT_NAME gl2ps)
+@@ -122,14 +122,10 @@
+     set_target_properties(shared PROPERTIES COMPILE_FLAGS "-DGL2PSDLL -DGL2PSDLL_EXPORTS")
+   endif(MSVC)
+ 
+-  install(TARGETS lib shared DESTINATION lib${LIB_SUFFIX})
++  install(TARGETS shared RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX})
+ endif(OPENGL_FOUND)
+ 
+-if(WIN32)
+-  set(GL2PS_DOC .)
+-else(WIN32)
+-  set(GL2PS_DOC share/doc/gl2ps)
+-endif(WIN32)
++set(GL2PS_DOC share/doc/gl2ps)
+ 
+ install(FILES gl2ps.h DESTINATION include)
+ install(FILES ${CMAKE_SOURCE_DIR}/README.txt DESTINATION ${GL2PS_DOC})
+diff -ur gl2ps-1.3.8-source-orig/gl2ps.h gl2ps-1.3.8-source/gl2ps.h
+--- gl2ps-1.3.8-source-orig/gl2ps.h	2012-11-27 14:41:06 -0500
++++ gl2ps-1.3.8-source/gl2ps.h	2013-11-09 15:38:14 -0500
+@@ -41,6 +41,10 @@
+ 
+ /* Define GL2PSDLL at compile time to build a Windows DLL */
+ 
++#if defined(_MSC_VER) && !defined(GL2PSDLL)
++#  define GL2PSDLL
++#endif
++
+ #if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)
+ #  if defined(_MSC_VER)
+ #    pragma warning(disable:4115)