[CMake] help with learning add_library

Eric Noulard eric.noulard at gmail.com
Mon Nov 8 13:10:01 EST 2010


2010/11/8 luxInteg <lux-integ at btconnect.com>:
> On Saturday 06 November 2010 23:08:29 Eric Noulard wrote:
>
>>
>> I think you cannot use **the same** file properties on a source file
>> and expect CMake will compile the file twice for the same target.
>> If you want to compile the same source file twice with different compile
>> flags **FOR THE SAME TARGET** you have to copy this file
>>
>
>> SET_SOURCE_FILES_PROPERTIES(file1-long.c PROPERTIES
>> COMPILE_DEFINITIONS "-DLONG")
>
>
>> ** same for file 2 **
>> ADD_LIBRARY(LearnCMAKE-static STATIC file1.c file1-long.c file2.c
>> file2-long.c) ADD_LIBRARY(LearnCMAKE-shared SHARED file1.c file1-long.c
>> file2.c file2-long.c)
>
> BUT
> suppose I decide to set   file1.c and file2.c   as some variable "FILES" and I
> want to use a preprocessor say DLONG
>  could I do the following?
>
> set(FILES file1.c file2.c )
> SET_SOURCE_FILES_PROPERTIES(${FILES} PROPERTIES COMPILE_DEFINITIONS "-DLONG")

Off course you can
BUT you cannot set the SAME PROPERTY twice for the same file.
So if you have to do so (compile fileX.c with BOTH -DINT and DLONG) then
you have to do some sort of loop with CMake or
populate 2 CMake variable

SRC_FILES_LONG
and
SRC_FILES_INT
with the list of appropriate file.

If you manipulate list have a look at the CMake builtin "LIST" command.



-- 
Erk
Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org


More information about the CMake mailing list