소스 검색

Merge branch 'vs-phone-store-deployment-location' into release

Brad King 11 년 전
부모
커밋
1c104c019a

+ 1 - 0
Help/manual/cmake-properties.7.rst

@@ -291,6 +291,7 @@ Properties on Source Files
    /prop_sf/OBJECT_OUTPUTS
    /prop_sf/OBJECT_OUTPUTS
    /prop_sf/SYMBOLIC
    /prop_sf/SYMBOLIC
    /prop_sf/VS_DEPLOYMENT_CONTENT
    /prop_sf/VS_DEPLOYMENT_CONTENT
+   /prop_sf/VS_DEPLOYMENT_LOCATION
    /prop_sf/VS_SHADER_ENTRYPOINT
    /prop_sf/VS_SHADER_ENTRYPOINT
    /prop_sf/VS_SHADER_MODEL
    /prop_sf/VS_SHADER_MODEL
    /prop_sf/VS_SHADER_TYPE
    /prop_sf/VS_SHADER_TYPE

+ 8 - 0
Help/prop_sf/VS_DEPLOYMENT_LOCATION.rst

@@ -0,0 +1,8 @@
+VS_DEPLOYMENT_LOCATION
+----------------------
+
+Specifies the deployment location for a content source file with a Windows
+Phone or Windows Store application when built with a Visual Studio generator.
+This property is only applicable when using :prop_sf:`VS_DEPLOYMENT_CONTENT`.
+The value represent the path relative to the app package and applies to all
+configurations.

+ 4 - 0
Help/release/3.1.0.rst

@@ -165,6 +165,10 @@ Properties
   to tell the Visual Studio generators to mark content for deployment
   to tell the Visual Studio generators to mark content for deployment
   in Windows Phone and Windows Store projects.
   in Windows Phone and Windows Store projects.
 
 
+* A :prop_sf:`VS_DEPLOYMENT_LOCATION` source file property was added
+  to tell the Visual Studio generators the relative location of content
+  marked for deployment in Windows Phone and Windows Store projects.
+
 * The :prop_tgt:`VS_WINRT_COMPONENT` target property was created to
 * The :prop_tgt:`VS_WINRT_COMPONENT` target property was created to
   tell Visual Studio generators to compile a shared library as a
   tell Visual Studio generators to compile a shared library as a
   Windows Runtime (WinRT) component.
   Windows Runtime (WinRT) component.

+ 15 - 0
Source/cmVisualStudio10TargetGenerator.cxx

@@ -1261,6 +1261,7 @@ void cmVisualStudio10TargetGenerator::WriteExtraSource(cmSourceFile const* sf)
     }
     }
 
 
   std::string deployContent;
   std::string deployContent;
+  std::string deployLocation;
   if(this->GlobalGenerator->TargetsWindowsPhone() ||
   if(this->GlobalGenerator->TargetsWindowsPhone() ||
      this->GlobalGenerator->TargetsWindowsStore())
      this->GlobalGenerator->TargetsWindowsStore())
     {
     {
@@ -1269,6 +1270,12 @@ void cmVisualStudio10TargetGenerator::WriteExtraSource(cmSourceFile const* sf)
       {
       {
       toolHasSettings = true;
       toolHasSettings = true;
       deployContent = content;
       deployContent = content;
+
+      const char* location = sf->GetProperty("VS_DEPLOYMENT_LOCATION");
+      if(location && *location)
+        {
+        deployLocation = location;
+        }
       }
       }
     }
     }
 
 
@@ -1283,6 +1290,14 @@ void cmVisualStudio10TargetGenerator::WriteExtraSource(cmSourceFile const* sf)
       cmGeneratorExpression ge;
       cmGeneratorExpression ge;
       cmsys::auto_ptr<cmCompiledGeneratorExpression> cge =
       cmsys::auto_ptr<cmCompiledGeneratorExpression> cge =
         ge.Parse(deployContent);
         ge.Parse(deployContent);
+      // Deployment location cannot be set on a configuration basis
+      if(!deployLocation.empty())
+        {
+        this->WriteString("<Link>", 3);
+        (*this->BuildFileStream) << deployLocation
+                                 << "\\%(FileName)%(Extension)";
+        this->WriteString("</Link>\n", 0);
+        }
       for(size_t i = 0; i != configs->size(); ++i)
       for(size_t i = 0; i != configs->size(); ++i)
         {
         {
         if(0 == strcmp(cge->Evaluate(this->Makefile, (*configs)[i]), "1"))
         if(0 == strcmp(cge->Evaluate(this->Makefile, (*configs)[i]), "1"))

+ 6 - 1
Tests/VSWinStorePhone/CMakeLists.txt

@@ -86,6 +86,9 @@ if (WINDOWS_PHONE8)
 elseif (NOT "${PLATFORM}" STREQUAL "DESKTOP")
 elseif (NOT "${PLATFORM}" STREQUAL "DESKTOP")
   set(CONTENT_FILES ${CONTENT_FILES}
   set(CONTENT_FILES ${CONTENT_FILES}
     ${CMAKE_CURRENT_BINARY_DIR}/${APP_MANIFEST_NAME}
     ${CMAKE_CURRENT_BINARY_DIR}/${APP_MANIFEST_NAME}
+    )
+
+    set(ASSET_FILES ${ASSET_FILES}
     Direct3DApp1/Assets/Logo.png
     Direct3DApp1/Assets/Logo.png
     Direct3DApp1/Assets/SmallLogo.png
     Direct3DApp1/Assets/SmallLogo.png
     Direct3DApp1/Assets/SplashScreen.png
     Direct3DApp1/Assets/SplashScreen.png
@@ -94,10 +97,12 @@ elseif (NOT "${PLATFORM}" STREQUAL "DESKTOP")
 endif()
 endif()
 
 
 set(RESOURCE_FILES
 set(RESOURCE_FILES
-  ${CONTENT_FILES} ${DEBUG_CONTENT_FILES} ${RELEASE_CONTENT_FILES}
+  ${CONTENT_FILES} ${DEBUG_CONTENT_FILES} ${RELEASE_CONTENT_FILES} ${ASSET_FILES}
   Direct3DApp1/Direct3DApp1_TemporaryKey.pfx)
   Direct3DApp1/Direct3DApp1_TemporaryKey.pfx)
 
 
 set_property(SOURCE ${CONTENT_FILES} PROPERTY VS_DEPLOYMENT_CONTENT 1)
 set_property(SOURCE ${CONTENT_FILES} PROPERTY VS_DEPLOYMENT_CONTENT 1)
+set_property(SOURCE ${ASSET_FILES} PROPERTY VS_DEPLOYMENT_CONTENT 1)
+set_property(SOURCE ${ASSET_FILES} PROPERTY VS_DEPLOYMENT_LOCATION "Assets")
 set_property(SOURCE ${DEBUG_CONTENT_FILES} PROPERTY VS_DEPLOYMENT_CONTENT $<CONFIG:Debug>)
 set_property(SOURCE ${DEBUG_CONTENT_FILES} PROPERTY VS_DEPLOYMENT_CONTENT $<CONFIG:Debug>)
 set_property(SOURCE ${RELEASE_CONTENT_FILES} PROPERTY
 set_property(SOURCE ${RELEASE_CONTENT_FILES} PROPERTY
   VS_DEPLOYMENT_CONTENT $<OR:$<CONFIG:Release>,$<CONFIG:RelWithDebInfo>,$<CONFIG:MinSizeRel>>)
   VS_DEPLOYMENT_CONTENT $<OR:$<CONFIG:Release>,$<CONFIG:RelWithDebInfo>,$<CONFIG:MinSizeRel>>)

+ 3 - 3
Tests/VSWinStorePhone/cmake/Package_vc11.store.appxmanifest.in

@@ -4,7 +4,7 @@
   <Properties>
   <Properties>
     <DisplayName>@SHORT_NAME@</DisplayName>
     <DisplayName>@SHORT_NAME@</DisplayName>
     <PublisherDisplayName>mgong</PublisherDisplayName>
     <PublisherDisplayName>mgong</PublisherDisplayName>
-    <Logo>StoreLogo.png</Logo>
+    <Logo>Assets/StoreLogo.png</Logo>
   </Properties>
   </Properties>
   <Prerequisites>
   <Prerequisites>
     <OSMinVersion>6.2.1</OSMinVersion>
     <OSMinVersion>6.2.1</OSMinVersion>
@@ -15,9 +15,9 @@
   </Resources>
   </Resources>
   <Applications>
   <Applications>
     <Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="@[email protected]">
     <Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="@[email protected]">
-      <VisualElements DisplayName="@SHORT_NAME@" Description="@SHORT_NAME@" BackgroundColor="#336699" ForegroundText="light" Logo="Logo.png" SmallLogo="SmallLogo.png">
+      <VisualElements DisplayName="@SHORT_NAME@" Description="@SHORT_NAME@" BackgroundColor="#336699" ForegroundText="light" Logo="Assets/Logo.png" SmallLogo="Assets/SmallLogo.png">
         <DefaultTile ShowName="allLogos" ShortName="@SHORT_NAME@" />
         <DefaultTile ShowName="allLogos" ShortName="@SHORT_NAME@" />
-        <SplashScreen Image="SplashScreen.png" />
+        <SplashScreen Image="Assets/SplashScreen.png" />
       </VisualElements>
       </VisualElements>
     </Application>
     </Application>
   </Applications>
   </Applications>

+ 4 - 4
Tests/VSWinStorePhone/cmake/Package_vc12.store.appxmanifest.in

@@ -4,7 +4,7 @@
   <Properties>
   <Properties>
     <DisplayName>@SHORT_NAME@</DisplayName>
     <DisplayName>@SHORT_NAME@</DisplayName>
     <PublisherDisplayName>mgong</PublisherDisplayName>
     <PublisherDisplayName>mgong</PublisherDisplayName>
-    <Logo>StoreLogo.png</Logo>
+    <Logo>Assets/StoreLogo.png</Logo>
   </Properties>
   </Properties>
   <Prerequisites>
   <Prerequisites>
     <OSMinVersion>6.3</OSMinVersion>
     <OSMinVersion>6.3</OSMinVersion>
@@ -20,14 +20,14 @@
         Description="@SHORT_NAME@"
         Description="@SHORT_NAME@"
         BackgroundColor="#336699"
         BackgroundColor="#336699"
         ForegroundText="light"
         ForegroundText="light"
-        Square150x150Logo="Logo.png"
-        Square30x30Logo="SmallLogo.png">
+        Square150x150Logo="Assets/Logo.png"
+        Square30x30Logo="Assets/SmallLogo.png">
         <m2:DefaultTile ShortName="@SHORT_NAME@">
         <m2:DefaultTile ShortName="@SHORT_NAME@">
           <m2:ShowNameOnTiles>
           <m2:ShowNameOnTiles>
             <m2:ShowOn Tile="square150x150Logo" />
             <m2:ShowOn Tile="square150x150Logo" />
           </m2:ShowNameOnTiles>
           </m2:ShowNameOnTiles>
         </m2:DefaultTile>
         </m2:DefaultTile>
-        <m2:SplashScreen Image="SplashScreen.png" />
+        <m2:SplashScreen Image="Assets/SplashScreen.png" />
       </m2:VisualElements>
       </m2:VisualElements>
     </Application>
     </Application>
   </Applications>
   </Applications>

+ 4 - 4
Tests/VSWinStorePhone/cmake/Package_vc12.wp.appxmanifest.in

@@ -6,7 +6,7 @@
   <Properties>
   <Properties>
     <DisplayName>@SHORT_NAME@</DisplayName>
     <DisplayName>@SHORT_NAME@</DisplayName>
     <PublisherDisplayName>mgong</PublisherDisplayName>
     <PublisherDisplayName>mgong</PublisherDisplayName>
-    <Logo>StoreLogo.png</Logo>
+    <Logo>Assets/StoreLogo.png</Logo>
   </Properties>
   </Properties>
   <Prerequisites>
   <Prerequisites>
     <OSMinVersion>6.3.1</OSMinVersion>
     <OSMinVersion>6.3.1</OSMinVersion>
@@ -22,14 +22,14 @@
         Description="@SHORT_NAME@"
         Description="@SHORT_NAME@"
         BackgroundColor="#336699"
         BackgroundColor="#336699"
         ForegroundText="light"
         ForegroundText="light"
-        Square150x150Logo="Logo.png"
-        Square30x30Logo="SmallLogo.png">
+        Square150x150Logo="Assets/Logo.png"
+        Square30x30Logo="Assets/SmallLogo.png">
         <m2:DefaultTile ShortName="@SHORT_NAME@">
         <m2:DefaultTile ShortName="@SHORT_NAME@">
           <m2:ShowNameOnTiles>
           <m2:ShowNameOnTiles>
             <m2:ShowOn Tile="square150x150Logo" />
             <m2:ShowOn Tile="square150x150Logo" />
           </m2:ShowNameOnTiles>
           </m2:ShowNameOnTiles>
         </m2:DefaultTile>
         </m2:DefaultTile>
-        <m2:SplashScreen Image="SplashScreen.png" />
+        <m2:SplashScreen Image="Assets/SplashScreen.png" />
       </m2:VisualElements>
       </m2:VisualElements>
     </Application>
     </Application>
   </Applications>
   </Applications>