未验证 提交 2f208128 编写于 作者: J Jeremy Koritzinsky 提交者: GitHub

Fix MSBuild integration for the host build with CMake 3.26 (#88208)

上级 b41893b3
......@@ -31,6 +31,19 @@ if (CLR_CMAKE_HOST_WIN32)
set_target_properties(${targetName} PROPERTIES COMPILE_OPTIONS "${compileOptions}")
endfunction()
function(add_ijw_msbuild_project_properties targetName ijwhost_target)
# When we're building with MSBuild, we need to set some project properties
# in case CMake has decided to use the SDK support.
# We're dogfooding things, so we need to set settings in ways that the product doesn't quite support.
# We don't actually need an installed/available target framework version here
# since we are disabling implicit framework references. We just need a valid value, and net8.0 is valid.
set_target_properties(${targetName} PROPERTIES
DOTNET_TARGET_FRAMEWORK net8.0
VS_GLOBAL_DisableImplicitFrameworkReferences true
VS_GLOBAL_GenerateRuntimeConfigurationFiles false
VS_PROJECT_IMPORT "${CMAKE_CURRENT_FUNCTION_LIST_DIR}/SetIJWProperties.props")
endfunction()
# 4365 - signed/unsigned mismatch
# 4679 - Could not import member. This is an issue with IJW and static abstract methods in interfaces.
add_compile_options(/wd4365 /wd4679)
......
<Project>
<PropertyGroup>
<!-- The C++/CLI targets don't let us set this in the project file where CMake lets us set project properties, so we set it in an imported project file where it will work. -->
<UseIJWHost>false</UseIJWHost>
</PropertyGroup>
</Project>
\ No newline at end of file
......@@ -12,5 +12,6 @@ add_library(ijw SHARED ${SOURCES})
target_link_libraries(ijw PRIVATE ${LINK_LIBRARIES_ADDITIONAL})
remove_ijw_incompatible_target_options(ijw)
add_ijw_msbuild_project_properties(ijw ijwhost)
install_with_stripped_symbols(ijw TARGETS corehost_test)
......@@ -7,6 +7,7 @@ set(SOURCES IjwCopyConstructorMarshaler.cpp)
# add the shared library
add_library (IjwCopyConstructorMarshaler SHARED ${SOURCES})
target_link_libraries(IjwCopyConstructorMarshaler PRIVATE ${LINK_LIBRARIES_ADDITIONAL})
add_ijw_msbuild_project_properties(IjwCopyConstructorMarshaler ijwhost)
# add the install targets
install (TARGETS IjwCopyConstructorMarshaler DESTINATION bin)
......@@ -7,6 +7,7 @@ set(SOURCES IjwNativeDll.cpp)
# add the shared library
add_library (IjwNativeDll SHARED ${SOURCES})
target_link_libraries(IjwNativeDll PRIVATE ${LINK_LIBRARIES_ADDITIONAL})
add_ijw_msbuild_project_properties(IjwNativeDll ijwhost)
# add the install targets
install (TARGETS IjwNativeDll DESTINATION bin)
......@@ -7,6 +7,7 @@ set(SOURCES IjwNativeVarargs.cpp)
# add the shared library
add_library (IjwNativeVarargs SHARED ${SOURCES})
target_link_libraries(IjwNativeVarargs PRIVATE ${LINK_LIBRARIES_ADDITIONAL})
add_ijw_msbuild_project_properties(IjwNativeVarargs ijwhost)
# add the install targets
install (TARGETS IjwNativeVarargs DESTINATION bin)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册