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
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
