[CMake] Rules for files with non-standard extensions
Steven Wilson
steven.wesley.wilson at gmail.com
Thu Mar 5 11:29:40 EST 2009
Thanks for the suggestion, I will give it a try!
On Thu, Mar 5, 2009 at 6:22 AM, Philip Lowman <philip at yhbt.com> wrote:
> On Tue, Mar 3, 2009 at 3:06 PM, Steven Wilson <
> steven.wesley.wilson at gmail.com> wrote:
>
>> As a new member of the list, I just wanted to say thanks for providing
>> this forum as a place to get answers about cmake!
>> First, the problem: I have a software system composed of a number of
>> source files in C. These files have an alternate file extension .bc. In
>> order to compile these files, the build system first needs to pass them
>> through two preprocessors; 1. The C preprocessor and 2. a homegrown
>> preprocessor that handles a private C language extension and converts
>> occurrences of that language extension to standard C. Finally the
>> preprocessed source is handed to the C compiler. My initial port of this
>> build system used the following kind of construct:
>>
>> macro(process_bc_files INPUT_FILE)
>>
>> add_custom_command(OUTPUT ${INPUT_FILE}.c
>>
>> COMMAND preprocessor1 ${INPUT_FILE} > tmpfile
>> COMMAND preprocessor2 tmpfile > ${INPUT_FILE}.c
>>
>> )
>>
>>
>>
>> endmacro(process_bc_files)
>>
>> process_bc_file(/path/to/main.bc)
>>
>> add_executable(Foo main.bc.c)
>>
>> Now this construct works and the build functions correctly, but I have
>> noticed a problem that I need to have corrected. When I use the Xcode
>> generator on my project I get a nice Xcode project except that the source
>> files listed for executable Foo are the processed files (*.bc.c) not the
>> original .bc files. This state of course makes sense because the .bc.c
>> files are used in the add_executable line, but it makes the Xcode project
>> file incorrect because developers will not edit the .bc.c files but the
>> originals.
>>
>> The question: Does a way to do something like the following exist?
>>
>> add_executable(Foo main.bc)
>>
>> Ie can I create some rules that act like the add_custom_command so that
>> the add_executable refers to the processed output while the Xcode project
>> refers to the source file?
>>
>
> You might be able to use the HEADER_FILE_ONLY property of
> set_source_files_properties() to get it to show up in the project, but
> simply not have it compiled. I know this works in Visual Studio (not sure
> about Xcode).
>
> --
> Philip Lowman
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20090305/8c88a3e5/attachment-0001.htm>
More information about the CMake
mailing list