ALL_BUILD with msbuild

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

ALL_BUILD with msbuild

Dustyn Blasig
Hi All,

I'm trying to switch from devenv to msbuild on the command line so we can use the /m parallel build option. On devenv, I just build the ALL_BUILD target and it builds properly. However, on msbuild, there are two issues.

1. If I specify the ALL_BUILD target on the command line directly, I get the following errors. (... used to remove large paths)

c:\tmp\...>msbuild c:\tmp\...\mysolution.sln /t:ALL_BUILD /p:Configuration=Release /m || goto :ERROR 
Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

Build started 5/10/2019 1:01:52 PM.
     1>Project "c:\tmp\...\mysolution.sln" on node 1 (ALL_BUILD target(s)).
     1>ValidateSolutionConfiguration:
         Building solution configuration "Release|x64".
       ValidateProjects:
         The project "ALL_BUILD" is not selected for building in solution configuration "Release|x64".
         The project "Continuous" is not selected for building in solution configuration "Release|x64".
         The project "Experimental" is not selected for building in solution configuration "Release|x64".
         The project "Nightly" is not selected for building in solution configuration "Release|x64".
         The project "NightlyMemoryCheck" is not selected for building in solution configuration "Release|x64".
         The project "RUN_TESTS" is not selected for building in solution configuration "Release|x64".
         ...
     1>Project "c:\tmp\...\mysolution.sln" (1) is building "...\myproj.vcxproj.metaproj" (2) on node 1 (ALL_BUILD target(s)).
     2>Project "c:\tmp\...\myproj.vcxproj.metaproj" (2) is building "c:\tmp\...\ZERO_CHECK.vcxproj" (54) on node 2 (ALL_BUILD target(s)).
    54>c:\tmp\...\ZERO_CHECK.vcxproj : error MSB4057: The target "ALL_BUILD" does not exist in the project.
    54>Done Building Project "c:\tmp\...\ZERO_CHECK.vcxproj" (ALL_BUILD target(s)) -- FAILED.
     2>Done Building Project "c:\tmp\...\myproj.vcxproj.metaproj" (ALL_BUILD target(s)) -- FAILED.
     1>Done Building Project "c:\tmp\...\mysolution.sln" (ALL_BUILD target(s)) -- FAILED.

Build FAILED.

       "c:\tmp\...\mysolution.sln" (ALL_BUILD target) (1) ->
       "c:\tmp\...\myproj.vcxproj.metaproj" (ALL_BUILD target) (2) ->
       "c:\tmp\...\ZERO_CHECK.vcxproj" (ALL_BUILD target) (54) ->
         c:\tmp\...\ZERO_CHECK.vcxproj : error MSB4057: The target "ALL_BUILD" does not exist in the project.

    0 Warning(s)
    1 Error(s)

What is different with the ALL_BUILD target between msbuild and devenv? I must be calling things improperly on the command line, but I'm not sure what.

2. If I instead leave ALL_BUILD off and just let it build the defaults, it gets further, but it also trys to build targets that are not enabled with the "all" target by default like our unit tests which we add through a hierarchy of targets like "run_tests_...".

c:\tmp\...>msbuild c:\tmp\...\mysolution.sln /p:Configuration=Release /m || goto :ERROR 

Should calling msbuild on just the solution build only the "all" target by default, or does mbuild just build everything in the solution ignoring the "all" target stuff?

Thanks!

--

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
Reply | Threaded
Open this post in threaded view
|

Re: ALL_BUILD with msbuild

J. Caleb Wherry
I do not specify the project name when running my main build, I call msbuild like you do in #2. 

How do you exclude things from ‘all’? I’ve actually ran into issues with VS and how pressing “Build” in the IDE and running on the command line do different things. This comes down to 2 target properties: EXCLUDE_FROM_ALL and EXCLUDE_FROM_DEFAULT_BUILD.

These each do different things so I ended up setting them both to true for all my tests. Give that a shot and see what happens along with the #2 way of calling msbuild.

-Caleb

On Mon, May 13, 2019 at 1:05 PM Dustyn Blasig <[hidden email]> wrote:
Hi All,

I'm trying to switch from devenv to msbuild on the command line so we can use the /m parallel build option. On devenv, I just build the ALL_BUILD target and it builds properly. However, on msbuild, there are two issues.

1. If I specify the ALL_BUILD target on the command line directly, I get the following errors. (... used to remove large paths)

c:\tmp\...>msbuild c:\tmp\...\mysolution.sln /t:ALL_BUILD /p:Configuration=Release /m || goto :ERROR 
Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

Build started 5/10/2019 1:01:52 PM.
     1>Project "c:\tmp\...\mysolution.sln" on node 1 (ALL_BUILD target(s)).
     1>ValidateSolutionConfiguration:
         Building solution configuration "Release|x64".
       ValidateProjects:
         The project "ALL_BUILD" is not selected for building in solution configuration "Release|x64".
         The project "Continuous" is not selected for building in solution configuration "Release|x64".
         The project "Experimental" is not selected for building in solution configuration "Release|x64".
         The project "Nightly" is not selected for building in solution configuration "Release|x64".
         The project "NightlyMemoryCheck" is not selected for building in solution configuration "Release|x64".
         The project "RUN_TESTS" is not selected for building in solution configuration "Release|x64".
         ...
     1>Project "c:\tmp\...\mysolution.sln" (1) is building "...\myproj.vcxproj.metaproj" (2) on node 1 (ALL_BUILD target(s)).
     2>Project "c:\tmp\...\myproj.vcxproj.metaproj" (2) is building "c:\tmp\...\ZERO_CHECK.vcxproj" (54) on node 2 (ALL_BUILD target(s)).
    54>c:\tmp\...\ZERO_CHECK.vcxproj : error MSB4057: The target "ALL_BUILD" does not exist in the project.
    54>Done Building Project "c:\tmp\...\ZERO_CHECK.vcxproj" (ALL_BUILD target(s)) -- FAILED.
     2>Done Building Project "c:\tmp\...\myproj.vcxproj.metaproj" (ALL_BUILD target(s)) -- FAILED.
     1>Done Building Project "c:\tmp\...\mysolution.sln" (ALL_BUILD target(s)) -- FAILED.

Build FAILED.

       "c:\tmp\...\mysolution.sln" (ALL_BUILD target) (1) ->
       "c:\tmp\...\myproj.vcxproj.metaproj" (ALL_BUILD target) (2) ->
       "c:\tmp\...\ZERO_CHECK.vcxproj" (ALL_BUILD target) (54) ->
         c:\tmp\...\ZERO_CHECK.vcxproj : error MSB4057: The target "ALL_BUILD" does not exist in the project.

    0 Warning(s)
    1 Error(s)

What is different with the ALL_BUILD target between msbuild and devenv? I must be calling things improperly on the command line, but I'm not sure what.

2. If I instead leave ALL_BUILD off and just let it build the defaults, it gets further, but it also trys to build targets that are not enabled with the "all" target by default like our unit tests which we add through a hierarchy of targets like "run_tests_...".

c:\tmp\...>msbuild c:\tmp\...\mysolution.sln /p:Configuration=Release /m || goto :ERROR 

Should calling msbuild on just the solution build only the "all" target by default, or does mbuild just build everything in the solution ignoring the "all" target stuff?

Thanks!
--

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
--
Sent from my iPhone SE

--

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
Reply | Threaded
Open this post in threaded view
|

Re: ALL_BUILD with msbuild

Dustyn Blasig
Ah, thanks, we do use EXCLUDE_FROM_ALL but I did not know about EXCLUDE_FROM_DEFAULT_BUILD. From the documentation, it sounds like we really do want to build the ALL_BUILD target, but I'm not sure how to get the ZERO_CHECK project to properly build with msbuild. I can probably use EXCLUDE_FROM_DEFAULT_BUILD as a workaround in the meantime, though.

On Mon, May 13, 2019 at 1:15 PM J. Caleb Wherry <[hidden email]> wrote:
I do not specify the project name when running my main build, I call msbuild like you do in #2. 

How do you exclude things from ‘all’? I’ve actually ran into issues with VS and how pressing “Build” in the IDE and running on the command line do different things. This comes down to 2 target properties: EXCLUDE_FROM_ALL and EXCLUDE_FROM_DEFAULT_BUILD.

These each do different things so I ended up setting them both to true for all my tests. Give that a shot and see what happens along with the #2 way of calling msbuild.

-Caleb

On Mon, May 13, 2019 at 1:05 PM Dustyn Blasig <[hidden email]> wrote:
Hi All,

I'm trying to switch from devenv to msbuild on the command line so we can use the /m parallel build option. On devenv, I just build the ALL_BUILD target and it builds properly. However, on msbuild, there are two issues.

1. If I specify the ALL_BUILD target on the command line directly, I get the following errors. (... used to remove large paths)

c:\tmp\...>msbuild c:\tmp\...\mysolution.sln /t:ALL_BUILD /p:Configuration=Release /m || goto :ERROR 
Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

Build started 5/10/2019 1:01:52 PM.
     1>Project "c:\tmp\...\mysolution.sln" on node 1 (ALL_BUILD target(s)).
     1>ValidateSolutionConfiguration:
         Building solution configuration "Release|x64".
       ValidateProjects:
         The project "ALL_BUILD" is not selected for building in solution configuration "Release|x64".
         The project "Continuous" is not selected for building in solution configuration "Release|x64".
         The project "Experimental" is not selected for building in solution configuration "Release|x64".
         The project "Nightly" is not selected for building in solution configuration "Release|x64".
         The project "NightlyMemoryCheck" is not selected for building in solution configuration "Release|x64".
         The project "RUN_TESTS" is not selected for building in solution configuration "Release|x64".
         ...
     1>Project "c:\tmp\...\mysolution.sln" (1) is building "...\myproj.vcxproj.metaproj" (2) on node 1 (ALL_BUILD target(s)).
     2>Project "c:\tmp\...\myproj.vcxproj.metaproj" (2) is building "c:\tmp\...\ZERO_CHECK.vcxproj" (54) on node 2 (ALL_BUILD target(s)).
    54>c:\tmp\...\ZERO_CHECK.vcxproj : error MSB4057: The target "ALL_BUILD" does not exist in the project.
    54>Done Building Project "c:\tmp\...\ZERO_CHECK.vcxproj" (ALL_BUILD target(s)) -- FAILED.
     2>Done Building Project "c:\tmp\...\myproj.vcxproj.metaproj" (ALL_BUILD target(s)) -- FAILED.
     1>Done Building Project "c:\tmp\...\mysolution.sln" (ALL_BUILD target(s)) -- FAILED.

Build FAILED.

       "c:\tmp\...\mysolution.sln" (ALL_BUILD target) (1) ->
       "c:\tmp\...\myproj.vcxproj.metaproj" (ALL_BUILD target) (2) ->
       "c:\tmp\...\ZERO_CHECK.vcxproj" (ALL_BUILD target) (54) ->
         c:\tmp\...\ZERO_CHECK.vcxproj : error MSB4057: The target "ALL_BUILD" does not exist in the project.

    0 Warning(s)
    1 Error(s)

What is different with the ALL_BUILD target between msbuild and devenv? I must be calling things improperly on the command line, but I'm not sure what.

2. If I instead leave ALL_BUILD off and just let it build the defaults, it gets further, but it also trys to build targets that are not enabled with the "all" target by default like our unit tests which we add through a hierarchy of targets like "run_tests_...".

c:\tmp\...>msbuild c:\tmp\...\mysolution.sln /p:Configuration=Release /m || goto :ERROR 

Should calling msbuild on just the solution build only the "all" target by default, or does mbuild just build everything in the solution ignoring the "all" target stuff?

Thanks!
--

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
--
Sent from my iPhone SE

--

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
Reply | Threaded
Open this post in threaded view
|

Re: ALL_BUILD with msbuild

J. Caleb Wherry
Can’t help much on the ZERO_CHECK project, we set the CMAKE_SUPPRESS_REGENERATION to true which disables that project.

-Caleb

On Mon, May 13, 2019 at 2:35 PM Dustyn Blasig <[hidden email]> wrote:
Ah, thanks, we do use EXCLUDE_FROM_ALL but I did not know about EXCLUDE_FROM_DEFAULT_BUILD. From the documentation, it sounds like we really do want to build the ALL_BUILD target, but I'm not sure how to get the ZERO_CHECK project to properly build with msbuild. I can probably use EXCLUDE_FROM_DEFAULT_BUILD as a workaround in the meantime, though.

On Mon, May 13, 2019 at 1:15 PM J. Caleb Wherry <[hidden email]> wrote:
I do not specify the project name when running my main build, I call msbuild like you do in #2. 

How do you exclude things from ‘all’? I’ve actually ran into issues with VS and how pressing “Build” in the IDE and running on the command line do different things. This comes down to 2 target properties: EXCLUDE_FROM_ALL and EXCLUDE_FROM_DEFAULT_BUILD.

These each do different things so I ended up setting them both to true for all my tests. Give that a shot and see what happens along with the #2 way of calling msbuild.

-Caleb

On Mon, May 13, 2019 at 1:05 PM Dustyn Blasig <[hidden email]> wrote:
Hi All,

I'm trying to switch from devenv to msbuild on the command line so we can use the /m parallel build option. On devenv, I just build the ALL_BUILD target and it builds properly. However, on msbuild, there are two issues.

1. If I specify the ALL_BUILD target on the command line directly, I get the following errors. (... used to remove large paths)

c:\tmp\...>msbuild c:\tmp\...\mysolution.sln /t:ALL_BUILD /p:Configuration=Release /m || goto :ERROR 
Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

Build started 5/10/2019 1:01:52 PM.
     1>Project "c:\tmp\...\mysolution.sln" on node 1 (ALL_BUILD target(s)).
     1>ValidateSolutionConfiguration:
         Building solution configuration "Release|x64".
       ValidateProjects:
         The project "ALL_BUILD" is not selected for building in solution configuration "Release|x64".
         The project "Continuous" is not selected for building in solution configuration "Release|x64".
         The project "Experimental" is not selected for building in solution configuration "Release|x64".
         The project "Nightly" is not selected for building in solution configuration "Release|x64".
         The project "NightlyMemoryCheck" is not selected for building in solution configuration "Release|x64".
         The project "RUN_TESTS" is not selected for building in solution configuration "Release|x64".
         ...
     1>Project "c:\tmp\...\mysolution.sln" (1) is building "...\myproj.vcxproj.metaproj" (2) on node 1 (ALL_BUILD target(s)).
     2>Project "c:\tmp\...\myproj.vcxproj.metaproj" (2) is building "c:\tmp\...\ZERO_CHECK.vcxproj" (54) on node 2 (ALL_BUILD target(s)).
    54>c:\tmp\...\ZERO_CHECK.vcxproj : error MSB4057: The target "ALL_BUILD" does not exist in the project.
    54>Done Building Project "c:\tmp\...\ZERO_CHECK.vcxproj" (ALL_BUILD target(s)) -- FAILED.
     2>Done Building Project "c:\tmp\...\myproj.vcxproj.metaproj" (ALL_BUILD target(s)) -- FAILED.
     1>Done Building Project "c:\tmp\...\mysolution.sln" (ALL_BUILD target(s)) -- FAILED.

Build FAILED.

       "c:\tmp\...\mysolution.sln" (ALL_BUILD target) (1) ->
       "c:\tmp\...\myproj.vcxproj.metaproj" (ALL_BUILD target) (2) ->
       "c:\tmp\...\ZERO_CHECK.vcxproj" (ALL_BUILD target) (54) ->
         c:\tmp\...\ZERO_CHECK.vcxproj : error MSB4057: The target "ALL_BUILD" does not exist in the project.

    0 Warning(s)
    1 Error(s)

What is different with the ALL_BUILD target between msbuild and devenv? I must be calling things improperly on the command line, but I'm not sure what.

2. If I instead leave ALL_BUILD off and just let it build the defaults, it gets further, but it also trys to build targets that are not enabled with the "all" target by default like our unit tests which we add through a hierarchy of targets like "run_tests_...".

c:\tmp\...>msbuild c:\tmp\...\mysolution.sln /p:Configuration=Release /m || goto :ERROR 

Should calling msbuild on just the solution build only the "all" target by default, or does mbuild just build everything in the solution ignoring the "all" target stuff?

Thanks!
--

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
--
Sent from my iPhone SE
--
Sent from my iPhone SE

--

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
Reply | Threaded
Open this post in threaded view
|

Re: ALL_BUILD with msbuild

frodak17
In reply to this post by Dustyn Blasig


On Mon, May 13, 2019 at 1:05 PM Dustyn Blasig <[hidden email]> wrote:
Hi All,

I'm trying to switch from devenv to msbuild on the command line so we can use the /m parallel build option. On devenv, I just build the ALL_BUILD target and it builds properly. However, on msbuild, there are two issues.

1. If I specify the ALL_BUILD target on the command line directly, I get the following errors. (... used to remove large paths)

c:\tmp\...>msbuild c:\tmp\...\mysolution.sln /t:ALL_BUILD /p:Configuration=Release /m || goto :ERROR 
Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

Build started 5/10/2019 1:01:52 PM.
     1>Project "c:\tmp\...\mysolution.sln" on node 1 (ALL_BUILD target(s)).
     1>ValidateSolutionConfiguration:
         Building solution configuration "Release|x64".
       ValidateProjects:
         The project "ALL_BUILD" is not selected for building in solution configuration "Release|x64".
         The project "Continuous" is not selected for building in solution configuration "Release|x64".
         The project "Experimental" is not selected for building in solution configuration "Release|x64".
         The project "Nightly" is not selected for building in solution configuration "Release|x64".
         The project "NightlyMemoryCheck" is not selected for building in solution configuration "Release|x64".
         The project "RUN_TESTS" is not selected for building in solution configuration "Release|x64".
         ...
     1>Project "c:\tmp\...\mysolution.sln" (1) is building "...\myproj.vcxproj.metaproj" (2) on node 1 (ALL_BUILD target(s)).
     2>Project "c:\tmp\...\myproj.vcxproj.metaproj" (2) is building "c:\tmp\...\ZERO_CHECK.vcxproj" (54) on node 2 (ALL_BUILD target(s)).
    54>c:\tmp\...\ZERO_CHECK.vcxproj : error MSB4057: The target "ALL_BUILD" does not exist in the project.
    54>Done Building Project "c:\tmp\...\ZERO_CHECK.vcxproj" (ALL_BUILD target(s)) -- FAILED.
     2>Done Building Project "c:\tmp\...\myproj.vcxproj.metaproj" (ALL_BUILD target(s)) -- FAILED.
     1>Done Building Project "c:\tmp\...\mysolution.sln" (ALL_BUILD target(s)) -- FAILED.

Build FAILED.

       "c:\tmp\...\mysolution.sln" (ALL_BUILD target) (1) ->
       "c:\tmp\...\myproj.vcxproj.metaproj" (ALL_BUILD target) (2) ->
       "c:\tmp\...\ZERO_CHECK.vcxproj" (ALL_BUILD target) (54) ->
         c:\tmp\...\ZERO_CHECK.vcxproj : error MSB4057: The target "ALL_BUILD" does not exist in the project.

    0 Warning(s)
    1 Error(s)

What is different with the ALL_BUILD target between msbuild and devenv? I must be calling things improperly on the command line, but I'm not sure what.

2. If I instead leave ALL_BUILD off and just let it build the defaults, it gets further, but it also trys to build targets that are not enabled with the "all" target by default like our unit tests which we add through a hierarchy of targets like "run_tests_...".

c:\tmp\...>msbuild c:\tmp\...\mysolution.sln /p:Configuration=Release /m || goto :ERROR 

Should calling msbuild on just the solution build only the "all" target by default, or does mbuild just build everything in the solution ignoring the "all" target stuff?

Thanks!
--

Personally I've just always used CMake to construct the command line by using:
cmake --build . --config Release -j

Which constructs the command:
msbuild ALL_BUILD.vcxproj /p:Configuration=Release /m

I've been told that CMake targets do not translate to the targets usable by the /target switch.

--
F

--

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
Reply | Threaded
Open this post in threaded view
|

Re: ALL_BUILD with msbuild

Dustyn Blasig
Yay, just building ALL_BUILD.vcxproj directly worked! I did not realize we didn't need to build the solution for things to work. Thanks!

On Mon, May 13, 2019 at 2:56 PM frodak17 <[hidden email]> wrote:


On Mon, May 13, 2019 at 1:05 PM Dustyn Blasig <[hidden email]> wrote:
Hi All,

I'm trying to switch from devenv to msbuild on the command line so we can use the /m parallel build option. On devenv, I just build the ALL_BUILD target and it builds properly. However, on msbuild, there are two issues.

1. If I specify the ALL_BUILD target on the command line directly, I get the following errors. (... used to remove large paths)

c:\tmp\...>msbuild c:\tmp\...\mysolution.sln /t:ALL_BUILD /p:Configuration=Release /m || goto :ERROR 
Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

Build started 5/10/2019 1:01:52 PM.
     1>Project "c:\tmp\...\mysolution.sln" on node 1 (ALL_BUILD target(s)).
     1>ValidateSolutionConfiguration:
         Building solution configuration "Release|x64".
       ValidateProjects:
         The project "ALL_BUILD" is not selected for building in solution configuration "Release|x64".
         The project "Continuous" is not selected for building in solution configuration "Release|x64".
         The project "Experimental" is not selected for building in solution configuration "Release|x64".
         The project "Nightly" is not selected for building in solution configuration "Release|x64".
         The project "NightlyMemoryCheck" is not selected for building in solution configuration "Release|x64".
         The project "RUN_TESTS" is not selected for building in solution configuration "Release|x64".
         ...
     1>Project "c:\tmp\...\mysolution.sln" (1) is building "...\myproj.vcxproj.metaproj" (2) on node 1 (ALL_BUILD target(s)).
     2>Project "c:\tmp\...\myproj.vcxproj.metaproj" (2) is building "c:\tmp\...\ZERO_CHECK.vcxproj" (54) on node 2 (ALL_BUILD target(s)).
    54>c:\tmp\...\ZERO_CHECK.vcxproj : error MSB4057: The target "ALL_BUILD" does not exist in the project.
    54>Done Building Project "c:\tmp\...\ZERO_CHECK.vcxproj" (ALL_BUILD target(s)) -- FAILED.
     2>Done Building Project "c:\tmp\...\myproj.vcxproj.metaproj" (ALL_BUILD target(s)) -- FAILED.
     1>Done Building Project "c:\tmp\...\mysolution.sln" (ALL_BUILD target(s)) -- FAILED.

Build FAILED.

       "c:\tmp\...\mysolution.sln" (ALL_BUILD target) (1) ->
       "c:\tmp\...\myproj.vcxproj.metaproj" (ALL_BUILD target) (2) ->
       "c:\tmp\...\ZERO_CHECK.vcxproj" (ALL_BUILD target) (54) ->
         c:\tmp\...\ZERO_CHECK.vcxproj : error MSB4057: The target "ALL_BUILD" does not exist in the project.

    0 Warning(s)
    1 Error(s)

What is different with the ALL_BUILD target between msbuild and devenv? I must be calling things improperly on the command line, but I'm not sure what.

2. If I instead leave ALL_BUILD off and just let it build the defaults, it gets further, but it also trys to build targets that are not enabled with the "all" target by default like our unit tests which we add through a hierarchy of targets like "run_tests_...".

c:\tmp\...>msbuild c:\tmp\...\mysolution.sln /p:Configuration=Release /m || goto :ERROR 

Should calling msbuild on just the solution build only the "all" target by default, or does mbuild just build everything in the solution ignoring the "all" target stuff?

Thanks!
--

Personally I've just always used CMake to construct the command line by using:
cmake --build . --config Release -j

Which constructs the command:
msbuild ALL_BUILD.vcxproj /p:Configuration=Release /m

I've been told that CMake targets do not translate to the targets usable by the /target switch.

--
F

--

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