Kelly (KT) Thompson wrote:
On Fri, Oct 9, 2009 at 6:15 AM, Sebas <spas...@gmail.com <mailto:spas...@gmail.com>> wrote:

    I send a example where happen explained before ( I have similar
    struct in my Program). I include too the VS2008 project generate by
    cmake. In the Fortran Project be can seen that use /W3 /Zm1000 /GR
    /RTC1 /TP Flags that don't work with ifort.
    I use CMake 2.8 rc2 (but happen same in 2.6 and 2.7)

    Thanks.

    Sebastian


Sebastian,

You are mixing C, C++ and Fortran sources in a single project. This does not work well in general and particularly in CMake. I was able to restructure your sample code so that it will build with NMake Makefile (Visual Studio 2008 SP1 and Intel Visual Fortran 11).

Key points:

1. all C++ code goes into a single directory and produces a single library. The CMakeLists.txt has the project name CPPLibrary2.

2. each C library is built only from C sources. The CMakeLists.txt files are given the project name CLibrary and CLibrary2.

3. the Fortran is also isolated into a single directory and the local CMakeLists.txt file only deals with the Fortran.

4. CMake needs help knowing how to build mixed language targets that must be compiled with the Fortran compiler. In the Fortran CMakeLists.txt I had to set_target properties for LINKER_LANGUAGE.

5. When mixing C and Fortran on the Windows platform you must use the same type of runtime libraries (/MT or /MD). The default Fortran build uses /MT, so I had to set these to /MD (Fortran_FLAGS)

6. When interfacing C++ and Fortran code, you must mark the C++ function as extern "C" to avoid name mangling issues. The Fortran also expects the C++ symbol name to be all caps. You can use Fortran's ISO_C_BINDING to get around this platform issue.

There are many changes required to your sample build so I decided that a zip file would be the best way to return the project to you.

Thanks for the work around. However, this should work a bit smoother, Sebastian can you create a bug report and attach your example?

Thanks.

-Bill

_______________________________________________
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