The attached patch adds icons and version information (which shows up
when opening the 'properties' tab) to the lyx executable on Windows
when building with autotools.

It is intended for branch, as after the earthquake it doesn't apply
anymore to trunk. I'll wait for the aftershocks before adapting it.

JMarc, may I apply it?

-- 
Enrico
Index: src/lyxwinres.rc.in
===================================================================
--- src/lyxwinres.rc.in (revision 0)
+++ src/lyxwinres.rc.in (revision 0)
@@ -0,0 +1,51 @@
+/* Icons */
+IDI_ICON1 ICON DISCARDABLE    
"@top_srcdir@/development/Win32/packaging/icons/lyx_32x32.ico"
+IDI_ICON2 ICON DISCARDABLE    
"@top_srcdir@/development/Win32/packaging/icons/lyx_doc_32x32.ico"
+
+#include <winver.h>
+
+#ifdef _WIN32
+#define PLATFORM "Windows\0"
+#define FILEDESC "LyX/Win\0"
+#else
+#define PLATFORM "Cygwin\0"
+#define FILEDESC "LyX/Cygwin\0"
+#endif
+
+#if @LYX_RELEASE_PATCH@ > 0
+#define PATCH_TAG "[EMAIL PROTECTED]@\0"
+#else
+#define PATCH_TAG "\0"
+#endif
+
+LANGUAGE 0x9, 0x1      /* LANG_ENGLISH, SUBLANG_DEFAULT */
+
+VS_VERSION_INFO VERSIONINFO
+FILEVERSION     
@LYX_MAJOR_VERSION@,@LYX_MINOR_VERSION@,@LYX_RELEASE_LEVEL@,@LYX_RELEASE_PATCH@
+PRODUCTVERSION  
@LYX_MAJOR_VERSION@,@LYX_MINOR_VERSION@,@LYX_RELEASE_LEVEL@,@LYX_RELEASE_PATCH@
+FILEFLAGSMASK   VS_FFI_FILEFLAGSMASK
+FILEFLAGS       0x0L
+FILEOS          VOS__WINDOWS32
+FILETYPE        VFT_APP
+FILESUBTYPE     0x0L
+{
+    BLOCK "StringFileInfo"
+    {
+       BLOCK "040904b0"
+       {
+           VALUE "FileDescription",  FILEDESC
+           VALUE "OriginalFilename", "lyx.exe\0"
+           VALUE "CompanyName",      "LyX Team\0"
+           VALUE "FileVersion",      "@[EMAIL PROTECTED]@[EMAIL 
PROTECTED]@LYX_RELEASE_LEVEL@" PATCH_TAG
+           VALUE "InternalName",     "LyX\0"
+           VALUE "LegalCopyright",   "Copyright \251 1995 by Matthias Ettrich, 
1995-2006 LyX Team\0"
+           VALUE "ProductName",      "LyX for " PLATFORM
+           VALUE "ProductVersion",   "@[EMAIL PROTECTED]"
+       }
+    }
+    BLOCK "VarFileInfo"
+    {
+       VALUE "Translation", 0x409, 1200
+    }
+}
+
Index: src/Makefile.am
===================================================================
--- src/Makefile.am     (revision 19426)
+++ src/Makefile.am     (working copy)
@@ -1,6 +1,7 @@
 include $(top_srcdir)/config/common.am
 
-DISTCLEANFILES += config.h libintl.h version.cpp stamp-version version.cpp-tmp
+DISTCLEANFILES += config.h libintl.h version.cpp stamp-version version.cpp-tmp 
\
+                 stamp-lyxwinres lyxwinres.rc-tmp
 
 MAINTAINERCLEANFILES += $(srcdir)/config.h.in
 
@@ -10,7 +11,7 @@ endif
 
 SUBDIRS = mathed insets graphics support frontends . $(CLIENT) tex2lyx
 
-EXTRA_DIST = config.h.in stamp-h.in version.cpp.in \
+EXTRA_DIST = config.h.in lyxwinres.rc.in stamp-h.in version.cpp.in \
        Section.h \
        Section.cpp \
        Variables.cpp \
@@ -41,9 +42,15 @@ lyx$(EXEEXT): $(FRONTENDS_PROGS)
        rm -f $@
        $(LN_S) $< $@
 
+if LYX_WIN_RESOURCE
+LYXWINRES = lyxwinres.rc
+.rc.o:
+       windres --preprocessor "$(CPP) -xc-header -DRC_INVOKED" $< -o $@
+endif
+
 #lyx_LDFLAGS=-Wl,-O1
 
-BUILT_SOURCES = $(PCH_FILE) version.cpp
+BUILT_SOURCES = $(PCH_FILE) version.cpp $(LYXWINRES)
 
 AM_CPPFLAGS += $(PCH_FLAGS) $(BOOST_INCLUDES)
 
@@ -60,7 +67,7 @@ endif
 
 
 lyx_SOURCES = \
-       $(ASPELL) $(PSPELL) $(ISPELL) SpellBase.cpp \
+       $(ASPELL) $(PSPELL) $(ISPELL) $(LYXWINRES) SpellBase.cpp \
        Author.cpp \
        Author.h \
        Bidi.cpp \
@@ -273,3 +280,17 @@ stamp-version: version.cpp-tmp
                cp $< version.cpp ;\
        fi
        echo timestamp > $@
+
+if LYX_WIN_RESOURCE
+lyxwinres.rc: stamp-lyxwinres
+       @:
+
+stamp-lyxwinres: lyxwinres.rc-tmp
+       if cmp -s $< lyxwinres.rc ; then \
+               : ;\
+       else \
+               rm -f lyxwinres.rc ;\
+               cp $< lyxwinres.rc ;\
+       fi
+       echo timestamp > $@
+endif
Index: configure.ac
===================================================================
--- configure.ac        (revision 19426)
+++ configure.ac        (working copy)
@@ -281,6 +281,27 @@ LIBS="$save_LIBS"
 AM_CONDITIONAL(BUILD_CLIENT_SUBDIR, $lyx_client_subdir)
 AC_LANG_POP(C)
 
+lyx_win_res=false;
+case ${host} in
+    *mingw*|*cygwin*) lyx_win_res=true;;
+esac
+AM_CONDITIONAL(LYX_WIN_RESOURCE, $lyx_win_res)
+if test "$lyx_win_res" = true; then
+    MAJOR=`echo $PACKAGE_VERSION | sed -e 's/[[.]].*//'`
+    MINOR=`echo $PACKAGE_VERSION | sed -e "s/^$MAJOR//" -e 's/^.//'`
+    RELEASE=$MINOR
+    MINOR=`echo $RELEASE | sed -e 's/[[.]].*//'`
+    RELEASE=`echo $RELEASE | sed -e "s/^$MINOR//" -e 's/^.//'`
+    PATCH=$RELEASE
+    RELEASE=`echo $PATCH | sed -e 's/[[^0-9]].*//'`
+    PATCH=`echo $PATCH | sed -e "s/^$RELEASE//" -e 's/^[[.]]//' -e 
's/[[^0-9]].*//'`
+    test "x$PATCH" = "x" && PATCH=0
+    AC_SUBST(LYX_MAJOR_VERSION,$MAJOR)
+    AC_SUBST(LYX_MINOR_VERSION,$MINOR)
+    AC_SUBST(LYX_RELEASE_LEVEL,$RELEASE)
+    AC_SUBST(LYX_RELEASE_PATCH,$PATCH)
+fi
+
 AC_FUNC_SELECT_ARGTYPES
 
 ### Some information on what just happened
@@ -430,6 +451,7 @@ AC_CONFIG_FILES([Makefile
        sourcedoc/Makefile \
        src/client/Makefile \
        src/Makefile \
+       src/lyxwinres.rc-tmp:src/lyxwinres.rc.in \
        src/version.cpp-tmp:src/version.cpp.in \
        src/tex2lyx/Makefile \
        src/mathed/Makefile \

Reply via email to