[CMake] Compile all .c source files with the CXX compiler

Pau Garcia i Quiles pgquiles at elpauer.org
Tue Mar 31 12:08:19 EDT 2009


Hello,

Have you tried PROJECT( myproject CXX ) ?

On Tue, Mar 31, 2009 at 5:53 PM, Alexandre Feblot
<Alexandre.Feblot at thomsonreuters.com> wrote:
> Well, I indeed found this to work, but my project has about 20000 c files.
>
> Alin, forcing CC to a C++ compiler is not an option either, as I also have a couple of libs which must be compiled with a C-ansi compiler.
>
>
> I found that I could get the correct behaviour by modifying the value of CMAKE_<LANG>_SOURCE_FILE_EXTENSIONS in the generated files <build_dir>/CMakeFiles/Cmake{CC,CXX}Compiler.cmake
>
> BUT:
> These files are read when calling 'project()'. They set the initial value for CMAKE_<LANG>_SOURCE_FILE_EXTENSIONS, which then seem to be used once for all by cmake. Any later attempt to change them has no effect.
>
> So, should these CMAKE_<LANG>_SOURCE_FILE_EXTENSIONS variables be considerered as read-only?
> Is this a bug?
>
>
>
> -----Original Message-----
> From: cmake-bounces at cmake.org [mailto:cmake-bounces at cmake.org] On Behalf Of Pau Garcia i Quiles
> Sent: Tuesday, 31 March 2009 17:21
> To: Alexandre Feblot
> Cc: Cmake Mailing List
> Subject: Re: [CMake] Compile all .c source files with the CXX compiler
>
> Hello,
>
> Try
>
> SET_SOURCE_FILES_PROPERTIES( file1.c file2.c file3.c PROPERTIES LANGUAGE CXX )
>
> On Tue, Mar 31, 2009 at 5:16 PM, Alexandre Feblot
> <Alexandre.Feblot at thomsonreuters.com> wrote:
>> Hi,
>>
>> In my project, all sources named .c are C++ files, and should be considered
>> as CXX language files.
>>
>> I tried to set this with CMAKE_<LANG>_SOURCE_FILE_EXTENSIONS, at the very
>> beginning of my project, without success. How should I do it?
>>
>>
>>
>> cmake_minimum_required (VERSION 2.6)
>>
>> project(MY_PROJECT)
>>
>> # Can't changes the following values before calling project(), which reset
>> them to default values.
>>
>> list(REMOVE_ITEM CMAKE_C_SOURCE_FILE_EXTENSIONS c)
>> list(APPEND    CMAKE_CXX_SOURCE_FILE_EXTENSIONS c)
>> #  value: CMAKE_C_SOURCE_FILE_EXTENSIONS:
>> #  value: CMAKE_CXX_SOURCE_FILE_EXTENSIONS: C;M;c++;cc;cpp;cxx;m;mm;c
>>
>> But later on, my .c files are still considered as C files, as shown with:
>>
>>
>>
>> get_source_file_property(lang source_file.c LANGUAGE)
>> #value: lang: C
>
>
> 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.
>
>
>



-- 
Pau Garcia i Quiles
http://www.elpauer.org
(Due to my workload, I may need 10 days to answer)


More information about the CMake mailing list