Project not built when I specify exclude_from_default_build in CMake

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Project not built when I specify exclude_from_default_build in CMake

Haferburg, Andreas

Hi there

 

I build an executable A. I have set up another target A_remote that uses a custom launcher for remote debugging with Visual Studio. What I'm trying to achieve is that before the A_remote target is run, another target is run that deploys files to the remote computer. So I add a custom target run_deploy that runs a batch file, and make A_remote depend on it. As run_deploy also copies image files which aren't part of the VS solution, I want it to always run before launching A_remote.

 

However, when I build the entire solution, I don't want VS to build anything related to remote debugging, which is why I use EXCLUDE_FROM_DEFAULT_BUILD. But when I do that, and build A_remote, VS tells me

 

1>------ Skipped Build: Project: run_deploy, Configuration: Debug x64 ------

1>Project not selected to build for this solution configuration

 

Here's a sample CMakeLists.txt.

 

cmake_minimum_required(VERSION 3.11.0 FATAL_ERROR)

file(WRITE main.cpp "int main(){return 0;}\n")

file(WRITE deploy.bat "echo Deploying!\n")

add_executable(A main.cpp)

add_executable(A_remote main.cpp)

add_custom_target(run_deploy "${CMAKE_SOURCE_DIR}/deploy.bat")

set_target_properties(run_deploy PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD 1)

add_dependencies(A_remote run_deploy)

 

The documentation https://cmake.org/cmake/help/latest/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD.html says "Exclude target from Build Solution." This might have been the intention, but the way it is implemented seems to do more than that.

 

Anyways, how can I achieve that run_deploy is always built when I build A_remote, but not when I build the solution or ALL_BUILD? Is that even possible? Is there a workaround?

 

Cheers,

Andreas

 

Follow this link to read our Privacy Statement
--

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/mailman/listinfo/cmake