On 22. Sep, 2010, at 14:09 , pellegrini wrote:

> Hello everybody,
> 
> my question is in the title !
> 
> I want to create a fortran static library using the following set of g95 
> compiler flags "-O3 -std=f2003 -funroll-loops -msse2"
> 
> If I use:
> 
> set_target_properties(my_static_lib PROPERTIES COMPILE_FLAGS "-O3 -std=f2003 
> -funroll-loops -msse2")
> or
> set_source_files_properties(${SRC_FILES} PROPERTIES COMPILE_FLAGS "-O3 
> -std=f2003 -funroll-loops -msse2")
> 
> where ${SRC_FILES} is the list of source files used to compile my static 
> library, the result is the same when starting the make process.
> 
> So, in such a case is there a difference between those two functions ?

Yes. The latter is if you need more fine-grained control (compile some files 
with other flags than the rest).

> 
> Another question I have is when applying one or the other function, this will 
> duplicate some of the compiler flags (e.g. O3). The only way I found to avoid 
> this is to do the following:
> 
> set(CMAKE_Fortran_FLAGS_RELEASE " ")                      
> set_target_properties(crysfml PROPERTIES COMPILE_FLAGS "-O3 -std=f2003 
> -funroll-loops -msse2")
> 
> so everything looks as if by default the CMAKE_Fortran_FLAGS_RELEASE variable 
> was set to "-O3" and then, the value stored in the COMPILE_FLAGS variable was 
> appended to it (so in that case "-O3" + "-O3 -std=f2003 -funroll-loops 
> -msse2" giving "-O3 -O3 -std=f2003 -funroll-loops -msse2"). Am I right ?

Yes. RTFMing tells me:

$ cmake --help-property COMPILE_FLAGS
cmake version 2.8.2
  COMPILE_FLAGS
       Additional flags to use when compiling this target's sources.

       The COMPILE_FLAGS property sets additional compiler flags used to
       build sources within the target.  Use COMPILE_DEFINITIONS to pass
       additional preprocessor definitions

So, it says that the flags are appended to the "standard" flags.

> 
> thanks a lot
> 
> Eric

BTW: You shouldn't set -O3, -funroll-loops and -msse2 in COMPILE_FLAGS, since 
those are optimization flags. You should set them when you run cmake in 
CMAKE_Fortran_FLAGS_RELEASE.

Michael

--
There is always a well-known solution to every human problem -- neat, 
plausible, and wrong.
H. L. Mencken

Attachment: PGP.sig
Description: This is a digitally signed message part

_______________________________________________
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

Reply via email to