From ff6d7b023658e62f03e9bdc268fc6acce2b661f0 Mon Sep 17 00:00:00 2001 From: Rafal Harabien Date: Sun, 27 Nov 2011 19:59:14 +0000 Subject: [PATCH] [CMAKE] - Add shortcuts to CMake livecd. All .lnk files in Windows has structure called "id list". This is something like a path (we can't use environment variables there) and it is relative to Desktop. Usually first element is My Computer folder. In our shortcuts it points to livecd_start.cmd in My Documents folder, which is simple batch file. It's functionality is to start application given in argument. Because command line parameter of shell links can have environment variables, our shortcuts does not depend on patch to system directory (especially the drive number). It's a bit complicated but I have not found a better way. Now we have working shortcuts on Desktop and Start Menu. Control Panel will benefit in future because Admin Tools depend on Start Menu. svn path=/trunk/; revision=54514 --- reactos/boot/bootdata/CMakeLists.txt | 49 ++++++++++++++++++++++---- reactos/boot/bootdata/livecd_start.cmd | 1 + 2 files changed, 44 insertions(+), 6 deletions(-) create mode 100644 reactos/boot/bootdata/livecd_start.cmd diff --git a/reactos/boot/bootdata/CMakeLists.txt b/reactos/boot/bootdata/CMakeLists.txt index 2a465a21eaf..c2a0e9e720e 100644 --- a/reactos/boot/bootdata/CMakeLists.txt +++ b/reactos/boot/bootdata/CMakeLists.txt @@ -9,12 +9,12 @@ add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/hivesys_${ARCH}.inf DESTINATION rea # livecd hives list(APPEND CD_HIVES - ${CMAKE_CURRENT_SOURCE_DIR}/hivecls_${ARCH}.inf - ${CMAKE_CURRENT_SOURCE_DIR}/hivedef_${ARCH}.inf - ${CMAKE_CURRENT_SOURCE_DIR}/hivesft_${ARCH}.inf - ${CMAKE_CURRENT_SOURCE_DIR}/hivesys_${ARCH}.inf + ${CMAKE_CURRENT_SOURCE_DIR}/hivecls_${ARCH}.inf + ${CMAKE_CURRENT_SOURCE_DIR}/hivedef_${ARCH}.inf + ${CMAKE_CURRENT_SOURCE_DIR}/hivesft_${ARCH}.inf + ${CMAKE_CURRENT_SOURCE_DIR}/hivesys_${ARCH}.inf ${CMAKE_CURRENT_SOURCE_DIR}/livecd.inf - ${CMAKE_CURRENT_SOURCE_DIR}/hiveinst_${ARCH}.inf) + ${CMAKE_CURRENT_SOURCE_DIR}/hiveinst_${ARCH}.inf) add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/sam @@ -52,4 +52,41 @@ add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/livecd.ini DESTINATION root NAME_ON #unattend add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/bootcdregtest/unattend.inf DESTINATION reactos NO_CAB FOR regtest) #uncomment this for unattend bootcd -#add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/bootcd/unattend.inf DESTINATION reactos NO_CAB FOR bootcd) \ No newline at end of file +#add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/bootcd/unattend.inf DESTINATION reactos NO_CAB FOR bootcd) + +#LiveCD shortcuts +macro(add_livecd_shortcut name app dest) + add_link(NAME ${name} CMD_LINE_ARGS ${app} ICON ${app} PATH livecd_start.cmd GUID "{450D8FBA-AD25-11D0-98A8-0800361B1103}" MINIMIZE) + list(APPEND LIVECD_SHORTCUTS "${CMAKE_CURRENT_BINARY_DIR}/${name}.lnk") + add_cd_file(FILE "${CMAKE_CURRENT_BINARY_DIR}/${name}.lnk" + TARGET livecd_links + DESTINATION ${dest} + FOR livecd) +endmacro(add_livecd_shortcut) + +add_cd_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/livecd_start.cmd" DESTINATION "Profiles/Default User/My Documents" FOR livecd) +add_livecd_shortcut("Command Prompt" cmd.exe "Profiles/All Users/Desktop") +add_livecd_shortcut("Device Manager" devmgmt.exe "Profiles/All Users/Start Menu/Programs/Administrative Tools") +add_livecd_shortcut("Event Viewer" eventvwr.exe "Profiles/All Users/Start Menu/Programs/Administrative Tools") +add_livecd_shortcut("Service Manager" servman.exe "Profiles/All Users/Start Menu/Programs/Administrative Tools") +add_livecd_shortcut("System Configuration" msconfig.exe "Profiles/All Users/Start Menu/Programs/Administrative Tools") +add_livecd_shortcut("Magnify" magnify.exe "Profiles/All Users/Start Menu/Programs/Accessibility") +add_livecd_shortcut("Calculator" calc.exe "Profiles/All Users/Start Menu/Programs/Accessories") +add_livecd_shortcut("Command Prompt" cmd.exe "Profiles/All Users/Start Menu/Programs/Accessories") +add_livecd_shortcut("Paint" mspaint.exe "Profiles/All Users/Start Menu/Programs/Accessories") +add_livecd_shortcut("Notepad" notepad.exe "Profiles/All Users/Start Menu/Programs/Accessories") +add_livecd_shortcut("Remote desktop" mstsc.exe "Profiles/All Users/Start Menu/Programs/Accessories") +add_livecd_shortcut("WordPad" wordpad.exe "Profiles/All Users/Start Menu/Programs/Accessories") +add_livecd_shortcut("Audiorecorder" sndrec32.exe "Profiles/All Users/Start Menu/Programs/Entertainment") +add_livecd_shortcut("Multimedia Player" mplay32.exe "Profiles/All Users/Start Menu/Programs/Entertainment") +add_livecd_shortcut("Volume Control" sndvol32.exe "Profiles/All Users/Start Menu/Programs/Entertainment") +add_livecd_shortcut("Solitaire" sol.exe "Profiles/All Users/Start Menu/Programs/Games") +add_livecd_shortcut("Spider Solitaire" spider.exe "Profiles/All Users/Start Menu/Programs/Games") +add_livecd_shortcut("WineMine" winmine.exe "Profiles/All Users/Start Menu/Programs/Games") +add_livecd_shortcut("Character Map" charmap.exe "Profiles/All Users/Start Menu/Programs/System Tools") +add_livecd_shortcut("Keyboard Layout Switcher" kbswitch.exe "Profiles/All Users/Start Menu/Programs/System Tools") +add_livecd_shortcut("ReactX Diagnostic" dxdiag.exe "Profiles/All Users/Start Menu/Programs/System Tools") +add_livecd_shortcut("Regedit" regedit.exe "Profiles/All Users/Start Menu/Programs/System Tools") +add_livecd_shortcut("ReactOS Explorer" explorer.exe "Profiles/All Users/Start Menu/Programs") + +add_custom_target(livecd_links DEPENDS ${LIVECD_SHORTCUTS}) diff --git a/reactos/boot/bootdata/livecd_start.cmd b/reactos/boot/bootdata/livecd_start.cmd new file mode 100644 index 00000000000..2437786961b --- /dev/null +++ b/reactos/boot/bootdata/livecd_start.cmd @@ -0,0 +1 @@ +@start %1 \ No newline at end of file