[CMake] Unexpected use of "ld" on Windows

2015-02-11 Thread Arjen Markus
Hello,

I am trying to build the Fortran interface to NetCDF4 on Windows, using the 
Intel Fortran compiler and "Nmake Makefiles" as the generator (see 
http://www.unidata.ucar.edu/downloads/netcdf/index.jsp).

I had some trouble getting the first part to build, but that is solved (small 
issues with the code). The second part, which is supposed to build a C library 
that can be called from Fortran, presents a more serious problem: for some 
reason CMake picks parts of another toolchain to build this:

The Makefile contains these lines to compile the sources:
cd D:\netcdf\netcdf-build-fortran\libsrc
C:\PROGRA~2\MICROS~3.0\VC\bin\amd64\cl.exe  @<<
 /nologo $(C_FLAGS) $(C_DEFINES) /FoCMakeFiles\ncfortran.dir\fort-attio.c.obj 
/FdD:\netcdf\netcdf-build-fortran\libsrc\ncfortran.pdb -c 
D:\netcdf\netcdf-fortran-4.4.1\libsrc\fort-attio.c

But to build the library it contains:

libsrc\ncfortran.dll: d:\netcdf\netcdf-build\liblib\netcdf.lib
libsrc\ncfortran.dll: libsrc\CMakeFiles\ncfortran.dir\objects1.rsp
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold 
"Linking C shared library ncfortran.dll"
cd D:\netcdf\netcdf-build-fortran\libsrc
d:\CMake2.8.10.2\bin\cmake.exe -E vs_link_dll 
C:\PROGRA~2\HASKEL~1\201320~1.0\mingw\bin\ld.exe /nologo 
@CMakeFiles\ncfortran.dir\objects1.rsp @<<
 /out:ncfortran.dll /implib:ncfortran.lib 
/pdb:D:\netcdf\netcdf-build-fortran\libsrc\ncfortran.pdb /dll /version:0.0 
/STACK:1000 /INCREMENTAL:YES /machine:x64  /debug 
d:\netcdf\netcdf-build\liblib\netcdf.lib kernel32.lib user32.lib gdi32.lib 
winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib 
advapi32.lib
<<

As you can see, it has picked up a linker (ld.exe) belonging to a completely 
different compiler/package for this step.

I have no idea where this is coming from and how to fix this. Does anyone have 
any suggestions?

Regards,

Arjen


DISCLAIMER: This message is intended exclusively for the addressee(s) and may 
contain confidential and privileged information. If you are not the intended 
recipient please notify the sender immediately and destroy this message. 
Unauthorized use, disclosure or copying of this message is strictly prohibited. 
The foundation 'Stichting Deltares', which has its seat at Delft, The 
Netherlands, Commercial Registration Number 41146461, is not liable in any way 
whatsoever for consequences and/or damages resulting from the improper, 
incomplete and untimely dispatch, receipt and/or content of this e-mail.
-- 

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake


Re: [CMake] Unexpected use of "ld" on Windows

2015-02-11 Thread Arjen Markus
Hello Andreas,



Hm, that has crossed my mind - maybe I should simply rename that particular 
directory. It still seems odd though that this occurs. Anyway, thanks for the 
suggestion. This is simple enough to try ;).



Regards,



Arjen



From: Andreas Pakulat [mailto:ap...@gmx.de]
Sent: Wednesday, February 11, 2015 4:30 PM
To: Arjen Markus
Cc: cmake@cmake.org
Subject: Re: [CMake] Unexpected use of "ld" on Windows

Hi,

On Wed, Feb 11, 2015 at 3:16 PM, Arjen Markus 
mailto:arjen.mar...@deltares.nl>> wrote:
Hello,

I am trying to build the Fortran interface to NetCDF4 on Windows, using the 
Intel Fortran compiler and "Nmake Makefiles" as the generator (see 
http://www.unidata.ucar.edu/downloads/netcdf/index.jsp).

I had some trouble getting the first part to build, but that is solved (small 
issues with the code). The second part, which is supposed to build a C library 
that can be called from Fortran, presents a more serious problem: for some 
reason CMake picks parts of another toolchain to build this:

The Makefile contains these lines to compile the sources:
cd D:\netcdf\netcdf-build-fortran\libsrc
C:\PROGRA~2\MICROS~3.0\VC\bin\amd64\cl.exe  @<<
 /nologo $(C_FLAGS) $(C_DEFINES) /FoCMakeFiles\ncfortran.dir\fort-attio.c.obj 
/FdD:\netcdf\netcdf-build-fortran\libsrc\ncfortran.pdb -c 
D:\netcdf\netcdf-fortran-4.4.1\libsrc\fort-attio.c

But to build the library it contains:

libsrc\ncfortran.dll: d:\netcdf\netcdf-build\liblib\netcdf.lib
libsrc\ncfortran.dll: libsrc\CMakeFiles\ncfortran.dir\objects1.rsp
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold 
"Linking C shared library ncfortran.dll"
cd D:\netcdf\netcdf-build-fortran\libsrc
d:\CMake2.8.10.2\bin\cmake.exe -E vs_link_dll 
C:\PROGRA~2\HASKEL~1\201320~1.0\mingw\bin\ld.exe /nologo 
@CMakeFiles\ncfortran.dir\objects1.rsp @<<
 /out:ncfortran.dll /implib:ncfortran.lib 
/pdb:D:\netcdf\netcdf-build-fortran\libsrc\ncfortran.pdb /dll /version:0.0 
/STACK:1000 /INCREMENTAL:YES /machine:x64  /debug 
d:\netcdf\netcdf-build\liblib\netcdf.lib kernel32.lib user32.lib gdi32.lib 
winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib 
advapi32.lib
<<

As you can see, it has picked up a linker (ld.exe) belonging to a completely 
different compiler/package for this step.

I have no idea where this is coming from and how to fix this. Does anyone have 
any suggestions?

Seeing the path to that ld.exe I'm reminded of a problem a colleague recently 
had. He has Haskell installed on his system and either haskell itself or some 
haskell library came with mingw and his PATH ended up including the bin dir of 
that mingw installation. Even if that entry is after the VS compiler CMake 
apparently chooses to pick up the mingw toolchain (or parts of it), so one has 
to make sure that there's no MinGW compiler or linker or other part of the 
toolchain in any of the directories in PATH. At least thats how he resolved the 
issue.

Andreas
DISCLAIMER: This message is intended exclusively for the addressee(s) and may 
contain confidential and privileged information. If you are not the intended 
recipient please notify the sender immediately and destroy this message. 
Unauthorized use, disclosure or copying of this message is strictly prohibited. 
The foundation 'Stichting Deltares', which has its seat at Delft, The 
Netherlands, Commercial Registration Number 41146461, is not liable in any way 
whatsoever for consequences and/or damages resulting from the improper, 
incomplete and untimely dispatch, receipt and/or content of this e-mail.
-- 

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake

Re: [CMake] Unexpected use of "ld" on Windows

2015-02-11 Thread Andreas Pakulat
Hi,

On Wed, Feb 11, 2015 at 3:16 PM, Arjen Markus 
wrote:

> Hello,
>
> I am trying to build the Fortran interface to NetCDF4 on Windows, using
> the Intel Fortran compiler and "Nmake Makefiles" as the generator (see
> http://www.unidata.ucar.edu/downloads/netcdf/index.jsp).
>
> I had some trouble getting the first part to build, but that is solved
> (small issues with the code). The second part, which is supposed to build a
> C library that can be called from Fortran, presents a more serious problem:
> for some reason CMake picks parts of another toolchain to build this:
>
> The Makefile contains these lines to compile the sources:
> cd D:\netcdf\netcdf-build-fortran\libsrc
> C:\PROGRA~2\MICROS~3.0\VC\bin\amd64\cl.exe  @<<
>  /nologo $(C_FLAGS) $(C_DEFINES)
> /FoCMakeFiles\ncfortran.dir\fort-attio.c.obj
> /FdD:\netcdf\netcdf-build-fortran\libsrc\ncfortran.pdb -c
> D:\netcdf\netcdf-fortran-4.4.1\libsrc\fort-attio.c
>
> But to build the library it contains:
>
> libsrc\ncfortran.dll: d:\netcdf\netcdf-build\liblib\netcdf.lib
> libsrc\ncfortran.dll: libsrc\CMakeFiles\ncfortran.dir\objects1.rsp
> @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red
> --bold "Linking C shared library ncfortran.dll"
> cd D:\netcdf\netcdf-build-fortran\libsrc
> d:\CMake2.8.10.2\bin\cmake.exe -E vs_link_dll
> C:\PROGRA~2\HASKEL~1\201320~1.0\mingw\bin\ld.exe /nologo
> @CMakeFiles\ncfortran.dir\objects1.rsp @<<
>  /out:ncfortran.dll /implib:ncfortran.lib
> /pdb:D:\netcdf\netcdf-build-fortran\libsrc\ncfortran.pdb /dll /version:0.0
> /STACK:1000 /INCREMENTAL:YES /machine:x64  /debug
> d:\netcdf\netcdf-build\liblib\netcdf.lib kernel32.lib user32.lib gdi32.lib
> winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib
> advapi32.lib
> <<
>
> As you can see, it has picked up a linker (ld.exe) belonging to a
> completely different compiler/package for this step.
>
> I have no idea where this is coming from and how to fix this. Does anyone
> have any suggestions?


Seeing the path to that ld.exe I'm reminded of a problem a colleague
recently had. He has Haskell installed on his system and either haskell
itself or some haskell library came with mingw and his PATH ended up
including the bin dir of that mingw installation. Even if that entry is
after the VS compiler CMake apparently chooses to pick up the mingw
toolchain (or parts of it), so one has to make sure that there's no MinGW
compiler or linker or other part of the toolchain in any of the directories
in PATH. At least thats how he resolved the issue.

Andreas
-- 

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake