Return-Path: Delivered-To: apmail-incubator-stdcxx-dev-archive@www.apache.org Received: (qmail 60581 invoked from network); 15 Dec 2005 00:45:17 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 15 Dec 2005 00:45:17 -0000 Received: (qmail 99022 invoked by uid 500); 15 Dec 2005 00:45:09 -0000 Delivered-To: apmail-incubator-stdcxx-dev-archive@incubator.apache.org Received: (qmail 98964 invoked by uid 500); 15 Dec 2005 00:45:08 -0000 Mailing-List: contact stdcxx-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: stdcxx-dev@incubator.apache.org Delivered-To: mailing list stdcxx-dev@incubator.apache.org Received: (qmail 98923 invoked by uid 99); 15 Dec 2005 00:45:07 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Dec 2005 16:45:07 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [12.17.213.84] (HELO bco-exchange.bco.roguewave.com) (12.17.213.84) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Dec 2005 16:45:03 -0800 Received: from [10.70.3.113] (10.70.3.113 [10.70.3.113]) by bco-exchange.bco.roguewave.com with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.2657.72) id S0A37ZRB; Wed, 14 Dec 2005 17:39:21 -0700 Message-ID: <43A0BD43.2040607@roguewave.com> Date: Wed, 14 Dec 2005 17:48:03 -0700 From: Martin Sebor User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20050920 X-Accept-Language: en-us, en MIME-Version: 1.0 To: stdcxx-dev@incubator.apache.org Subject: [Fwd: Solution generartion script for Intel 9.0 compiler] Content-Type: multipart/mixed; boundary="------------020100050509050103030209" X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N --------------020100050509050103030209 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit -------- Original Message -------- Subject: Solution generartion script for Intel 9.0 compiler Date: Wed, 14 Dec 2005 19:42:45 +0300 From: Anton Pevtsov [...] Hi Martin, The attached archive (stdcxx_121405.zip) contains the latest version of the solution generation scripts. Now it supports the solution and build summary log generation for the Intel 9.0 compiler. The script operates in the following way: it generates the VC solution and converts it to IC solution using the ICProjConvert90 utility (it is installed with the Intel compiler). I suppose that the user added paths to Intel directories (and to ICProjConvert90.exe utility which is located in Common Files folder in Program Files) to PATHS environment variable. Also it is necessary to add paths to IC folders into Visual Studio general directories (Tools/Options Projects tabs, VC++ directories) to build from Visual Studio. And I suppose that the user executed vsvars32 before the calling to build.bat. The solution update script will be added in next version. The attached build_logs.zip archive contains the build summary log for Intel C++ 9.0 compiler. There are a couple of questions (they were asked in my previous e-mails, but I repeat them here): 1) Shall we have build.bat for each configuration (VC71, ICC90) or shall we have only one build.bat for all configuration (in this case first parameter of the build.bat will be the configuration)? Currently I change nothing here and there is the unique build.bat file for each configuration. 2) Where shall we store the build summary log? The build summary log files have config-specific names, so we can store them in BUILDDIR\type (for example, $(BUILDDIR)\11d) directories or in BUILDDIR\config directories (for example $(BUILDDIR)\icc-9.0); both variants are possible. Currently I change nothing here and build summary log files are stored in BUILDDIR\config directories. And there are several issues for Intel C++ 9.0 Compiler (they were in my previous e-mails too): 1) The absolute paths to the projects in the solution file are not supported when you use ICC projects tree. I changed scripts to generate relative paths but if we need to keep absolute paths for MSVC I'll branch the script code to MSVC and ICC versions. 2) The ICC solutiion uses .icproj files for projects but requires corresponding .vcproj files too. It looks like it is impossible to open the solution without .vcproj file. So the builddir for ICC90 contains both .icproj and .vcproj files. 3) The Intel Compiler doesn't allow the '*' symbol in defines in the compiler command line. For example, when you passes to the compiler something like /D "FUN=strchr((char*)0,0)" the compiler just crashes. I changed the configure.wsf script and fun_present_check.cpp to avoid passing '*'. These changes don't affect the MSVC version. 4) There is a problem with project dependencies. They present in the solution file and you can see them in Visual Studio but it looks like they are ignored in the building process. This results in that all examples could not be build because of linker errors. But I can sucessfully link any example manually from the command line providing paths to the required libraries. After investigation I decided to store paths to the libraries in the project files. These changes don't affect MSVC version. The script_patches.zip archive contains .diff files for each modified script file and two new files: icc-config.js (Solution configuration code for Intel compiler) icc-config_classes.js (Intel Compiler, Linker, Librarian tools "classes") I plan to modify the update script, implement your notes (see questions above, please) if any, and send the scripts patches to stdcxx-dev. And there is a question: shall I send one patch file with all my changes in scripts (it will be large) or it will be more convenient to send small patch for each script (like in the attached archive) ? With best wishes, Anton Pevtsov. --------------020100050509050103030209 Content-Type: text/plain; name="patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="patch" Index: config.js =================================================================== --- config.js (revision 354007) +++ config.js (working copy) @@ -300,6 +300,7 @@ this.base = Tool; this.base(linkerToolName); this.libraries = new Collection(); + this.libdirs = new Collection(); } // Linker class methods Index: configure.wsf =================================================================== --- configure.wsf (revision 354007) +++ configure.wsf (working copy) @@ -41,8 +41,10 @@ Index: utilities.js =================================================================== --- utilities.js (revision 354007) +++ utilities.js (working copy) @@ -127,6 +127,16 @@ return res; } +function removeLeadingSymbol(dotName, symbol) +{ + var index = dotName.indexOf(symbol); + if (0 != index) + return dotName; + + var resName = dotName.substr(symbol.length); + return resName; +} + function removeLeadingDot(dotName) { var index = dotName.indexOf("."); @@ -149,7 +159,12 @@ function setCompileEnvironment(solutionName, configurationName , projectName, logFile) { + // obtain the solution. Check that there is no specail solution + // for configure script var solution = configurations.get(solutionName); + if (null != configurations.get(solutionName + "_config")) + solution = configurations.get(solutionName + "_config"); + var solutionconfig = solution.configurations.get(configurationName); var projectConfig = solutionconfig.projectConfigurations.get(projectName); --------------020100050509050103030209--