[CMake] Using C++ compilers for C source files?

Nadir SOUALEM nadir.soualem at irisa.fr
Tue Apr 7 07:00:44 EDT 2009


Robert Blake wrote:
> Aha!  Hadn't read this.  After following everyone's advice, and using 
> the following section in my CMakeLists.txt file:
>
> PROJECT(Blah)
> file(GLOB_RECURSE C_FILES ${CMAKE_CURRENT_SOURCE_DIR} *.c)
> set_source_files_properties(${C_FILES} PROPERTIES LANGUAGE CXX)
>
> ... I get the following make output after generating my makefiles:
> make VERBOSE=1
>
> [  1%] Building C object PrM/src/CMakeFiles/param.dir/build_mex.c.o
> cd /Users/rblake/sand/carp/m/seq/PrM/src && /usr/bin/gcc    -o 
> CMakeFiles/param.dir/build_mex.c.o   -c 
> /Users/rblake/sand/carp/m/PrM/src/build_mex.c
> /opt/local/bin/cmake -E cmake_progress_report 
> /Users/rblake/sand/carp/m/seq/CMakeFiles 7
>
> In other words, setting the language to CXX for this source code file 
> doesn't seem to have any effect.  Any other ideas?  I'm using cmake 
> 2.6-patch 2, could that be the source of the problem?
>
> Rob
>
> On Apr 3, 2009, at 10:54 AM, Alexandre Feblot wrote:
>
>> Hi,
>>
>> Look at that thread...
>> http://www.cmake.org/pipermail/cmake/2009-March/028352.html
>>
>>
>> Regards,
>> Alexandre
>>
>> -----Original Message-----
>> From: cmake-bounces at cmake.org [mailto:cmake-bounces at cmake.org] On Behalf
>> Of Robert Blake
>> Sent: Friday, 03 April 2009 16:46
>> To: cmake at cmake.org
>> Subject: [CMake] Using C++ compilers for C source files?
>>
>> I'm converting a large mixed C++/C cmake application to C++.  The
>> project has many ".c" files that I would like to compile with the C++
>> compiler instead of the C compiler.  Does anyone know the proper way
>> to do this in CMake?
>>
>> Things I've tried:
>> 1.) Changing CMAKE_C_COMPILER myself: Usually CMake doesn't let you
>> change CMAKE_C_COMPILER, but there are ways around that.  This way
>> feels like a hack.  The output while compiling still says "Compiling
>> C".  In addition, forcing CMAKE_*_COMPILER to change makes it very
>> difficult to run plane cmake on Unix machines where curses is not
>> installed.
>>
>> 2.) Tell CMake that ".c" files are in the CXX language:  I've tried
>> PROJECT(Blah CXX)
>> list(APPEND CMAKE_CXX_SOURCE_FILE_EXTENSIONS c)
>>
>> When I run CMake on my project with these changes, I get errors like:
>>
>> CMake Error: Cannot determine link language for target "foobar"
>>
>> ...for all my targets that depend only on .c files.
>>
>> Help!
>> Rob
>>
>>
>> This email was sent to you by Thomson Reuters, the global news and 
>> information company.
>> Any views expressed in this message are those of the individual 
>> sender, except where the sender specifically states them to be the 
>> views of Thomson Reuters.
>>
>>
>
> _______________________________________________
> 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
Try to remove your CMakeCache ...

-- 
Nadir SOUALEM
Ingénieur INRIA - Équipe SAGE



More information about the CMake mailing list