[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cmake
Subject:    Re: [CMake] Project Structure and add_subdirectory()
From:       Marek Vojtko <marek.vojtko () oxidegames ! com>
Date:       2019-09-30 15:01:45
Message-ID: CY4PR19MB0102200B57048A65A7D82C7AEA820 () CY4PR19MB0102 ! namprd19 ! prod ! outlook ! com
[Download RAW message or body]

[Attachment #2 (text/plain)]

> Why would you build targets you don't depend upon in my original proposal? you \
> certainly include them all in your project, but as long as you build your \
> application target, only it's actual dependencies will be built. Of course, if you \
> build the "all" target, everything will be built, but that could easily be avoided \
> with EXCLUDE_FROM_ALL when adding the `components` subdirectory.😊

Unfortunately, we're using Visual Studio, which makes it very easy to "Build \
Solution" (which builds all targets, including the CMake-provided ALL_BUILD target), \
but more cumbersome to build just the application target. There is a default shortcut \
key for "Build Solution," but to build just the application you have to use the UI \
menus :(

Even if the EXCLUDE_FROM_ALL worked – again, I believe Visual Studio's "Build \
Solution" just builds all Visual Studio projects that are part of the solution, \
regardless of what ALL_BUILD does – having to track which libraries should be \
excluded from the ALL_BUILD target for each application boils down to manually \
tracking transitive dependencies 😊


[Attachment #3 (text/html)]

<html xmlns:v="urn:schemas-microsoft-com:vml" \
xmlns:o="urn:schemas-microsoft-com:office:office" \
xmlns:w="urn:schemas-microsoft-com:office:word" \
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" \
xmlns="http://www.w3.org/TR/REC-html40"> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:"Segoe UI Emoji";
	panose-1:2 11 5 2 4 2 4 2 2 3;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
p.msonormal0, li.msonormal0, div.msonormal0
	{mso-style-name:msonormal;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
span.EmailStyle18
	{mso-style-type:personal-reply;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">&gt; Why would you build targets you don't depend upon in my \
original proposal? you certainly <b>include</b> them all in your project, but as long \
as you build your application target, only it's actual dependencies will be built. Of \
course, if you build the &quot;all&quot; target, everything will be built, but that \
could easily be avoided with EXCLUDE_FROM_ALL  when adding the `components` \
subdirectory.<span style="font-family:&quot;Segoe UI \
Emoji&quot;,sans-serif">&#128522;<o:p></o:p></span></p> <p \
class="MsoNormal"><o:p>&nbsp;</o:p></p> <p class="MsoNormal">Unfortunately, we're \
using Visual Studio, which makes it very easy to "Build Solution" (which builds all \
targets, including the CMake-provided ALL_BUILD target), but more cumbersome to build \
just the application target. There is a default  shortcut key for "Build Solution," \
but to build just the application you have to use the UI menus :(<o:p></o:p></p> <p \
class="MsoNormal"><o:p>&nbsp;</o:p></p> <p class="MsoNormal">Even if the \
EXCLUDE_FROM_ALL worked – again, I believe Visual Studio's "Build Solution" just \
builds all Visual Studio projects that are part of the solution, regardless of what \
ALL_BUILD does – having to track which libraries should be  excluded from the \
ALL_BUILD target for each application boils down to manually tracking transitive \
dependencies <span style="font-family:&quot;Segoe UI \
Emoji&quot;,sans-serif">&#128522;</span><o:p></o:p></p> </div>
</body>
</html>



-- 

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

--===============0782236157==--



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic