Мне нужно указать файлы ресурсов для c-sharp / WPF через cmake , это файлы изображений, которые необходимо поставлять с графическим интерфейсом приложения.
В Visual Studio вы просто: выберитеimage -> Advanced -> Build Action -> выберите «Resource», это позволяет получить доступ к изображениям непосредственно в xaml, например:
<Image Source="png/login.png"/>
Для справки, когда сделано вручную в VS2017 это добавляет следующие строки в project.csproj:
<ItemGroup>
<Resource Include="png/login.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Resource>
</ItemGroup>
Так как мне указать файлы ресурсов в cmake?
Я попробовал это предложение здесь,безрезультатно: https://gitlab.kitware.com/cmake/cmake/issues/17368
Мой текущий CMakeLists.txt выглядит следующим образом:
cmake_minimum_required(VERSION 3.10.2 FATAL_ERROR)
project(sampleApp VERSION 2.2.0 LANGUAGES CSharp)
include(CSharpUtilities)
add_executable(sampleApp app.config
App.xaml
App.xaml.cs
MainWindow.xaml
MainWindow.xaml.cs
Styles.xaml
Properties/AssemblyInfo.cs
Properties/Resources.Designer.cs
Properties/Resources.resx
Properties/Settings.Designer.cs
Properties/Settings.settings
)
target_link_libraries(sampleApp PRIVATE otherLibrary)
#
# Tried this setting (does not work)
set(RESOURCES "png/login.png")
set_property(SOURCE ${RESOURCES} PROPERTY VS_TOOL_OVERRIDE "Resource")
csharp_set_designer_cs_properties(
Properties/AssemblyInfo.cs
Properties/Resources.Designer.cs
Properties/Resources.resx
Properties/Settings.Designer.cs
Properties/Settings.settings)
csharp_set_xaml_cs_properties(
App.xaml
App.xaml.cs
MainWindow.xaml
MainWindow.xaml.cs
Styles.xaml)
target_compile_options(sampleApp PRIVATE "/langversion:6")
target_compile_options(sampleApp PRIVATE "/unsafe")
set_property(SOURCE App.xaml PROPERTY VS_XAML_TYPE "ApplicationDefinition")
set_property(TARGET sampleApp PROPERTY VS_DOTNET_TARGET_FRAMEWORK_VERSION "v4.6.1")
set_target_properties(sampleApp PROPERTIES WIN32_EXECUTABLE TRUE)
set_property(TARGET sampleApp PROPERTY VS_DOTNET_REFERENCES
"System"
"System.Configuration"
"System.Configuration.Install"
"System.Data"
"System.Drawing"
"System.Management"
"System.Security"
"System.Transactions"
"System.Web"
"System.Xml"
"System.Core"
"System.Xaml"
"System.Xml.Linq"
"System.Data.DataSetExtensions"
"PresentationCore"
"PresentationFramework"
"Microsoft.CSharp"
"Microsoft.Office.Interop.Excel"
"WindowsBase"
)
#
# Install
#
install(TARGETS sampleApp EXPORT sampleAppTargets
RUNTIME DESTINATION sampleApp/
ARCHIVE DESTINATION sampleApp/
LIBRARY DESTINATION sampleApp/
)
install(
FILES
${RESOURCES}
DESTINATION
sampleApp/
COMPONENT
Devel
)