QT 3.0

Ralf Habacker kde-cygwin@mail.kde.org
Thu, 18 Apr 2002 21:57:30 +0200


This is a multi-part message in MIME format.

------=_NextPart_000_0041_01C1E724.097BC5F0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

> -----Original Message-----
> From: kde-cygwin-admin@mail.kde.org
> [mailto:kde-cygwin-admin@mail.kde.org]On Behalf Of Chris January
> Sent: Tuesday, April 16, 2002 7:04 PM
> To: kde-cygwin@mail.kde.org
> Subject: Re: QT 3.0
> 
> 
> > > Basically with QT 3 there has been a move from the previous
> configuration
> > > scripts to qmake. This causes some problems with Cygwin because Cygwin
> > > requires a special set of steps to be taken in order to produce shared
> > > libraries and these aren't supported by qmake. The DLL links using the
> qmake
> > > generated Makefile, but is useless since it doesn't have a .DLL suffix.
> I
> > > have produced my own script which creates a qt-mt-3-0.dll but this is
> only a
> > > temporary fix. So what I'm asking is if anyone has any ideas on how to
> solve
> > > this problem.
> > Yes, I have a patched qt3-cygwin release with native qdir/qfile support.
> > You can get qt-3 in the next few days from cvs.
> How did you link the DLL?
With ld, of course. Im not sure, what you like to hear with this question. 
I have created a mkspec/cygwin-g++/dir and have patched qmake. See the 
appended patch of the head release of anoncvs.kde.orgs qt-copy dir

Ralf 

------=_NextPart_000_0041_01C1E724.097BC5F0
Content-Type: application/octet-stream;
	name="qt_copy_3_cygwin.patch"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="qt_copy_3_cygwin.patch"

Index: configure=0A=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A=
RCS file: /home/kde/qt-copy/configure,v=0A=
retrieving revision 1.36=0A=
diff -u -b -B -r1.36 configure=0A=
--- configure	22 Mar 2002 20:33:36 -0000	1.36=0A=
+++ configure	18 Apr 2002 19:20:13 -0000=0A=
@@ -939,6 +939,9 @@=0A=
 	    - Also available for Linux: linux-kcc linux-icc linux-cxx=0A=
 	"=0A=
 	;;=0A=
+     CYGWIN*:*)=0A=
+        PLATFORM=3Dcygwin-g++=0A=
+        ;;=0A=
      SunOS:5*)=0A=
 	#PLATFORM=3Dsolaris-g++=0A=
 	PLATFORM=3Dsolaris-cc=0A=
Index: qmake/generators/unix/unixmake.cpp=0A=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A=
RCS file: /home/kde/qt-copy/qmake/generators/unix/unixmake.cpp,v=0A=
retrieving revision 1.15=0A=
diff -u -b -B -r1.15 unixmake.cpp=0A=
--- qmake/generators/unix/unixmake.cpp	15 Mar 2002 19:31:26 -0000	1.15=0A=
+++ qmake/generators/unix/unixmake.cpp	18 Apr 2002 19:21:26 -0000=0A=
@@ -71,7 +71,11 @@=0A=
     }=0A=
 =0A=
     if( project->isEmpty("QMAKE_EXTENSION_SHLIB") )=0A=
+#ifdef __CYGWIN__=0A=
+	project->variables()["QMAKE_EXTENSION_SHLIB"].append( "dll" );=0A=
+#else=0A=
 	project->variables()["QMAKE_EXTENSION_SHLIB"].append( "so" );=0A=
+#endif =0A=
     if( project->isEmpty("QMAKE_COPY_FILE") )=0A=
 	project->variables()["QMAKE_COPY_FILE"].append( "$(COPY) -p" );=0A=
     if( project->isEmpty("QMAKE_COPY_DIR") )=0A=
@@ -365,6 +369,7 @@=0A=
 		uninst.append("\n\t");=0A=
 	    uninst.append("-$(DEL_FILE) \"" + dst_prl + "\"");=0A=
 	}=0A=
+#ifndef __CYGWIN__=0A=
 	if(!project->isActiveConfig("staticlib")) {=0A=
 	    if(project->isActiveConfig("plugin")) {=0A=
 	    } else if ( !project->isEmpty("QMAKE_HPUX_SHLIB") ) {=0A=
@@ -372,6 +377,7 @@=0A=
 	    }else=0A=
 		links << "$(TARGET0)" << "$(TARGET1)" << "$(TARGET2)";=0A=
 	}=0A=
+#endif =0A=
     }=0A=
     QString src_targ =3D target;=0A=
     if(!destdir.isEmpty())=0A=
Index: qmake/generators/unix/unixmake2.cpp=0A=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A=
RCS file: /home/kde/qt-copy/qmake/generators/unix/unixmake2.cpp,v=0A=
retrieving revision 1.15=0A=
diff -u -b -B -r1.15 unixmake2.cpp=0A=
--- qmake/generators/unix/unixmake2.cpp	15 Mar 2002 19:31:26 -0000	1.15=0A=
+++ qmake/generators/unix/unixmake2.cpp	18 Apr 2002 19:21:29 -0000=0A=
@@ -35,6 +35,13 @@=0A=
 **=0A=
 **********************************************************************/=0A=
 =0A=
+/* cygwin notes =0A=
+   =0A=
+ TARGET - absolute path for shared library =0A=
+ TARGETA - absolute path for static library =0A=
+ TARGET0 - absolute path for shared import library =0A=
+*/=0A=
+=0A=
 #include "unixmake.h"=0A=
 #include "option.h"=0A=
 #include <qregexp.h>=0A=
@@ -214,14 +221,23 @@=0A=
     t << "DESTDIR  =3D " << var("DESTDIR") << endl;=0A=
     t << "TARGET   =3D " << var("TARGET") << endl;=0A=
     if(project->isActiveConfig("plugin") ) {=0A=
-	t << "TARGETD   =3D " << var("TARGET") << endl;=0A=
+#ifdef __CYGWIN__=0A=
+        t << "TARGETA   =3D " << var("TARGET_.a") << endl;=0A=
+        t << "TARGET0   =3D " << var("TARGET_.dll.a") << endl;=0A=
+#else =0A=
+      	t << "TARGETD   =3D " << var("TARGET_x") << endl;=0A=
+#endif=0A=
     } else if (!project->isActiveConfig("staticlib") && =
project->variables()["QMAKE_APP_FLAG"].isEmpty()) {=0A=
 	t << "TARGETA	=3D " << var("TARGETA") << endl;=0A=
 	if(project->variables()["QMAKE_HPUX_SHLIBS"].isEmpty()) {=0A=
+#ifdef __CYGWIN__=0A=
+      t << "TARGET0   =3D " << var("TARGET_.dll.a") << endl;=0A=
+#else =0A=
 	    t << "TARGETD	=3D " << var("TARGET_x.y.z") << endl;=0A=
 	    t << "TARGET0	=3D " << var("TARGET_") << endl;=0A=
 	    t << "TARGET1	=3D " << var("TARGET_x") << endl;=0A=
 	    t << "TARGET2	=3D " << var("TARGET_x.y") << endl;=0A=
+#endif =0A=
 	}=0A=
 	else {=0A=
 	    t << "TARGETD	=3D " << var("TARGET_x") << endl;=0A=
@@ -469,9 +485,11 @@=0A=
 	    t << "\n\t"=0A=
 	      << "-rm -f $(TARGET)" << "\n\t"=0A=
 	      << var("QMAKE_LINK_SHLIB_CMD");=0A=
+#ifndef __CYGWIN__=0A=
 	    if(!destdir.isEmpty())=0A=
 		t << "\n\t"=0A=
 		  << "-mv $(TARGET) " << var("DESTDIR");=0A=
+#endif =0A=
 	    if(!project->isEmpty("QMAKE_POST_LINK"))=0A=
 		t << "\n\t" << var("QMAKE_POST_LINK") << "\n\t";=0A=
 	    t << endl << endl;=0A=
@@ -479,6 +497,7 @@=0A=
 	    t << "\n\t"=0A=
 	      << "-rm -f $(TARGET) $(TARGET0) $(TARGET1) $(TARGET2)" << "\n\t"=0A=
 	      << var("QMAKE_LINK_SHLIB_CMD") << "\n\t";=0A=
+#ifndef __CYGWIN__=0A=
 	    t << varGlue("QMAKE_LN_SHLIB",""," "," $(TARGET) $(TARGET0)")  << =
"\n\t"=0A=
 	      << varGlue("QMAKE_LN_SHLIB",""," "," $(TARGET) $(TARGET1)") << =
"\n\t"=0A=
 	      << varGlue("QMAKE_LN_SHLIB",""," "," $(TARGET) $(TARGET2)");=0A=
@@ -489,6 +508,7 @@=0A=
 		  << "-rm -f " << var("DESTDIR") << "$(TARGET1)\n\t"=0A=
 		  << "-rm -f " << var("DESTDIR") << "$(TARGET2)\n\t"=0A=
 		  << "-mv $(TARGET) $(TARGET0) $(TARGET1) $(TARGET2) " << =
var("DESTDIR");=0A=
+#endif =0A=
 	    if(!project->isEmpty("QMAKE_POST_LINK"))=0A=
 		t << "\n\t" << var("QMAKE_POST_LINK");=0A=
 	    t << endl << endl;=0A=
@@ -497,11 +517,13 @@=0A=
 	      << "-rm -f $(TARGET) $(TARGET0)" << "\n\t"=0A=
 	      << var("QMAKE_LINK_SHLIB_CMD") << "\n\t";=0A=
 	    t << varGlue("QMAKE_LN_SHLIB",""," "," $(TARGET) $(TARGET0)");=0A=
+#ifndef __CYGWIN__=0A=
 	    if(!destdir.isEmpty())=0A=
 		t  << "\n\t"=0A=
 		   << "-rm -f " << var("DESTDIR") << "$(TARGET)\n\t"=0A=
 		   << "-rm -f " << var("DESTDIR") << "$(TARGET0)\n\t"=0A=
 		   << "-mv $(TARGET) $(TARGET0) " << var("DESTDIR");=0A=
+#endif =0A=
 	    if(!project->isEmpty("QMAKE_POST_LINK"))=0A=
 		t << "\n\t" << var("QMAKE_POST_LINK");=0A=
 	    t << endl << endl;=0A=
@@ -640,11 +662,19 @@=0A=
     if(!destdir.isEmpty() && destdir.right(1) !=3D Option::dir_sep)=0A=
 	destdir +=3D Option::dir_sep;=0A=
     t << "distclean: " << "clean\n\t"=0A=
+#ifdef __CYGWIN=0A=
+      << "-rm -f " << destdir << "$(TARGET) $(TARGET0) \n\t";=0A=
+#else =0A=
       << "-rm -f " << destdir << "$(TARGET)" << " " << "$(TARGET)" << =
"\n\t";=0A=
+#endif =0A=
     if(!project->isActiveConfig("staticlib") && =
project->variables()["QMAKE_APP_FLAG"].isEmpty() &&=0A=
        !project->isActiveConfig("plugin"))=0A=
+#ifdef __CYGWIN=0A=
+	t << "-rm -f $(TARGETA)\n\t";=0A=
+#else=0A=
 	t << "-rm -f " << destdir << "$(TARGET0) " << destdir << "$(TARGET1) "=0A=
 	  << destdir << "$(TARGET2) $(TARGETA)" << "\n\t";=0A=
+#endif =0A=
     t << endl << endl;=0A=
 =0A=
     if ( !project->isEmpty("PRECOMPH") ) {=0A=
@@ -794,12 +824,19 @@=0A=
 	else=0A=
 	    project->variables()["QMAKE_AR_CMD"].append("$(AR) $(TARGETA) =
$(OBJECTS) $(OBJMOC)");=0A=
 	if( project->isActiveConfig("plugin") ) {=0A=
+#ifdef __CYGWIN__=0A=
+    project->variables()["TARGET_"].append(project->first("DESTDIR") + =
project->first("TARGET") + "-" + project->first("VER_MAJ") + "." + =
project->first("QMAKE_EXTENSION_SHLIB"));=0A=
+    =
project->variables()["TARGET_.dll.a"].append(project->first("DESTDIR") + =
"lib" + project->first("TARGET") + ".dll.a");=0A=
+    project->variables()["TARGET_.a"].append(project->first("DESTDIR") =
+ "lib" + project->first("TARGET") + ".a");=0A=
+    project->variables()["TARGET"] =3D project->variables()["TARGET_"];=0A=
+#else =0A=
 	    project->variables()["TARGET_x.y.z"].append("lib" +=0A=
 							project->first("TARGET") + "." + =
project->first("QMAKE_EXTENSION_SHLIB"));=0A=
 	    project->variables()["TARGET_x"].append("lib" + =
project->first("TARGET") + "." +=0A=
 						    project->first("QMAKE_EXTENSION_SHLIB") +=0A=
 						    "." + project->first("VER_MAJ"));=0A=
 	    project->variables()["TARGET"] =3D =
project->variables()["TARGET_x.y.z"];=0A=
+#endif =0A=
 	    if(project->isActiveConfig("qt"))=0A=
 		project->variables()["DEFINES"].append("QT_PLUGIN");=0A=
 	} else if ( !project->variables()["QMAKE_HPUX_SHLIB"].isEmpty() ) {=0A=
@@ -822,6 +859,12 @@=0A=
 							project->first("VER_PAT"));=0A=
 	    project->variables()["TARGET"] =3D =
project->variables()["TARGET_x.y.z"];=0A=
 	} else {=0A=
+#ifdef __CYGWIN__=0A=
+      =
project->variables()["TARGET_"].append(project->first("DLLDESTDIR") + =
"/" + project->first("TARGET") + "-" + project->first("VER_MAJ") + "." + =
project->first("QMAKE_EXTENSION_SHLIB"));=0A=
+      =
project->variables()["TARGET_.dll.a"].append(project->first("DESTDIR") + =
"lib" + project->first("TARGET") + ".dll.a");=0A=
+      =
project->variables()["TARGET_.a"].append(project->first("DESTDIR") + =
"lib" + project->first("TARGET") + ".a");=0A=
+      project->variables()["TARGET"] =3D =
project->variables()["TARGET_"];=0A=
+#else =0A=
 	    project->variables()["TARGET_"].append("lib" + =
project->first("TARGET") + "." +=0A=
 						   project->first("QMAKE_EXTENSION_SHLIB"));=0A=
 	    project->variables()["TARGET_x"].append("lib" + =
project->first("TARGET") + "." +=0A=
@@ -839,6 +882,7 @@=0A=
 							project->first("VER_MIN") +  "." +=0A=
 							project->first("VER_PAT"));=0A=
 	    project->variables()["TARGET"] =3D =
project->variables()["TARGET_x.y.z"];=0A=
+#endif =0A=
 	}=0A=
 	project->variables()["QMAKE_LN_SHLIB"].append("-ln -s");=0A=
 	project->variables()["DESTDIR_TARGET"].append("$(TARGET)");=0A=
Index: src/kernel/qapplication.cpp=0A=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A=
RCS file: /home/kde/qt-copy/src/kernel/qapplication.cpp,v=0A=
retrieving revision 1.48=0A=
diff -u -b -B -r1.48 qapplication.cpp=0A=
--- src/kernel/qapplication.cpp	15 Mar 2002 19:31:40 -0000	1.48=0A=
+++ src/kernel/qapplication.cpp	18 Apr 2002 19:22:07 -0000=0A=
@@ -3906,3 +3906,140 @@=0A=
 #endif // QT_NO_SM_SUPPORT=0A=
 #endif //QT_NO_SESSIONMANAGER=0A=
 =0A=
+#if defined(Q_OS_CYGWIN)=0A=
+#include <windows.h>=0A=
+=0A=
+Qt::WindowsVersion QApplication::winVersion()=0A=
+{=0A=
+   OSVERSIONINFOA osvi;=0A=
+   BOOL bOsVersionInfoEx;=0A=
+=0A=
+   // Try calling GetVersionEx using the OSVERSIONINFOEX structure.=0A=
+   //=0A=
+   // If that fails, try using the OSVERSIONINFO structure.=0A=
+=0A=
+   ZeroMemory(&osvi, sizeof(OSVERSIONINFOA));=0A=
+   osvi.dwOSVersionInfoSize =3D sizeof(OSVERSIONINFOA);=0A=
+=0A=
+   if( !(bOsVersionInfoEx =3D GetVersionEx ((OSVERSIONINFO *) &osvi)) )=0A=
+   {=0A=
+      // If OSVERSIONINFOEX doesn't work, try OSVERSIONINFO.=0A=
+=0A=
+      osvi.dwOSVersionInfoSize =3D sizeof (OSVERSIONINFO);=0A=
+      if (! GetVersionEx ( (OSVERSIONINFO *) &osvi) ) =0A=
+         return WV_DOS_based;=0A=
+   }=0A=
+=0A=
+   switch (osvi.dwPlatformId)=0A=
+   {=0A=
+      case VER_PLATFORM_WIN32_NT:=0A=
+=0A=
+      // Test for the product.=0A=
+=0A=
+         if ( osvi.dwMajorVersion <=3D 4 )=0A=
+						return WV_NT;=0A=
+        //   printf("Microsoft Windows NT ");=0A=
+=0A=
+         if ( osvi.dwMajorVersion =3D=3D 5 && osvi.dwMinorVersion =
=3D=3D 0 )=0A=
+						return WV_2000;=0A=
+        //   printf ("Microsoft Windows 2000 ");=0A=
+=0A=
+         if ( osvi.dwMajorVersion =3D=3D 5 && osvi.dwMinorVersion =
=3D=3D 1 )=0A=
+						return WV_XP;=0A=
+        //   printf ("Microsoft Windows XP ");=0A=
+=0A=
+=0A=
+      // Test for product type.=0A=
+#if 0=0A=
+         if( bOsVersionInfoEx )=0A=
+         {=0A=
+            if ( osvi.wProductType =3D=3D VER_NT_WORKSTATION )=0A=
+            {=0A=
+               if( osvi.wSuiteMask & VER_SUITE_PERSONAL )=0A=
+              //   printf ( "Personal " );=0A=
+               else=0A=
+              //   printf ( "Professional " );=0A=
+            }=0A=
+=0A=
+            else if ( osvi.wProductType =3D=3D VER_NT_SERVER )=0A=
+            {=0A=
+               if( osvi.wSuiteMask & VER_SUITE_DATACENTER )=0A=
+              //   printf ( "DataCenter Server " );=0A=
+               else if( osvi.wSuiteMask & VER_SUITE_ENTERPRISE )=0A=
+              //   printf ( "Advanced Server " );=0A=
+               else=0A=
+              //   printf ( "Server " );=0A=
+            }=0A=
+         }=0A=
+         else=0A=
+         {=0A=
+            HKEY hKey;=0A=
+            char szProductType[80];=0A=
+            DWORD dwBufLen;=0A=
+=0A=
+            RegOpenKeyEx( HKEY_LOCAL_MACHINE,=0A=
+               "SYSTEM\\CurrentControlSet\\Control\\ProductOptions",=0A=
+               0, KEY_QUERY_VALUE, &hKey );=0A=
+            RegQueryValueEx( hKey, "ProductType", NULL, NULL,=0A=
+               (LPBYTE) szProductType, &dwBufLen);=0A=
+            RegCloseKey( hKey );=0A=
+            if ( lstrcmpi( "WINNT", szProductType) =3D=3D 0 )=0A=
+           //   printf( "Professional " );=0A=
+            if ( lstrcmpi( "LANMANNT", szProductType) =3D=3D 0 )=0A=
+           //   printf( "Server " );=0A=
+            if ( lstrcmpi( "SERVERNT", szProductType) =3D=3D 0 )=0A=
+           //   printf( "Advanced Server " );=0A=
+         }=0A=
+#endif =0A=
+=0A=
+      // Display version, service pack (if any), and build number.=0A=
+#if 0=0A=
+         if ( osvi.dwMajorVersion <=3D 4 )=0A=
+         {=0A=
+           printf ("version %d.%d %s (Build %d)\n",=0A=
+               osvi.dwMajorVersion,=0A=
+               osvi.dwMinorVersion,=0A=
+               osvi.szCSDVersion,=0A=
+               osvi.dwBuildNumber & 0xFFFF);=0A=
+         }=0A=
+         else=0A=
+         { =0A=
+           printf ("%s (Build %d)\n",=0A=
+               osvi.szCSDVersion,=0A=
+               osvi.dwBuildNumber & 0xFFFF);=0A=
+         }=0A=
+#endif =0A=
+         break;=0A=
+=0A=
+      case VER_PLATFORM_WIN32_WINDOWS:=0A=
+=0A=
+         if (osvi.dwMajorVersion =3D=3D 4 && osvi.dwMinorVersion =3D=3D =
0)=0A=
+         {=0A=
+ 						 return WV_95;=0A=
+         //   printf ("Microsoft Windows 95 ");=0A=
+         //    if ( osvi.szCSDVersion[1] =3D=3D 'C' || =
osvi.szCSDVersion[1] =3D=3D 'B' )=0A=
+         //      printf("OSR2 " );=0A=
+         } =0A=
+=0A=
+         if (osvi.dwMajorVersion =3D=3D 4 && osvi.dwMinorVersion =3D=3D =
10)=0A=
+         {=0A=
+ 						 return WV_98;=0A=
+         //   printf ("Microsoft Windows 98 ");=0A=
+         //    if ( osvi.szCSDVersion[1] =3D=3D 'A' )=0A=
+         //      printf("SE " );=0A=
+         } =0A=
+=0A=
+         if (osvi.dwMajorVersion =3D=3D 4 && osvi.dwMinorVersion =3D=3D =
90)=0A=
+         {=0A=
+ 						 return WV_Me;=0A=
+         //   printf ("Microsoft Windows Me ");=0A=
+         } =0A=
+         break;=0A=
+=0A=
+      case VER_PLATFORM_WIN32s:=0A=
+				 return WV_32s;=0A=
+     //   printf ("Microsoft Win32s ");=0A=
+         break;=0A=
+   }=0A=
+}=0A=
+#endif =0A=
Index: src/kernel/qapplication.h=0A=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A=
RCS file: /home/kde/qt-copy/src/kernel/qapplication.h,v=0A=
retrieving revision 1.44=0A=
diff -u -b -B -r1.44 qapplication.h=0A=
--- src/kernel/qapplication.h	15 Mar 2002 19:31:40 -0000	1.44=0A=
+++ src/kernel/qapplication.h	18 Apr 2002 19:22:08 -0000=0A=
@@ -202,7 +202,12 @@=0A=
     static int       wheelScrollLines();=0A=
 #endif=0A=
     static void	     setGlobalStrut( const QSize & );=0A=
+=0A=
+#ifdef Q_OS_CYGWIN_=0A=
+    static QSize 		 &globalStrut();=0A=
+#else=0A=
     static QSize     globalStrut();=0A=
+#endif =0A=
 =0A=
 #ifndef QT_NO_COMPONENT=0A=
     static void      setLibraryPaths(const QStringList &);=0A=
@@ -249,6 +254,10 @@=0A=
     void	     winFocus( QWidget *, bool );=0A=
     static void	     winMouseButtonUp();=0A=
 #endif=0A=
+=0A=
+#if defined(Q_OS_CYGWIN)=0A=
+    static WindowsVersion winVersion();=0A=
+#endif =0A=
 =0A=
 #ifndef QT_NO_SESSIONMANAGER=0A=
     // session management=0A=
Index: src/network/qdns.cpp=0A=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A=
RCS file: /home/kde/qt-copy/src/network/qdns.cpp,v=0A=
retrieving revision 1.24=0A=
diff -u -b -B -r1.24 qdns.cpp=0A=
--- src/network/qdns.cpp	15 Mar 2002 19:31:55 -0000	1.24=0A=
+++ src/network/qdns.cpp	18 Apr 2002 19:23:25 -0000=0A=
@@ -2069,7 +2069,7 @@=0A=
 }=0A=
 #endif=0A=
 =0A=
-#if defined(Q_OS_UNIX)=0A=
+#if defined(Q_OS_UNIX) && !defined(Q_OS_CYGWIN)=0A=
 =0A=
 #if defined(Q_DNS_SYNCHRONOUS)=0A=
 void QDns::doSynchronousLookup()=0A=
@@ -2211,7 +2211,11 @@=0A=
     }=0A=
 }=0A=
 =0A=
-#elif defined(Q_OS_WIN32)=0A=
+#elif defined(Q_OS_WIN32) || defined(Q_OS_CYGWIN)=0A=
+=0A=
+#if defined(Q_OS_CYGWIN)=0A=
+#include <windows.h>=0A=
+#endif =0A=
 =0A=
 #if defined(Q_DNS_SYNCHRONOUS)=0A=
 void QDns::doSynchronousLookup()=0A=
Index: src/tools/qglobal.h=0A=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A=
RCS file: /home/kde/qt-copy/src/tools/qglobal.h,v=0A=
retrieving revision 1.44=0A=
diff -u -b -B -r1.44 qglobal.h=0A=
--- src/tools/qglobal.h	15 Mar 2002 19:32:04 -0000	1.44=0A=
+++ src/tools/qglobal.h	18 Apr 2002 19:23:29 -0000=0A=
@@ -153,6 +153,9 @@=0A=
 #elif defined(__svr4__)=0A=
 /*   generic fallback for the rest of svr4 systems, e.g. g++ on =
UnixWare7.*/=0A=
 #  define Q_OS_SVR4=0A=
+#elif defined(__CYGWIN__)=0A=
+#  define Q_OS_CYGWIN=0A=
+#  define Q_OS_LINUX=0A=
 #else=0A=
 #  error "Qt has not been ported to this OS - talk to =
qt-bugs@trolltech.com"=0A=
 #endif=0A=
--- /dev/null	Thu Apr 18 19:32:15 2002=0A=
+++ mkspecs/cygwin-g++/qmake.conf	Tue Apr  2 20:10:18 2002=0A=
@@ -0,0 +1,79 @@=0A=
+#=0A=
+# $Id$=0A=
+#=0A=
+# qmake configuration for cygwin-g++=0A=
+#=0A=
+=0A=
+MAKEFILE_GENERATOR	=3D UNIX=0A=
+TEMPLATE		=3D app=0A=
+CONFIG			+=3D qt warn_on release incremental=0A=
+=0A=
+QMAKE_CC		=3D gcc=0A=
+QMAKE_LEX		=3D flex=0A=
+QMAKE_LEXFLAGS		=3D =0A=
+QMAKE_YACC		=3D yacc=0A=
+QMAKE_YACCFLAGS		=3D -d=0A=
+QMAKE_CFLAGS		=3D -pipe=0A=
+QMAKE_CFLAGS_DEPS	=3D -M=0A=
+QMAKE_CFLAGS_WARN_ON	=3D -Wall -W=0A=
+QMAKE_CFLAGS_WARN_OFF	=3D=0A=
+QMAKE_CFLAGS_RELEASE	=3D -O2=0A=
+QMAKE_CFLAGS_DEBUG	=3D -g=0A=
+QMAKE_CFLAGS_SHLIB	=3D =0A=
+QMAKE_CFLAGS_YACC	=3D -Wno-unused -Wno-parentheses=0A=
+QMAKE_CFLAGS_THREAD	=3D -D_REENTRANT=0A=
+=0A=
+QMAKE_CXX		=3D g++=0A=
+QMAKE_CXXFLAGS_DEPS	=3D $$QMAKE_CFLAGS_DEPS=0A=
+QMAKE_CXXFLAGS		=3D $$QMAKE_CFLAGS=0A=
+QMAKE_CXXFLAGS_WARN_ON	=3D $$QMAKE_CFLAGS_WARN_ON=0A=
+QMAKE_CXXFLAGS_WARN_OFF	=3D $$QMAKE_CFLAGS_WARN_OFF=0A=
+QMAKE_CXXFLAGS_RELEASE	=3D $$QMAKE_CFLAGS_RELEASE=0A=
+QMAKE_CXXFLAGS_DEBUG	=3D $$QMAKE_CFLAGS_DEBUG=0A=
+QMAKE_CXXFLAGS_SHLIB	=3D $$QMAKE_CFLAGS_SHLIB=0A=
+QMAKE_CXXFLAGS_YACC	=3D $$QMAKE_CFLAGS_YACC=0A=
+QMAKE_CXXFLAGS_THREAD	=3D $$QMAKE_CFLAGS_THREAD=0A=
+=0A=
+QMAKE_INCDIR		=3D=0A=
+QMAKE_LIBDIR		=3D=0A=
+QMAKE_INCDIR_X11	=3D /usr/X11R6/include=0A=
+QMAKE_LIBDIR_X11	=3D /usr/X11R6/lib=0A=
+QMAKE_INCDIR_QT		=3D $(QTDIR)/include=0A=
+QMAKE_LIBDIR_QT		=3D $(QTDIR)/lib=0A=
+QMAKE_INCDIR_OPENGL	=3D /usr/X11R6/include=0A=
+QMAKE_LIBDIR_OPENGL	=3D /usr/X11R6/lib=0A=
+=0A=
+QMAKE_LINK		=3D g++=0A=
+QMAKE_LINK_SHLIB	=3D g++=0A=
+QMAKE_LFLAGS		=3D  -Wl,--enable-auto-import =0A=
+QMAKE_LFLAGS_RELEASE	=3D=0A=
+QMAKE_LFLAGS_DEBUG	=3D -g=0A=
+QMAKE_LFLAGS_SHLIB	=3D -shared -Wl,--export-all-symbols =
-Wl,--out-implib,$(TARGET0)=0A=
+QMAKE_LFLAGS_PLUGIN	=3D -shared -Wl,--export-all-symbols =
-Wl,--out-implib,$(TARGET0) =0A=
+QMAKE_LFLAGS_SONAME	=3D =0A=
+QMAKE_LFLAGS_THREAD	=3D=0A=
+QMAKE_RPATH		=3D -Wl,-rpath,=0A=
+QMAKE_CYGWIN_SHLIB	=3D 1=0A=
+=0A=
+QMAKE_LIBS		=3D =0A=
+QMAKE_LIBS_DYNLOAD	=3D -ldl=0A=
+QMAKE_LIBS_X11		=3D -lXext -lX11=0A=
+QMAKE_LIBS_X11SM	=3D -lICE -lSM=0A=
+QMAKE_LIBS_QT		=3D -lqt=0A=
+QMAKE_LIBS_QT_THREAD	=3D -lqt-mt=0A=
+QMAKE_LIBS_OPENGL	=3D -lGLU -lGL -lXmu=0A=
+QMAKE_LIBS_OPENGL_QT	=3D -lGL -lXmu=0A=
+QMAKE_LIBS_THREAD	=3D -lpthread=0A=
+=0A=
+QMAKE_MOC		=3D $(QTDIR)/bin/moc=0A=
+QMAKE_UIC		=3D $(QTDIR)/bin/uic=0A=
+=0A=
+QMAKE_AR		=3D ar cqs=0A=
+QMAKE_RANLIB		=3D=0A=
+=0A=
+QMAKE_TAR		=3D tar -cf=0A=
+QMAKE_GZIP		=3D gzip -9f=0A=
+=0A=
+QMAKE_COPY		=3D cp -f=0A=
+QMAKE_MOVE		=3D mv=0A=
+QMAKE_DEL		=3D rm -f=0A=
--- /dev/null	Thu Apr 18 19:32:29 2002=0A=
+++ mkspecs/cygwin-g++/qplatformdefs.h	Tue Apr  2 10:48:16 2002=0A=
@@ -0,0 +1,100 @@=0A=
+#ifndef QPLATFORMDEFS_H=0A=
+#define QPLATFORMDEFS_H=0A=
+=0A=
+// Get Qt defines/settings=0A=
+=0A=
+#include "qglobal.h"=0A=
+=0A=
+// Set any POSIX/XOPEN defines at the top of this file to turn on =
specific APIs=0A=
+=0A=
+// DNS system header files are a mess!=0A=
+// <resolv.h> includes <arpa/nameser.h>. <arpa/nameser.h> is using=0A=
+// 'u_char' and includes <sys/types.h>.  Now the problem is that=0A=
+// <sys/types.h> defines 'u_char' only if __USE_BSD is defined.=0A=
+// __USE_BSD is defined in <features.h> if _BSD_SOURCE is defined.=0A=
+#ifndef _BSD_SOURCE=0A=
+#  define _BSD_SOURCE=0A=
+#endif=0A=
+=0A=
+// 1) need to reset default environment if _BSD_SOURCE is defined=0A=
+// 2) need to specify POSIX thread interfaces explicitly in glibc 2.0=0A=
+// 3) it seems older glibc need this to include the X/Open stuff=0A=
+#ifndef _GNU_SOURCE=0A=
+#  define _GNU_SOURCE=0A=
+#endif=0A=
+=0A=
+#include <unistd.h>=0A=
+=0A=
+=0A=
+// We are hot - unistd.h should have turned on the specific APIs we =
requested=0A=
+=0A=
+=0A=
+#ifdef QT_THREAD_SUPPORT=0A=
+#include <pthread.h>=0A=
+#endif=0A=
+=0A=
+#include <dirent.h>=0A=
+#include <fcntl.h>=0A=
+#include <grp.h>=0A=
+#include <pwd.h>=0A=
+#include <signal.h>=0A=
+=0A=
+#include <sys/types.h>=0A=
+#include <sys/ioctl.h>=0A=
+#include <sys/ipc.h>=0A=
+#include <sys/time.h>=0A=
+#include <sys/shm.h>=0A=
+#include <sys/socket.h>=0A=
+#include <sys/stat.h>=0A=
+#include <sys/wait.h>=0A=
+=0A=
+// DNS header files are not fully covered by X/Open specifications.=0A=
+// In particular nothing is said about res_* :/=0A=
+// Header files <netinet/in.h> and <arpa/nameser.h> are not included=0A=
+// by <resolv.h> on older versions of the GNU C library. Note that=0A=
+// <arpa/nameser.h> must be included before <resolv.h>.=0A=
+#include <netinet/in.h>=0A=
+#if !defined(Q_OS_CYGWIN)=0A=
+#include <arpa/nameser.h>=0A=
+#include <resolv.h>=0A=
+#endif =0A=
+=0A=
+#define QT_STATBUF		struct stat=0A=
+#define QT_STATBUF4TSTAT	struct stat=0A=
+#define QT_STAT			::stat=0A=
+#define QT_FSTAT		::fstat=0A=
+#define QT_STAT_REG		S_IFREG=0A=
+#define QT_STAT_DIR		S_IFDIR=0A=
+#define QT_STAT_MASK		S_IFMT=0A=
+#define QT_STAT_LNK		S_IFLNK=0A=
+#define QT_FILENO		fileno=0A=
+#define QT_OPEN			::open=0A=
+#define QT_CLOSE		::close=0A=
+#define QT_LSEEK		::lseek=0A=
+#define QT_READ			::read=0A=
+#define QT_WRITE		::write=0A=
+#define QT_ACCESS		::access=0A=
+#define QT_GETCWD		::getcwd=0A=
+#define QT_CHDIR		::chdir=0A=
+#define QT_MKDIR		::mkdir=0A=
+#define QT_RMDIR		::rmdir=0A=
+#define QT_OPEN_RDONLY		O_RDONLY=0A=
+#define QT_OPEN_WRONLY		O_WRONLY=0A=
+#define QT_OPEN_RDWR		O_RDWR=0A=
+#define QT_OPEN_CREAT		O_CREAT=0A=
+#define QT_OPEN_TRUNC		O_TRUNC=0A=
+#define QT_OPEN_APPEND		O_APPEND=0A=
+=0A=
+#define QT_SIGNAL_RETTYPE	void=0A=
+#define QT_SIGNAL_ARGS		int=0A=
+#define QT_SIGNAL_IGNORE	SIG_IGN=0A=
+=0A=
+#define QT_SOCKLEN_T		socklen_t=0A=
+=0A=
+#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >=3D 500)=0A=
+#define QT_SNPRINTF		::snprintf=0A=
+#define QT_VSNPRINTF		::vsnprintf=0A=
+#endif=0A=
+=0A=
+=0A=
+#endif // QPLATFORMDEFS_H=0A=
--- /dev/null	Thu Apr 18 19:33:46 2002=0A=
+++ config.cygwin	Mon Apr  1 16:46:19 2002=0A=
@@ -0,0 +1,8 @@=0A=
+# wished release configure =0A=
+# libpng has configure error if using qt-libpng=0A=
+# for threads add -lcygwin =0A=
+#./configure -qt-zlib -qt-gif -system-libpng -qt-jpeg -qt-libmng =
-no-g++-exceptions  -thread=0A=
+=0A=
+# currently config =0A=
+# libpng has configure error if using -qt-libpng=0A=
+./configure -platform cygwin-g++ -plugin-imgfmt-mng -thread -no-stl =
-system-zlib -qt-gif -system-libpng -system-libjpeg -qt-libmng =
-no-g++-exceptions -no-xft -no-xkb=0A=

------=_NextPart_000_0041_01C1E724.097BC5F0--