win/msi: separate features for ETW and perfctr support
authorBert Belder <bertbelder@gmail.com>
Thu, 7 Mar 2013 13:08:38 +0000 (14:08 +0100)
committerBert Belder <bertbelder@gmail.com>
Fri, 8 Mar 2013 17:00:37 +0000 (18:00 +0100)
tools/msvs/msi/product.wxs

index 2faaccf..2597c00 100755 (executable)
     <Feature Id="nodejs" Title="node.js engine" Level="1" Description="$(var.ProductDescription)" Absent="disallow">
       <ComponentGroupRef Id="allfiles" />
       <ComponentGroupRef Id="Product.Generated" />
+
+      <Feature Id="NodePerfCtrSupport"
+               Level="1"
+               Title="Performance counters"
+               Description="Installs support for Node.js-specific performance counters.">
+        <ComponentRef Id="NodePerfCtrSupport"/>
+      </Feature>
+
+      <Feature Id="NodeEtwSupport"
+               Level="1"
+               Title="Event tracing (ETW)"
+               Description="Installs support for event tracing (ETW) events generated by Node.js.">
+        <ComponentRef Id="NodeEtwSupport"/>
+      </Feature>
     </Feature>
 
     <Feature Id="npm"
         <Directory Id="INSTALLDIR" Name="nodejs">
           <Component Id="nodeexe" Guid="AEC0F08E-89B3-4C35-A286-8DB8598597F2">
             <File Id="filenodeexe" KeyPath="yes" Source="$(var.SourceDir)\node.exe" />
-            <?if $(var.NoETW) != 1 ?>
-            <File Id="node_etw_provider_man" Name="node_etw_provider.man" Source="$(var.RepoDir)\src\res\node_etw_provider.man" >
-              <util:EventManifest MessageFile="[INSTALLDIR]node.exe" ResourceFile="[INSTALLDIR]node.exe"/>
-            </File>
-            <?endif?>
-            <?if $(var.NoPerfCtr) != 1 ?>
-            <File Id="node_perfctr_provider_man" Name="node_perfctr_provider.man" Source="$(var.RepoDir)\src\res\node_perfctr_provider.man" >
-              <util:PerfCounterManifest ResourceFileDirectory="[INSTALLDIR]"/>
-            </File>
-            <?endif?>
             <Environment Id="npm_env"
                          Action="set"
                          Name="PATH"
     </Directory>
 
     <DirectoryRef Id="INSTALLDIR">
+      <?if $(var.NoPerfCtr) != 1 ?>
+      <Component Id="NodePerfCtrSupport">
+        <File Id="node_perfctr_provider_man" Name="node_perfctr_provider.man" Source="$(var.RepoDir)\src\res\node_perfctr_provider.man">
+          <util:PerfCounterManifest ResourceFileDirectory="[INSTALLDIR]"/>
+        </File>
+      </Component>
+      <?endif?>
+
+      <?if $(var.NoETW) != 1 ?>
+      <Component Id="NodeEtwSupport">
+        <File Id="node_etw_provider.man" Source="$(var.RepoDir)\src\res\node_etw_provider.man">
+          <util:EventManifest MessageFile="[INSTALLDIR]node.exe" ResourceFile="[INSTALLDIR]node.exe"/>
+        </File>
+      </Component>
+      <?endif?>
+    </DirectoryRef>
+
+    <DirectoryRef Id="INSTALLDIR">
       <Component Id="NpmCmdScript">
         <File Id="npm.cmd" KeyPath="yes" Source="$(var.NpmSourceDir)\bin\npm.cmd"/>
       </Component>