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