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)
--- /dev/null
+<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
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)
# 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)
# 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)
# 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)