Hi,

>The objects1.rsp file is generated by CMake during configuration.  The
>start/end temp file syntax tells NMake to use response files at build
>time.

Why is this scheme only used for shared libs and not static libs? For static 
libs it works automagically somehow.

>The link rule uses objects1.rsp with cl but not icl because cl.cmake
>has:
>
>  SET(CMAKE_C_USE_RESPONSE_FILE_FOR_OBJECTS 1)
>  SET(CMAKE_CXX_USE_RESPONSE_FILE_FOR_OBJECTS 1)

OK. But in cl.cmake these variables are only set after the definition of 
CMAKE_C_CREATE_STATIC_LIBRARY and CMAKE_CXX_CREATE_STATIC_LIBRARY (i.e. for 
shared libs), so I didn't think of it.

>These should probably be added to Windows-icl.cmake too.  We already
>have
>
>  SET(CMAKE_Fortran_USE_RESPONSE_FILE_FOR_OBJECTS 1)
>
>in Windows-ifort.cmake.

Indeed for pure Fortran it works. I can happily link 40k files into a single 
lib. I have added suggested settings locally to my Windows-icl.cmake and I can 
build a lib from a large number of objects now.

Please find a patch attached. It has the definitions in the top like 
Windows-ifort.cmake (as opposed to cl.cmake)

NOTE: this does not include the change from /INCREMENTAL:YES to /INCREMENTAL:NO 
that stops the ICE with Intel C/C++ and Intel Fortran 9.1. I still use that 
locally, but after reading Bill's comments it seems the wrong way to fix it.

Thanks,
Arjen

Attachment: Windows-icl.cmake.patch
Description: Windows-icl.cmake.patch

_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to