Discussion:
[CMake] Adding a target to 'all' that was previously excluded
Andrew White
2018-07-04 01:33:33 UTC
Permalink
How do I add an excluded (executable) target to the build. I know that if I add a library EXCLUDE_FROM_ALL and then create a dependency on that library then that the library will be built anyway. How do I trigger similar behaviour from an executable target?

Example:

Directory A contains a CMakeLists.txt that builds half a dozen utilities. As part of my project, I want to add a single target from that list.

I can include the build info without auto-adding all targets by going:

Add_subdirectory(blah EXCLUDE_FROM_ALL)

How do I then add target blah_X to my 'all' build? Or is there another way to approach this?

Thanks
--
Andrew
--
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:
https://cmake.org/mail
Marc CHEVRIER
2018-07-04 06:48:21 UTC
Permalink
You can use a new target, built by all, depending on your initial target:

add_custom_target(build_blah_X ALL)
add_dependencies(build_blah_X blah_X)
Post by Andrew White
How do I add an excluded (executable) target to the build. I know that if
I add a library EXCLUDE_FROM_ALL and then create a dependency on that
library then that the library will be built anyway. How do I trigger
similar behaviour from an executable target?
Directory A contains a CMakeLists.txt that builds half a dozen utilities.
As part of my project, I want to add a single target from that list.
Add_subdirectory(blah EXCLUDE_FROM_ALL)
How do I then add target blah_X to my 'all' build? Or is there another
way to approach this?
Thanks
--
Andrew
--
Powered by www.kitware.com
http://www.cmake.org/Wiki/CMake_FAQ
Kitware offers various services to support the CMake community. For more
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
https://cmake.org/mailman/listinfo/cmake
Petr Kmoch
2018-07-04 07:35:09 UTC
Permalink
Hi Andrew.

All that the EXCLUDE_FROM_ALL argument of add_executable() does is set that
target's property EXCLUDE_FROM_ALL to TRUE. So all you need to do is set
that property to false again:

set_property(TARGET blah PROPERTY EXCLUDE_FROM_ALL FALSE)

Petr
Post by Marc CHEVRIER
add_custom_target(build_blah_X ALL)
add_dependencies(build_blah_X blah_X)
Post by Andrew White
How do I add an excluded (executable) target to the build. I know that
if I add a library EXCLUDE_FROM_ALL and then create a dependency on that
library then that the library will be built anyway. How do I trigger
similar behaviour from an executable target?
Directory A contains a CMakeLists.txt that builds half a dozen
utilities. As part of my project, I want to add a single target from that
list.
Add_subdirectory(blah EXCLUDE_FROM_ALL)
How do I then add target blah_X to my 'all' build? Or is there another
way to approach this?
Thanks
--
Andrew
--
Powered by www.kitware.com
http://www.cmake.org/Wiki/CMake_FAQ
Kitware offers various services to support the CMake community. For more
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
https://cmake.org/mailman/listinfo/cmake
--
Powered by www.kitware.com
http://www.cmake.org/Wiki/CMake_FAQ
Kitware offers various services to support the CMake community. For more
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
https://cmake.org/mailman/listinfo/cmake
Loading...