master
txt 47 lines 2.15 KB
Raw
1 if (NOT BUNDLE_ONLY)
2 set(DEPENDENCIES "wsl.exe;wslinstaller.exe;wslinstallerproxystub.dll")
3
4 # Don't include the MSI if building a thin package.
5 if (NOT "${WSL_BUILD_THIN_PACKAGE}")
6 list(APPEND DEPENDENCIES "wsl.msi")
7 endif()
8
9 add_appx_target(msixinstallerpackage
10 "${DEPENDENCIES}"
11 "${CMAKE_CURRENT_LIST_DIR}/AppxManifest.in"
12 "${BIN}/installer.msix"
13 "wsl;wslinstaller;msipackage;wslinstallerproxystub")
14 endif()
15
16 set(ARM64_BUNDLE_PATH ${CMAKE_SOURCE_DIR}/bin/arm64/${CMAKE_BUILD_TYPE}/installer.msix)
17 set(X64_BUNDLE_PATH ${CMAKE_SOURCE_DIR}/bin/X64/${CMAKE_BUILD_TYPE}/installer.msix)
18
19 # Only build the bundle if it exists
20 if ((TARGET_PLATFORM STREQUAL "arm64" AND EXISTS ${X64_BUNDLE_PATH}) OR (TARGET_PLATFORM STREQUAL "x64" AND EXISTS ${ARM64_BUNDLE_PATH}))
21 set(PACKAGE_NAME "Microsoft.WSL_${PACKAGE_VERSION}")
22 set(BUNDLE_DIR ${CMAKE_SOURCE_DIR}/bundle/${CMAKE_BUILD_TYPE})
23 set(BUNDLE_MAPPINGS_FILE ${BUNDLE_DIR}/mappings.ini)
24
25 set(OUTPUT_BUNDLE ${BUNDLE_DIR}/${PACKAGE_NAME}_x64_ARM64.msixbundle)
26 file(MAKE_DIRECTORY ${BUNDLE_DIR})
27
28 file(WRITE ${BUNDLE_MAPPINGS_FILE} "[Files]\n")
29 file(APPEND ${BUNDLE_MAPPINGS_FILE} "\"${X64_BUNDLE_PATH}\"" " \"${PACKAGE_NAME}_x64.msix\"\n")
30 file(APPEND ${BUNDLE_MAPPINGS_FILE} "\"${ARM64_BUNDLE_PATH}\"" " \"${PACKAGE_NAME}_ARM64.msix\"\n")
31
32 add_custom_command(
33 OUTPUT ${OUTPUT_BUNDLE}
34 COMMAND makeappx.exe bundle -f ${BUNDLE_MAPPINGS_FILE} -bv ${PACKAGE_VERSION} -o -p ${OUTPUT_BUNDLE}
35 COMMAND ${PACKAGE_SIGN_COMMAND} ${OUTPUT_BUNDLE}
36 COMMAND ${CMAKE_COMMAND} -E touch "${CMAKE_CURRENT_BINARY_DIR}/CmakeFiles/bundle"
37 VERBATIM
38 DEPENDS ${CMAKE_SOURCE_DIR}/bin/X64/${CMAKE_BUILD_TYPE}/installer.msix ${CMAKE_SOURCE_DIR}/bin/arm64/${CMAKE_BUILD_TYPE}/installer.msix
39 )
40
41 set_source_files_properties(${OUTPUT_BUNDLE} PROPERTIES GENERATED TRUE)
42 add_custom_target(bundle DEPENDS ${OUTPUT_BUNDLE})
43 if (NOT BUNDLE_ONLY)
44 add_dependencies(bundle msixinstallerpackage)
45 endif()
46 set_target_properties(bundle PROPERTIES EXCLUDE_FROM_ALL FALSE)
47 endif()