On 10/19/2010 03:43 AM, Michael Scot Breitenfeld wrote:
> My main program is in Fortran and I have couple of
> files that are in C++. When I try to make the library,
> CMake uses CXX linking (archiving) to make the library.
>
> Which I guess is ok, but then when it links the main program it
> thinks that it is a CXX executable and uses the C++ compiler and
> not the Fortran compiler so compilation fails.
>
> How do I tell cmake to use fortran instead, I
> thought it would automatically do this from the .f90 suffix. I'm
> using cmake 2.8.1.
Set the LINKER_LANGUAGE property of your main program target
to "Fortran", and see the CMAKE_<LANG>_LINKER_PREFERENCE and
CMAKE_<LANG>_LINKER_PREFERENCE_PROPAGATES variables for more
information.
Regards,
Michael
> My test:
>
> PROJECT( Test )
>
> SET(PACKAGE_NAME "TEST")
>
> CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
>
> SET (CMAKE_Fortran_COMPILER gfortran)
> SET (CMAKE_CC_COMPILER gcc)
> SET (CMAKE_CXX_COMPILER g++)
>
> # libraries are all shared by default
> option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
>
> ENABLE_LANGUAGE(Fortran)
>
> SET(F_OBJ submain.f90)
>
> SET(C_OBJ test.cpp)
>
> ADD_LIBRARY (name STATIC ${F_OBJ} ${C_OBJ})
>
> ADD_EXECUTABLE(a.out main.f90)
>
> TARGET_LINK_LIBRARIES(a.out name)
_______________________________________________
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