[CMake] Specify an alternate C++ compiler for some source files

Verweij, Arjen VerweijA at tass-safe.com
Wed Mar 30 12:17:44 EDT 2011


Since our default compilers are not gcc (icc, pgcc, cc, xlc_r etc) we've introduced FLEXLM_C_COMPILER and friends to be able to compile this from a single source tree.

But perhaps it would be cleaner to off-load it with ExternalProject_Add().

Seriously, how often do you want to compile LAPACK, BLAS, MPI, FLEXlm yourself...

Regards,
Arjen

>-----Original Message-----
>From: cmake-bounces at cmake.org [mailto:cmake-bounces at cmake.org] On Behalf
>Of Michael Wild
>Sent: woensdag 30 maart 2011 14:11
>To: cmake at cmake.org
>Subject: Re: [CMake] Specify an alternate C++ compiler for some source
>files
>
>On 03/30/2011 01:42 PM, Marc Tajchman wrote:
>> Hi,
>>
>> How to specify different compilers for different source files in
>> CMakeLists.txt, e.g. if
>>
>> test1.cxx must be compiled with g++
>> test2.cxx must be compiled with mpicxx (mpi compiler)
>>
>> I tried
>>
>>> add_executable(test1.exe test1.cxx)
>>> set_source_files_properties(test2.cxx PROPERTIES CMAKE_CXX_COMPILER
>> ${MPI_COMPILER})
>>> add_executable(test2.exe test2.cxx)
>>
>> but it didn't work (i.e. g++ is still used for test2.cxx -> test2.o).
>>
>> Any help appreciated.
>>
>> Best Regards,
>> Marc
>>
>
>CMake can't do that. But if you need MPI, use
>
>find_package(MPI REQUIRED)
>include_directories(${MPI_INCLUDE_PATH})
>add_executable(test1 test1.cxx)
>add_executable(test2 test2.cxx)
>target_link_libraries(test2 ${MPI_LIBRARIES})
>set_target_properties(test2 PROPERTIES
>  COMPILE_FLAGS "${MPI_COMPILE_FLAGS}"
>  LINK_FLAGS "${MPI_LINK_FLAGS}")
>
>
>HTH
>
>Michael
>
>
>
>_______________________________________________
>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


More information about the CMake mailing list