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

Eric Noulard eric.noulard at gmail.com
Fri Apr 3 10:53:37 EDT 2009


2009/4/3 Eric Noulard <eric.noulard at gmail.com>:
> 2009/4/3 Robert Blake <rblake at jhu.edu>:
>> 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.
>
> Did you try to force LANGUAGE property for those files:
>
> set_source_files_properties(file1.c file2.c
>                                       PROPERTIES LANGUAGE C)

off course that was CXX and not C

set_source_files_properties(file1.c file2.c
                                      PROPERTIES LANGUAGE CXX)

-- 
Erk


More information about the CMake mailing list