[CMake] Build several libraries with different compilation flags

2010-10-01 Thread pellegrini

Hello everybody,

I would like to build two libraries that contain the same files but with 
a slightly different set of compilation flags
from one library to another. This within the same makefile. I was 
thinking about an approach such as:


add_library(my_lib1, STATIC, src_files ...)
set_source_files_properties(file1, file2 ... PROPERTIES COMPILE_FLAGS ...)
add_library(my_lib2, STATIC, src_files ...)
set_source_files_properties(file1, file2 ... PROPERTIES COMPILE_FLAGS ...)

does cmake sensitive to the order of these instruction ?

thank you very much

Eric


--
Eric Pellegrini
Calcul Scientifique
Insitut Laue-Langevin
Grenoble, France

___
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


Re: [CMake] Build several libraries with different compilation flags

2010-10-01 Thread Ryan Pavlik

 Look at the target properties instead of the source file properties.

Ryan

On 10/01/2010 08:27 AM, pellegrini wrote:

Hello everybody,

I would like to build two libraries that contain the same files but 
with a slightly different set of compilation flags
from one library to another. This within the same makefile. I was 
thinking about an approach such as:


add_library(my_lib1, STATIC, src_files ...)
set_source_files_properties(file1, file2 ... PROPERTIES COMPILE_FLAGS 
...)

add_library(my_lib2, STATIC, src_files ...)
set_source_files_properties(file1, file2 ... PROPERTIES COMPILE_FLAGS 
...)


does cmake sensitive to the order of these instruction ?

thank you very much

Eric




--
Ryan Pavlik
HCI Graduate Student
Virtual Reality Applications Center
Iowa State University

Member, ACM and ACM SIGCHI
Member, ASME

http://academic.cleardefinition.com

___
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


Re: [CMake] Build several libraries with different compilation flags

2010-10-01 Thread pellegrini

Hi Ryan,

Yes, that might be the solution if I wanted to change the compiler flags 
for the whole library but in my case, that is not on the whole
library that I want to apply a new set of compiler flags but only on a 
small number of files.


Ryan Pavlik a écrit :

 Look at the target properties instead of the source file properties.

Ryan

On 10/01/2010 08:27 AM, pellegrini wrote:

Hello everybody,

I would like to build two libraries that contain the same files but 
with a slightly different set of compilation flags
from one library to another. This within the same makefile. I was 
thinking about an approach such as:


add_library(my_lib1, STATIC, src_files ...)
set_source_files_properties(file1, file2 ... PROPERTIES COMPILE_FLAGS 
...)

add_library(my_lib2, STATIC, src_files ...)
set_source_files_properties(file1, file2 ... PROPERTIES COMPILE_FLAGS 
...)


does cmake sensitive to the order of these instruction ?

thank you very much

Eric







--
Eric Pellegrini
Calcul Scientifique
Insitut Laue-Langevin
Grenoble, France

___
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


Re: [CMake] Build several libraries with different compilation flags

2010-10-01 Thread Marcel Loose
Hi Eric,

I'm not sure your solution is going to work. Once your file1, file2, ...
are compiled for building my_lib1, there's reason for CMake to compile
them again for my_lib2, because the object files are already up-to-date.
I guess you'll have a better chance using target_properties, as Ryan
suggested.

HTH,
Marcel Loose.

On Fri, 2010-10-01 at 17:10 +0200, pellegrini wrote:
 Hi Ryan,
 
 Yes, that might be the solution if I wanted to change the compiler flags 
 for the whole library but in my case, that is not on the whole
 library that I want to apply a new set of compiler flags but only on a 
 small number of files.
 
 Ryan Pavlik a écrit :
   Look at the target properties instead of the source file properties.
 
  Ryan
 
  On 10/01/2010 08:27 AM, pellegrini wrote:
  Hello everybody,
 
  I would like to build two libraries that contain the same files but 
  with a slightly different set of compilation flags
  from one library to another. This within the same makefile. I was 
  thinking about an approach such as:
 
  add_library(my_lib1, STATIC, src_files ...)
  set_source_files_properties(file1, file2 ... PROPERTIES COMPILE_FLAGS 
  ...)
  add_library(my_lib2, STATIC, src_files ...)
  set_source_files_properties(file1, file2 ... PROPERTIES COMPILE_FLAGS 
  ...)
 
  does cmake sensitive to the order of these instruction ?
 
  thank you very much
 
  Eric
 
 
 
 
 


___
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


Re: [CMake] Build several libraries with different compilation flags

2010-10-01 Thread pellegrini

Hi Marcel,

Yes, you are right but as I said to Ryan my problem is that I do not 
want to change the compiler flags for the whole library (in that case 
the set_target_properties would be the appropriated way to do) but only 
for a few files of my library.


What I want to do seems tricky (or perhaps non sense ?). What about the 
following approach ?


I will create two separate projects that I will call in my main 
CMakeLists.txt on the following way:


project(my_whole_project Fortran)

include(my_first_project)
include(my_second_project)

...

In doing so, each project does not see the other one (I hope) and I 
should be able to do whatever I want with one without disturbing

the other. What do you think ?.

Eric


Marcel Loose a écrit :

Hi Eric,

I'm not sure your solution is going to work. Once your file1, file2, ...
are compiled for building my_lib1, there's reason for CMake to compile
them again for my_lib2, because the object files are already up-to-date.
I guess you'll have a better chance using target_properties, as Ryan
suggested.

HTH,
Marcel Loose.

On Fri, 2010-10-01 at 17:10 +0200, pellegrini wrote:
  

Hi Ryan,

Yes, that might be the solution if I wanted to change the compiler flags 
for the whole library but in my case, that is not on the whole
library that I want to apply a new set of compiler flags but only on a 
small number of files.


Ryan Pavlik a écrit :


 Look at the target properties instead of the source file properties.

Ryan

On 10/01/2010 08:27 AM, pellegrini wrote:
  

Hello everybody,

I would like to build two libraries that contain the same files but 
with a slightly different set of compilation flags
from one library to another. This within the same makefile. I was 
thinking about an approach such as:


add_library(my_lib1, STATIC, src_files ...)
set_source_files_properties(file1, file2 ... PROPERTIES COMPILE_FLAGS 
...)

add_library(my_lib2, STATIC, src_files ...)
set_source_files_properties(file1, file2 ... PROPERTIES COMPILE_FLAGS 
...)


does cmake sensitive to the order of these instruction ?

thank you very much

Eric







  



--
Eric Pellegrini
Calcul Scientifique
Insitut Laue-Langevin
Grenoble, France

___
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


Re: [CMake] Build several libraries with different compilation flags

2010-10-01 Thread J Decker
On Fri, Oct 1, 2010 at 8:32 AM, Marcel Loose lo...@astron.nl wrote:
 Hi Eric,

 I'm not sure your solution is going to work. Once your file1, file2, ...
 are compiled for building my_lib1, there's reason for CMake to compile
 them again for my_lib2, because the object files are already up-to-date.
 I guess you'll have a better chance using target_properties, as Ryan
 suggested.


That's not really true... objects get built into target_name.dir ...
so they are different. the problem is cmake only maintains a single
list of sources, and the flags end up getting set for both versions.
Really have to use target_properties ...

or somehow invent a way to set_target_source_files_properties( target
source  )

maybe seperate the sources that need different flags into another
library, and apply said flags to that target.. then link the whole
mess together?

 HTH,
 Marcel Loose.

 On Fri, 2010-10-01 at 17:10 +0200, pellegrini wrote:
 Hi Ryan,

 Yes, that might be the solution if I wanted to change the compiler flags
 for the whole library but in my case, that is not on the whole
 library that I want to apply a new set of compiler flags but only on a
 small number of files.

 Ryan Pavlik a écrit :
   Look at the target properties instead of the source file properties.
 
  Ryan
 
  On 10/01/2010 08:27 AM, pellegrini wrote:
  Hello everybody,
 
  I would like to build two libraries that contain the same files but
  with a slightly different set of compilation flags
  from one library to another. This within the same makefile. I was
  thinking about an approach such as:
 
  add_library(my_lib1, STATIC, src_files ...)
  set_source_files_properties(file1, file2 ... PROPERTIES COMPILE_FLAGS
  ...)
  add_library(my_lib2, STATIC, src_files ...)
  set_source_files_properties(file1, file2 ... PROPERTIES COMPILE_FLAGS
  ...)
 
  does cmake sensitive to the order of these instruction ?
 
  thank you very much
 
  Eric
 
 
 




 ___
 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

___
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