On 29. Dec, 2009, at 21:44 , Eric Noulard wrote: > 2009/12/29 Richard Wackerbarth <rich...@nfsnet.org>: >> Not as a "real" solution, but more as a "workaround", you could create a >> "derived source file" which is just a copy of the source file and then you >> would have two separate files to be compiled with the appropriate flags. > > That's one solution, see below for more information. > >> On Dec 29, 2009, at 2:22 PM, Bart wrote: >> >>> Hi, >>> >>> I'm trying to find a way to build a library with two different instances of >>> the same source file. >>> for example I would like to compile foo.c with -DDINT into foo_int.o and >>> with -DDLONG into foo_long.o >>> and have both objects added to the same library libfoo.a >>> >>> I have experimented with custom command to generate the source files (which >>> did not work), and would have still >>> left me with how to compile them with different -D flags. > > Same kind of question has been asked on the ML recently, > may be you can re-read the thread > http://www.cmake.org/pipermail/cmake/2009-December/033813.html >
Or you can use CONFIGURE_FILE to create "wrappers" which #include the actual source file. If it's always the same flags, you can do it statically, using something like this: wrap_foo.c: /* -------------------------- */ /* clean up */ #ifdef DINT #undef DINT #endif #ifdef DLONG #undef DLONG #endif /* compile for int */ #define DINT #include "foo.c" #undef DINT /* compile for long */ #define DLONG #include "foo.c" #endif /* -------------------------- */ 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