Relocate spack_cmd and scripts from installer to root bin (#24651)
Relocate spack_cmd and scripts from installer to root bin Refactor documentation, installer, and launcher to facilitate that change
This commit is contained in:
parent
4a73bfc3b9
commit
e65d3d14b4
6 changed files with 63 additions and 81 deletions
|
@ -1,16 +1,18 @@
|
||||||
@ECHO OFF
|
@ECHO OFF
|
||||||
setlocal EnableDelayedExpansion
|
setlocal EnableDelayedExpansion
|
||||||
:: (c) 2021 Lawrence Livermore National Laboratory
|
:: (c) 2021 Lawrence Livermore National Laboratory
|
||||||
:: To use this file independently of Spack's installer, please copy this file, and the
|
:: To use this file independently of Spack's installer, execute this script in its directory, or add the
|
||||||
:: 'scripts' directory, to be adjacent to your spack directory. You must have python on
|
:: associated bin directory to your PATH. Invoke to launch Spack Shell.
|
||||||
:: your path for Spack to locate it.
|
::
|
||||||
:: source_dir -------- spack
|
:: source_dir/spack/bin/spack_cmd.bat
|
||||||
:: |--- scripts
|
::
|
||||||
:: |--- spack_cmd.bat
|
pushd %~dp0..
|
||||||
pushd %~dp0
|
set SPACK_ROOT=%CD%
|
||||||
|
pushd %CD%\..
|
||||||
set spackinstdir=%CD%
|
set spackinstdir=%CD%
|
||||||
popd
|
popd
|
||||||
|
|
||||||
|
|
||||||
:: Check if Python is on the PATH
|
:: Check if Python is on the PATH
|
||||||
(for /f "delims=" %%F in ('where python.exe') do (set python_pf_ver=%%F) ) 2> NUL
|
(for /f "delims=" %%F in ('where python.exe') do (set python_pf_ver=%%F) ) 2> NUL
|
||||||
|
|
||||||
|
@ -38,17 +40,13 @@ if not defined python_pf_ver (
|
||||||
)
|
)
|
||||||
:exitpoint
|
:exitpoint
|
||||||
|
|
||||||
|
set "PATH=%SPACK_ROOT%\bin\;%PATH%"
|
||||||
for /f "tokens=*" %%g in ('dir /b /a:d "%spackinstdir%\spack*"') do (set spack_ver=%%g)
|
|
||||||
set "SPACK_ROOT=%spackinstdir%\%spack_ver%"
|
|
||||||
|
|
||||||
set "PATH=%spackinstdir%\scripts\;%PATH%"
|
|
||||||
if defined py_path (
|
if defined py_path (
|
||||||
set "PATH=%py_path%;%PATH%"
|
set "PATH=%py_path%;%PATH%"
|
||||||
)
|
)
|
||||||
|
|
||||||
if defined py_exe (
|
if defined py_exe (
|
||||||
"%py_exe%" "%spackinstdir%\scripts\haspywin.py"
|
"%py_exe%" "%SPACK_ROOT%\bin\haspywin.py"
|
||||||
"%py_exe%" "%SPACK_ROOT%\bin\spack" external find python >NUL
|
"%py_exe%" "%SPACK_ROOT%\bin\spack" external find python >NUL
|
||||||
)
|
)
|
||||||
|
|
|
@ -1616,44 +1616,26 @@ Step 2: Install and setup Spack
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
We are now ready to get the Spack environment set up on our machine. We
|
We are now ready to get the Spack environment set up on our machine. We
|
||||||
begin by creating a top-level directory to do our work in: we will call
|
begin by using Git to clone the Spack repo, hosted at https://github.com/spack/spack.git
|
||||||
it ``spack_install`` in this tutorial. Inside this directory, use Git to
|
into a desired directory, for our purposes today, called ``spack_install``.
|
||||||
clone the Spack repo, hosted at https://github.com/spack/spack.git.
|
|
||||||
|
|
||||||
The files and scripts used for Windows installation are on the
|
The files and scripts used for Windows installation are on the
|
||||||
``features/windows-support`` branch; ``cd`` into the repo and use
|
``features/windows-support`` branch; ``cd`` into the repo and use
|
||||||
``git checkout`` to switch to it. Then navigate to
|
``git checkout`` to switch to it.
|
||||||
``lib\spack\spack\cmd\installer`` and copy the ``scripts`` directory and
|
|
||||||
``spack_cmd.bat`` up to the top-level ``spack_install`` directory. In a
|
|
||||||
Windows console, you can do both of these things by executing the following
|
|
||||||
commands from the ``spack_install`` level:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
xcopy lib\spack\spack\cmd\installer\scripts\ scripts\
|
|
||||||
xcopy lib\spack\spack\cmd\installer\spack_cmd.bat .
|
|
||||||
|
|
||||||
Your file structure should look like this after following the above
|
|
||||||
steps:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
spack_install
|
|
||||||
|--------spack
|
|
||||||
|--------scripts
|
|
||||||
|--------spack_cmd.bat
|
|
||||||
|
|
||||||
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
Step 3: Run and configure Spack
|
Step 3: Run and configure Spack
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
To use Spack, run ``spack_cmd.bat`` (you may need to Run as Administrator).
|
To use Spack, run ``bin\spack_cmd.bat`` (you may need to Run as Administrator)
|
||||||
This will provide a Windows command prompt with an environment properly set
|
from the spack source tree root. This will provide a Windows command prompt
|
||||||
up with Spack and its prerequisites. If you receive a warning message that
|
with an environment properly set up with Spack and its prerequisites.
|
||||||
Python is not in your ``PATH`` (which may happen if you installed Python
|
If you receive a warning message that Python is not in your ``PATH``
|
||||||
from the website and not the Windows Store), add the location of the Python
|
(which may happen if you installed Python from the website and not
|
||||||
executable to your ``PATH`` now.
|
the Windows Store), add the location of the Python executable to your
|
||||||
|
``PATH`` now.
|
||||||
|
|
||||||
To configure Spack, first run the following command inside the Spack console:
|
To configure Spack, first run the following command inside the Spack console:
|
||||||
|
|
||||||
|
|
|
@ -85,8 +85,6 @@ install(DIRECTORY "${SPACK_SOURCE}/"
|
||||||
DESTINATION "${SPACK_DIR}")
|
DESTINATION "${SPACK_DIR}")
|
||||||
install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/Python-${PYTHON_VERSION}-win64/"
|
install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/Python-${PYTHON_VERSION}-win64/"
|
||||||
DESTINATION "${PYTHON_DIR}")
|
DESTINATION "${PYTHON_DIR}")
|
||||||
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/scripts/" DESTINATION "scripts")
|
|
||||||
#install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/spack_cmd.bat/" DESTINATION ".")
|
|
||||||
|
|
||||||
# CPACK Installer Instructions
|
# CPACK Installer Instructions
|
||||||
set(CPACK_PACKAGE_NAME "Spack")
|
set(CPACK_PACKAGE_NAME "Spack")
|
||||||
|
@ -100,6 +98,7 @@ set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
|
||||||
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/LICENSE.rtf")
|
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/LICENSE.rtf")
|
||||||
#set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_SOURCE_DIR}/NOTICE")
|
#set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_SOURCE_DIR}/NOTICE")
|
||||||
# WIX options (the default)
|
# WIX options (the default)
|
||||||
|
|
||||||
set(CPACK_GENERATOR "WIX")
|
set(CPACK_GENERATOR "WIX")
|
||||||
set(CPACK_WIX_PRODUCT_ICON "${SPACK_LOGO}")
|
set(CPACK_WIX_PRODUCT_ICON "${SPACK_LOGO}")
|
||||||
set(CPACK_WIX_UI_BANNER "${CMAKE_CURRENT_SOURCE_DIR}/banner493x58.bmp")
|
set(CPACK_WIX_UI_BANNER "${CMAKE_CURRENT_SOURCE_DIR}/banner493x58.bmp")
|
||||||
|
@ -107,8 +106,9 @@ set(CPACK_WIX_PATCH_FILE "${CMAKE_CURRENT_SOURCE_DIR}/patch.xml")
|
||||||
set(CPACK_WIX_UPGRADE_GUID "D2C703E4-721D-44EC-8016-BCB96BB64E0B")
|
set(CPACK_WIX_UPGRADE_GUID "D2C703E4-721D-44EC-8016-BCB96BB64E0B")
|
||||||
set(CPACK_WIX_SKIP_PROGRAM_FOLDER TRUE)
|
set(CPACK_WIX_SKIP_PROGRAM_FOLDER TRUE)
|
||||||
|
|
||||||
|
set(SHORTCUT_GUID "099213BC-0D37-4F29-B758-60CA2A7E6DDA")
|
||||||
# Set full path to icon, shortcut in spack.wxs
|
# Set full path to icon, shortcut in spack.wxs
|
||||||
set(SPACK_SHORTCUT "${CMAKE_CURRENT_SOURCE_DIR}/spack_cmd.bat")
|
set(SPACK_SHORTCUT "spack_cmd.bat")
|
||||||
configure_file("spack.wxs.in" "${CMAKE_CURRENT_BINARY_DIR}/spack.wxs")
|
configure_file("spack.wxs.in" "${CMAKE_CURRENT_BINARY_DIR}/spack.wxs")
|
||||||
configure_file("bundle.wxs.in" "${CMAKE_CURRENT_BINARY_DIR}/bundle.wxs")
|
configure_file("bundle.wxs.in" "${CMAKE_CURRENT_BINARY_DIR}/bundle.wxs")
|
||||||
set(CPACK_WIX_EXTRA_SOURCES "${CMAKE_CURRENT_BINARY_DIR}/spack.wxs")
|
set(CPACK_WIX_EXTRA_SOURCES "${CMAKE_CURRENT_BINARY_DIR}/spack.wxs")
|
||||||
|
|
|
@ -1,48 +1,50 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
||||||
<Fragment>
|
|
||||||
<DirectoryRef Id="TARGETDIR">
|
|
||||||
<Directory Id="DesktopFolder" Name="Desktop" />
|
|
||||||
<Directory Id="ProgramMenuFolder" Name="Programs">
|
|
||||||
<Directory Id="ApplicationProgramsFolder" Name="Spack">
|
|
||||||
<Component Id="ProgramMenuDir" Guid="*">
|
|
||||||
<RemoveFolder Id="ProgramMenuDir" On="uninstall"/>
|
|
||||||
<RegistryValue Root="HKMU" Key="Software\LLNL\Spack"
|
|
||||||
Type="integer" Value="1" Name="installed" KeyPath="yes" />
|
|
||||||
</Component>
|
|
||||||
</Directory>
|
|
||||||
</Directory>
|
|
||||||
</DirectoryRef>
|
|
||||||
</Fragment>
|
|
||||||
<Fragment>
|
<Fragment>
|
||||||
<Icon Id="icon.ico" SourceFile="@CPACK_WIX_PRODUCT_ICON@"/>
|
<Icon Id="icon.ico" SourceFile="@CPACK_WIX_PRODUCT_ICON@"/>
|
||||||
<Property Id="ARPPRODUCTICON" Value="icon.ico" />
|
<Property Id="ARPPRODUCTICON" Value="icon.ico" />
|
||||||
</Fragment>
|
</Fragment>
|
||||||
<Fragment>
|
<Fragment>
|
||||||
<!-- Add the shortcut to installer package -->
|
<DirectoryRef Id="TARGETDIR">
|
||||||
<ComponentGroup Id="ProductComponents" Directory="INSTALL_ROOT">
|
<Directory Id="DesktopFolder" Name="Desktop" >
|
||||||
<Component Id="ApplicationShortcut" Guid="@CPACK_WIX_UPGRADE_GUID@">
|
<Component Id="SpackDesktopShortCut" Guid="@CPACK_WIX_UPGRADE_GUID@">
|
||||||
<File Source="@SPACK_SHORTCUT@" KeyPath="yes">
|
<Shortcut Id="SpackDesktopShortCut"
|
||||||
<Shortcut Id="SpackStartMenuShortcut"
|
Name="Spack Package Manager"
|
||||||
Directory="DesktopFolder"
|
Description="Spack package manager"
|
||||||
Advertise="yes"
|
Target="[INSTALL_ROOT]/@SPACK_DIR@/bin/@SPACK_SHORTCUT@"
|
||||||
Name="Spack Package Manager"
|
Icon="icon1.ico">
|
||||||
Description="Spack package manager"
|
|
||||||
WorkingDirectory="INSTALL_ROOT"
|
|
||||||
Icon="icon1.ico">
|
|
||||||
<Icon Id="icon1.ico" SourceFile="@CPACK_WIX_PRODUCT_ICON@" />
|
<Icon Id="icon1.ico" SourceFile="@CPACK_WIX_PRODUCT_ICON@" />
|
||||||
</Shortcut>
|
</Shortcut>
|
||||||
<Shortcut Id="startMenuShotcut"
|
<RegistryValue Root="HKCU" Key="Software\LLNL\Spack"
|
||||||
Directory="ApplicationProgramsFolder"
|
Type="integer" Value="1" Name="SpackDesktopShortCut" KeyPath="yes" />
|
||||||
Name="Spack Package Manager"
|
</Component>
|
||||||
WorkingDirectory="INSTALL_ROOT"
|
</Directory>
|
||||||
Icon="icon2.ico"
|
<Directory Id="ProgramMenuFolder" Name="Programs">
|
||||||
IconIndex="0"
|
<Directory Id="ApplicationProgramsFolder" Name="Spack">
|
||||||
Advertise="yes">
|
<Component Id="SpackStartShortCut" Guid="@SHORTCUT_GUID@">
|
||||||
<Icon Id="icon2.ico" SourceFile="@CPACK_WIX_PRODUCT_ICON@" />
|
<Shortcut Id="SpackStartMenuShortCut"
|
||||||
</Shortcut>
|
Name="Spack Package Manager"
|
||||||
</File>
|
Description="Spack package manager"
|
||||||
</Component>
|
Target="[INSTALL_ROOT]/@SPACK_DIR@/bin/@SPACK_SHORTCUT@"
|
||||||
|
Icon="icon2.ico">
|
||||||
|
<Icon Id="icon2.ico" SourceFile="@CPACK_WIX_PRODUCT_ICON@" />
|
||||||
|
</Shortcut>
|
||||||
|
<RegistryValue Root="HKCU" Key="Software/LLNL/Spack"
|
||||||
|
Type="integer" Value="1" Name="SpackStartMenuShortCut" KeyPath="yes" />
|
||||||
|
</Component>
|
||||||
|
<Component Id="ProgramMenuDir" Guid="*">
|
||||||
|
<RemoveFolder Id="ProgramMenuDir" On="uninstall"/>
|
||||||
|
<RegistryValue Root="HKMU" Key="Software\LLNL\Spack"
|
||||||
|
Type="integer" Value="1" Name="installed" KeyPath="yes" />
|
||||||
|
</Component>
|
||||||
|
</Directory>
|
||||||
|
</Directory>
|
||||||
|
</DirectoryRef>
|
||||||
|
</Fragment>
|
||||||
|
<Fragment>
|
||||||
|
<ComponentGroup Id="ProductComponents">
|
||||||
|
<ComponentRef Id="SpackStartShortCut"/>
|
||||||
|
<ComponentRef Id="SpackDesktopShortCut"/>
|
||||||
</ComponentGroup>
|
</ComponentGroup>
|
||||||
</Fragment>
|
</Fragment>
|
||||||
</Wix>
|
</Wix>
|
||||||
|
|
Loading…
Reference in a new issue