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