Files
WSL/UserConfig.cmake.sample
9540481e9d Use unified kernel artifacts VHD layout (#41267)
Update the packaged kernel dependency from modules.vhd to artifacts.vhd and load kernel modules from the versioned <release>/modules directory. Preserve support for legacy flat module VHDs in the standard WSL boot path and teach WSLC sessions to mount modules from the nested layout.

Update development paths and kernel module tests for the renamed VHD and new mount source.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com>
Copilot-Session: a7cc3086-6311-4bc8-a591-49fd0e6b03fd
2026-08-20 10:57:27 -07:00

71 lines
3.8 KiB
Plaintext

# Sample user configuration
message(STATUS "Loading user configuration")
# Uncomment to use locally built wsldevicehost binaries.
# This folder should contain both wsldevicehost.dll and WslDeviceHost.idl
# set(WSL_DEVICEHOST_BIN "C:/path/to/devicehost/bin")
# Uncomment to enable development packages (smaller, faster to install)
# # Note: .vhd files fail to mount via symlink / hardlink, so COPY is needed.
# set(WSL_DEV_BINARY_PATH "C:/wsldev")
if(WSL_DEV_BINARY_PATH)
file(MAKE_DIRECTORY ${WSL_DEV_BINARY_PATH})
file(CREATE_LINK "${KERNEL_SOURCE_DIR}/bin/${TARGET_PLATFORM}/kernel" "${WSL_DEV_BINARY_PATH}/kernel" SYMBOLIC)
file(COPY_FILE "${WSLG_SOURCE_DIR}/${TARGET_PLATFORM}/system.vhd" "${WSL_DEV_BINARY_PATH}/system.vhd" ONLY_IF_DIFFERENT)
file(COPY_FILE "${KERNEL_SOURCE_DIR}/bin/${TARGET_PLATFORM}/artifacts.vhd" "${WSL_DEV_BINARY_PATH}/artifacts.vhd" ONLY_IF_DIFFERENT)
# read-only VHDs need to be world readable to mount successfully.
execute_process(
COMMAND icacls.exe "${WSL_DEV_BINARY_PATH}/system.vhd" "/grant:r" "Everyone:(R)" /Q
COMMAND icacls.exe "${WSL_DEV_BINARY_PATH}/artifacts.vhd" "/grant:r" "Everyone:(R)" /Q
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
COMMAND_ERROR_IS_FATAL ANY)
file(CREATE_LINK "${MSRDC_SOURCE_DIR}/${TARGET_PLATFORM}/msrdc.exe" "${WSL_DEV_BINARY_PATH}/msrdc.exe" SYMBOLIC)
file(CREATE_LINK "${WSLG_SOURCE_DIR}/wslg.rdp" "${WSL_DEV_BINARY_PATH}/wslg.rdp" SYMBOLIC)
file(CREATE_LINK "${WSLG_SOURCE_DIR}/wslg_desktop.rdp" "${WSL_DEV_BINARY_PATH}/wslg_desktop.rdp" SYMBOLIC)
file(CREATE_LINK "${MSRDC_SOURCE_DIR}/${TARGET_PLATFORM}/rdclientax.dll" "${WSL_DEV_BINARY_PATH}/rdclientax.dll" SYMBOLIC)
file(CREATE_LINK "${MSRDC_SOURCE_DIR}/${TARGET_PLATFORM}/rdpnanoTransport.dll" "${WSL_DEV_BINARY_PATH}/rdpnanoTransport.dll" SYMBOLIC)
file(CREATE_LINK "${MSRDC_SOURCE_DIR}/${TARGET_PLATFORM}/RdpWinStlHelper.dll" "${WSL_DEV_BINARY_PATH}/RdpWinStlHelper.dll" SYMBOLIC)
file(CREATE_LINK "${MSAL_SOURCE_DIR}/${TARGET_PLATFORM}/msal.wsl.proxy.exe" "${WSL_DEV_BINARY_PATH}/msal.wsl.proxy.exe" SYMBOLIC)
file(MAKE_DIRECTORY "${WSL_DEV_BINARY_PATH}/lib")
file(CREATE_LINK "${DIRECT3D_SOURCE_DIR}/lib/${TARGET_PLATFORM}/libd3d12.so" "${WSL_DEV_BINARY_PATH}/lib/libd3d12.so" SYMBOLIC)
file(CREATE_LINK "${DIRECT3D_SOURCE_DIR}/lib/${TARGET_PLATFORM}/libd3d12core.so" "${WSL_DEV_BINARY_PATH}/lib/libd3d12core.so" SYMBOLIC)
file(CREATE_LINK "${DXCORE_SOURCE_DIR}/lib/libdxcore.so" "${WSL_DEV_BINARY_PATH}/lib/libdxcore.so" SYMBOLIC)
foreach(LANG ${SUPPORTED_LANGS})
file(CREATE_LINK "${MSRDC_SOURCE_DIR}/${TARGET_PLATFORM}/${LANG}" "${WSL_DEV_BINARY_PATH}/${LANG}" SYMBOLIC)
endforeach()
endif()
# # Uncomment to build, package and install wslsettings
# set(WSL_BUILD_WSL_SETTINGS true)
# # Uncomment to build the C# WSLC sdk
# set(WSL_INCLUDE_SDK_CSHARP true)
# # Uncomment to configure the WSLC SDK NuGet to only target the current platform
# set(WSL_NUGET_SINGLE_PLATFORM true)
# # Uncomment to generate a "thin" MSI package which builds and installs faster
# set(WSL_BUILD_THIN_PACKAGE true)
# # Uncomment to install the package as part of the build
# set(WSL_POST_BUILD_COMMAND "powershell;-ExecutionPolicy;Bypass;-NoProfile;-NonInteractive;./tools/deploy/deploy-to-host.ps1")
# # Uncomment to reduce the verbosity of the appx package build
# set(WSL_SILENT_APPX_BUILD true)
# # Uncomment to change the pre-commit hook behavior (default: warn)
# # warn - report formatting issues without blocking the commit
# # error - block the commit when formatting issues are found
# # fix - automatically fix formatting and re-stage files
# set(WSL_PRE_COMMIT_MODE "warn")
# # Uncomment to change how many sources share a unity translation unit (default: 0).
# # Use 0 to disable unity builds and compile every file separately.
# set(WSL_UNITY_BATCH_SIZE 4)