On 11/28/2010 09:10 AM, Alan W. Irwin wrote: > On 2010-11-28 06:39+0100 Michael Hertling wrote: > >> On 11/27/2010 06:45 PM, Alan W. Irwin wrote: >>> I just discovered that many Linux distros these days use the >>> --as-needed Linux linker option by default. At first glance that >>> option makes a lot of sense since it tends to reduce startup times. >>> But I guess there are some caveats as well which is probably why CMake >>> does not adopt this linker option by default for Linux builds. >>> However, I would at least like to try this option for my own Linux >>> builds without forcing it using target_link_libraries. Is it possible >>> to specify linker options such as --as-needed using environment >>> variables and/or -D options? >> >> On Linux, CMake takes account of the LDFLAGS environment variable >> for the initial configuration of the build directory, so saying >> >> LDFLAGS="-Wl,--as-needed" cmake <path/to/srcdir> >> >> enables "--as-needed" for this build directory - forever. > > Thanks, Michael, that was exactly what I needed. I was completely > unaware that environment variable worked for CMake despite many years > of using CMake on Linux. Is the LDFLAGS environment variable > documented for CMake anywhere? I couldn't find it in the > documentation you get with "cmake --help-full", and it is also not > documented at http://www.cmake.org/Wiki/CMake_Useful_Variables. The > useful environment variables CXXFLAGS, CFLAGS, and FFLAGS that allow > you to specify general compiler flags in a convenient way are > undocumented as well, and that is a real shame.
AFAIK, these variables aren't documented anywhere apart from occasionally appearing on the mailing list. However, a quick > grep "\\\$ENV{[A-Za-z0-9_]\+}" -r . | sed > "s%^.*\\\$ENV{\([A-Za-z0-9_]\+\)}.*\$%\1%" | sort -u in the modules' directory reveals all of them which are read from the environment. Apparently, the relevant ones are CC/CFLAGS, CXX/ CXXFLAGS, FC/FFLAGS, LDFLAGS, and RC/RCFLAGS for WIN32. Because of their special meaning for a project's initial configuration, there should be an enhancement of the useful-variables section, indeed. Regards, 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