[CMake] FortranCInterface not working with 3.9.0 with Intel 2015
Bill Hoffman
bill.hoffman at kitware.com
Mon Dec 4 15:53:14 EST 2017
Can you just send me a zip or tar file of the build tree from your project?
Thanks.
On 12/2/2017 4:17 AM, JR Cary wrote:
>
>> Does it work with 3.10?
>
> It works with no version from 3.9.0 - 3.10.0.
>
>> Also, look in the CMakeFiles/CMakeError.log file to find out why this
>> happened: - Detecting Fortran/C Interface - Failed to compile.
>
> Compiling the Fortran compiler identification source file "CMakeFortranCompilerId.F" failed.
> Compiler: C:/Program Files (x86)/Intel/Composer XE 2015/bin/intel64/ifort.exe
> Build flags:
> Id flags: -v
>
> The output was:
> 0
> Intel(R) Visual Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 15.0.6.285 Build 20151119
> Copyright (C) 1985-2015 Intel Corporation. All rights reserved.
> ifort: command line warning #10006: ignoring unknown option '/v'
>
> CMakeFortranCompilerId.F(2): warning #5117: Bad # preprocessor line
> #if 0
> ...
>
> Looks from https://stackoverflow.com/questions/36557120/usual-causes-for-bad-preprocessor-warning
> that the preprocessor is not being run. It requires -fpp to be added to the Fortran compiler
> flags. I do not see how to do that for CMakeFortranCompilerId.F. Tried
>
> set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fpp")
>
> but that did not help.
>
>
>
> On 11/26/17 4:29 PM, JR Cary wrote:
>> Works with 3.8.2.
>>
>> Compilers specified by
>>
>> -DCMAKE_C_COMPILER:FILEPATH='C:/Program Files (x86)/Intel/Composer XE
>> 2015/bin/intel64/icl.exe' -DCMAKE_CXX_COMPILER:FILEPATH='C:/Program
>> Files (x86)/Intel/Composer XE 2015/bin/intel64/icl.exe'
>> -DCMAKE_Fortran_COMPILER:FILEPATH='C:/Program Files (x86)/Intel/Composer
>> XE 2015/bin/intel64/ifort.exe'
>>
>> The cmake code is
>>
>> include(FortranCInterface)
>> FortranCInterface_HEADER(
>> ${CMAKE_BINARY_DIR}/FCMangle.h
>> MACRO_NAMESPACE "FC_"
>> SYMBOL_NAMESPACE "FC_"
>> SYMBOLS mysub mymod:my_sub
>> )
>>
>> The relevant output is
>>
>> -- Detecting Fortran/C Interface
>> -- Detecting Fortran/C Interface - Failed to compile
>> CMake Warning (dev) at
>> C:/winsame/cary/usim/contrib-icl15/cmake-3.9.0-ser/share/
>> cmake-3.9/Modules/FortranCInterface.cmake:309 (message):
>> No FortranCInterface mangling known for mysub
>> Call Stack (most recent call first):
>> scimake/SciFortranChecks.cmake:269 (FortranCInterface_HEADER)
>> scimake/SciInit.cmake:232 (include)
>> CMakeLists.txt:28 (include)
>> This warning is for project developers. Use -Wno-dev to suppress it.
>>
>> CMake Warning (dev) at
>> C:/winsame/cary/usim/contrib-icl15/cmake-3.9.0-ser/share/
>> cmake-3.9/Modules/FortranCInterface.cmake:295 (message):
>> No FortranCInterface mangling known for mymod:my_sub
>> Call Stack (most recent call first):
>> scimake/SciFortranChecks.cmake:269 (FortranCInterface_HEADER)
>> scimake/SciInit.cmake:232 (include)
>> CMakeLists.txt:28 (include)
>> This warning is for project developers. Use -Wno-dev to suppress it.
>>
>> The resulting file is
>>
>> $ cat FCMangle.h
>> #ifndef FC_HEADER_INCLUDED
>> #define FC_HEADER_INCLUDED
>>
>> /*--------------------------------------------------------------------------*/
>> /* Mangle some symbols
>> automatically. */
>>
>> #endif
>>
>> Any help appreciated..........John Cary
>>
>>
>>
>>
>
--
Bill Hoffman
Kitware, Inc.
28 Corporate Drive
Clifton Park, NY 12065
bill.hoffman at kitware.com
http://www.kitware.com
518 881-4905 (Direct)
518 371-3971 x105
Fax (518) 371-4573
More information about the CMake
mailing list