stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Sebor <se...@roguewave.com>
Subject [Fwd: Solution generartion script for Intel 9.0 compiler]
Date Thu, 15 Dec 2005 00:48:03 GMT
-------- Original Message --------
Subject: Solution generartion script for Intel 9.0 compiler
Date: Wed, 14 Dec 2005 19:42:45 +0300
From: Anton Pevtsov <AntonP@moscow.vdiweb.com>
[...]

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.


Mime
View raw message