You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by su...@apache.org on 2003/08/04 07:11:04 UTC

cvs commit: xml-axis/c/src/wcg Deploy.cpp

susantha    2003/08/03 22:11:04

  Modified:    c/src/wcg Deploy.cpp
  Log:
  improved WCG so that it now generates wsdl
  
  Revision  Changes    Path
  1.5       +50 -11    xml-axis/c/src/wcg/Deploy.cpp
  
  Index: Deploy.cpp
  ===================================================================
  RCS file: /home/cvs/xml-axis/c/src/wcg/Deploy.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- Deploy.cpp	25 Jul 2003 15:04:21 -0000	1.4
  +++ Deploy.cpp	4 Aug 2003 05:11:04 -0000	1.5
  @@ -39,8 +39,13 @@
   bool is_parameters_valid();
   bool is_webservice_header_compilable();
   
  -const char* VCCOMPILECOMMAND = "cl *.cpp /c /ML /W3 /GX /O2 /D \"WIN32\" ";
  -const char* VCLINKERCOMMAND = "link *.obj /dll /pdb:none /machine:I386 ";
  +#ifdef WIN32
  +const char* COMPILECOMMAND = "cl *.cpp /c /ML /W3 /GX /O2 /D \"WIN32\" ";
  +const char* LINKERCOMMAND = "link *.obj /dll /pdb:none ";
  +#else
  +const char* COMPILECOMMAND = "gcc *.cpp -c -Wall -Wshadow -fPIC -O2";
  +const char* LINKERCOMMAND = "gcc -lstdc++ -shared -Wl,-soname,";
  +#endif
   
   #ifdef WIN32
   #define OPTIONTAG '/'
  @@ -159,10 +164,20 @@
   		exit(0);
   	}
   	cout << "Done" << endl;
  +
  +	cout << "Generating WSDL file for the service ...";
  +	string sURI = "www.opensource.lk"; //this should be taken from the WSDD file
  +	if (g_pTranslationUnit->GenerateWSDL(g_sServiceFile,sURI))
  +	{
  +		cout << "Failed" << endl;
  +		exit(0);
  +	}
  +	cout << "Done" << endl;
  +
   	string command;
   	list<string>::iterator sit;
   
  -	command = VCCOMPILECOMMAND;
  +	command = COMPILECOMMAND;
   	for (sit = g_sAxisIncludePaths.begin(); sit != g_sAxisIncludePaths.end(); sit++)
   	{
   		command += "-I" + (*sit) + " ";
  @@ -176,12 +191,20 @@
   	}
   	cout << "Done" << endl;
   	
  -	command = VCLINKERCOMMAND;
  +	command = LINKERCOMMAND;
  +#ifdef WIN32
  +	command += "/out:\"" + g_sServiceFile + ".dll\" ";
  +#else
  +	command += g_sServiceFile + ".so -o " + g_sServiceFile + ".so *.o ";
  +#endif
   	for (sit = g_sLibraryPaths.begin(); sit != g_sLibraryPaths.end(); sit++)
   	{
  +#ifdef WIN32
   		command += "/libpath:\"" + (*sit) + "\" ";
  +#else
  +		command += "-L " + (*sit) + " ";
  +#endif
   	}
  -	command += "/out:\"" + g_sServiceFile + ".dll\" ";
   	for (sit = g_sCompiledLibs.begin(); sit != g_sCompiledLibs.end(); sit++)
   	{
   		command += (*sit) + " ";
  @@ -196,7 +219,11 @@
   
   	cout << "Deleting temporary files ...";
   	command = DELETECOMMAND;
  +#ifdef WIN32
   	command += "*.obj *.exp *.lib ";
  +#else
  +	command += "*.o *.a ";
  +#endif
   	if (!bDontDeleteSourceFiles)
   	{
   		command += "*.cpp *.hpp";
  @@ -227,15 +254,21 @@
   
   void usage()
   {
  -	cout << "Generates the depoyable web services for Axis C++" << endl;
  +	cout << "Generates the depoyable web services for Axis C++ using webservice's header file(s) and the static libraries" << endl;
   	cout << "Usage: wcg " << endl;
   //	cout << "\t/c<Compiler to use>" << endl;
  -	cout << "\t/I<path to axis include directory>" << endl;
  -	cout << "\t/L<path to web service library directory" << endl;
  -	cout << "\t/l<web service library file>" << endl;
  -	cout << "\t/o<output file>" << endl;
  +	cout << "\t" << OPTIONTAG << "I<path to axis include directory>" << endl;
  +	cout << "\t" << OPTIONTAG << "L<path to web service static library directory" << endl;
  +	cout << "\t" << OPTIONTAG << "l<web service static library file>" << endl;
  +	cout << "\t" << OPTIONTAG << "D<do not delete intermediate source files>" << endl;
  +	cout << "\t" << OPTIONTAG << "o<output file (service name)>" << endl;
   	cout << "\t<web service header file>" << endl;
   	cout << endl;
  +#ifdef WIN32
  +	cout << "Make sure you have setup environment for Visual C++ compiler and linker" << endl; 
  +#else
  +	cout << "Make sure you have setup environment for GNU compiler gcc" << endl; 	
  +#endif
   	cout << "Axis Wrapper Class Generator (www.opensource.lk)" << endl;
   	exit(0);
   }
  @@ -268,7 +301,12 @@
   	file << "class Opensource { public: int axis;};" << endl;
   	file.close();
   
  -	string command = "cl /c /w ";
  +	string command="";
  +#ifdef WIN32
  +	command = "cl /c /w ";
  +#else
  +	command = "gcc -c "
  +#endif
   
   	for (list<string>::iterator sit = g_sAxisIncludePaths.begin(); sit != g_sAxisIncludePaths.end(); sit++)
   	{
  @@ -276,6 +314,7 @@
   	}	
   
   	command += filename + ".cpp";
  +	cout << "Command :" << command << endl;
   	if (system(command.c_str()) == COMPLILER_FAILED)
   	{
   		command = DELETECOMMAND;