Hi Murali, On Tuesday, May 26, 2015 11:07 AM, [email protected] wrote: > Hi David, > > The project that I am working on has similar needs of having different > flags for each target. I have placed the different targets in > different sub-folders and set the CMAKE_*_FLAGS. This approach seems > to work fine as you mentioned. > > From my understanding, a new add_subdirectory creates a new scope of > variables. > > I feel that having different targets in different directories is a > good logical separation. So if that's working for you, why not use it?
I'm fine using this alternate method. However: 1) it wasn't my first choice, and 2) there didn't seem to be anything obvious that documented why/whether this wouldn't be supported. As such, wrt #2, I spent a chunk of time trying to figure out why it wasn't working. Perhaps others have fought this as well? If so, my suggestion would be to either: a) support it (assuming this isn't obviously not possible), or b) document that it's not supported (apologies if this already exists somewhere and I've missed it!). Thanks, -David > I am not sure if there is a better way, but I hope someone will comment. > > Regards, > Murali. > > On Mon, May 25, 2015 at 1:04 PM, David Hauck <[email protected]> > wrote: > > > Hi, > > I've been searching for a definitive discussion of this but haven't > been successful finding it. I have a (Unix Makefile) CMakeLists.txt > project sub-directory that defines several (3) targets (for executable > and shared targets). I'm trying to reset/redefine the CMAKE_C??_FLAGS > (specifically CMAKE_C_FLAGS) property on one of the targets via the > following statement in the CMakeLists.txt file: > > set_property(TARGET <target_name> PROPERTY CMAKE_C_FLAGS "-Wall > -shared") set_property(TARGET <target_name> PROPERTY > CMAKE_C_FLAGS_DEBUG "-g") set_property(TARGET <target_name> PROPERTY > CMAKE_C_FLAGS_RELEASE "-O3") > > However, this isn't working and the resulting target compilation is > using the directory's value for these properties. Other redefinitions > of per- target properties (e.g., INCLUDE_DIRECTORIES) do seem to take > so I'm wondering if certain properties are per-directory only and > aren't meaningful with the "set_property(TARGET ...)" construct? > > If I move the target to its own sub-directory and use the following > CMakeLists.txt commands instead the compile flags are properly (re)set: > > SET (CMAKE_C_FLAGS "-Wall -shared") > SET (CMAKE_C_FLAGS_DEBUG "-g") > SET (CMAKE_C_FLAGS_RELEASE "-O3") > > Oddly the aforementioned "set_property(TARGET..." constructs in place > of the above "SET(CMAKE..." constructs also fail to reset the flags in > this new directory so this doesn't seem related to the sub-directory > CMakeLists.txt file when multiple targets are defined. > > I must have missed something obvious related to this in the > documentation and/or the mailing list/Google. Any ideas? > > Thanks, > -David > > -- > > Powered by www.kitware.com > > Please keep messages on-topic and check the CMake FAQ at: > http://www.cmake.org/Wiki/CMake_FAQ > > Kitware offers various services to support the CMake community. > For more information on each offering, please visit: > > CMake Support: http://cmake.org/cmake/help/support.html CMake > Consulting: http://cmake.org/cmake/help/consulting.html CMake Training > Courses: http://cmake.org/cmake/help/training.html > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/cmake > > -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake
