@echo off REM REM SALOME archive to developer mode REM setLocal EnableDelayedExpansion REM tag in use set TAG_SAT=master set TAG_SAT_SALOME=master REM Latest SALOME archive set SAT_APPLICATION_NAME=SALOME-master set CURRENT_DIRECTORY=%cd% REM SAT and SAT_SALOME GIT repositories set SAT_GIT_REPOSITORY=https://github.com/SalomePlatform/sat.git set SAT_SALOME_GIT_REPOSITORY=https://github.com/SalomePlatform/sat_salome.git set SAT_APPLICATION_PRODUCTS=CONFIGURATION set USE_SALOME_CODEV_GIT_REPOSITORY=false set CLONE_SAT=false :PARSE_OPTIONS if not "%1"=="" ( if "%1"=="--application" ( set SAT_APPLICATION_NAME=%2 ) if "%1"=="--clone-sat" ( set CLONE_SAT=true ) if "%1"=="--sat-tag" ( set TAG_SAT=%2 ) if "%1"=="--sat_salome-tag" ( set TAG_SAT_SALOME=%2 ) if "%1"=="--use-tuleap" ( set SAT_GIT_REPOSITORY=https://codev-tuleap.cea.fr/plugins/git/salome/sat.git set SAT_SALOME_GIT_REPOSITORY=https://codev-tuleap.cea.fr/plugins/git/salome/sat_salome.git set USE_SALOME_CODEV_GIT_REPOSITORY=true ) if "%1"=="--products" ( set SAT_APPLICATION_PRODUCTS=%2 ) if "%1"=="--help" ( goto :SYNOPSIS ) shift goto :PARSE_OPTIONS ) set SAT_APPLICATION_ARCHIVE=%SAT_APPLICATION_NAME%.zip set SAT_APPLICATION_CONFIGURATION_FILE=%SAT_APPLICATION_NAME%-windows.pyconf REM REM Check that git is installed REM echo. echo INFO: checking if git.exe program is in your PATH environment variable SET GIT_ROOT_DIR= FOR /F "tokens=*" %%g IN ('where git') do (SET GIT_ROOT_DIR=%%g) echo. echo INFO: found git = %GIT_ROOT_DIR% IF NOT DEFINED GIT_ROOT_DIR ( echo. echo FATAL: Could not find git.exe command. Install Git and add it to PATH environment variable! goto :END_OF_SCRIPT ) if not EXIST %SAT_APPLICATION_NAME% ( echo. echo FATAL: Please download %SAT_APPLICATION_ARCHIVE% and extract it in directory: %CURRENT_DIRECTORY%... goto :END_OF_SCRIPT ) REM REM clone SAT REM if %CLONE_SAT% == true ( echo. echo INFO: SAT tag ......................= %TAG_SAT% echo INFO: SAT_SALOME tag ...............= %TAG_SAT_SALOME% echo INFO: SALOME application name ......= %SAT_APPLICATION_NAME% cd %CURRENT_DIRECTORY% if EXIST SAT ( echo. echo INFO: removing existing SAT directory... RMDIR /Q /S SAT ) cd %CURRENT_DIRECTORY% git clone %SAT_GIT_REPOSITORY% SAT cd SAT git checkout %TAG_SAT% cd %CURRENT_DIRECTORY% if exist SAT_SALOME ( echo. echo INFO: removing existing SAT_SALOME directory... rmdir /Q /S SAT_SALOME ) git clone %SAT_SALOME_GIT_REPOSITORY% SAT_SALOME cd %CURRENT_DIRECTORY%\SAT_SALOME git checkout %TAG_SAT_SALOME% echo. echo INFO : renaming salome-W10.pyconf to salome.pyconf cd %CURRENT_DIRECTORY% copy /Y SAT_SALOME\salome-W10.pyconf SAT_SALOME\salome.pyconf echo. echo INFO: expose SAT_SALOME projects to SAT cd %CURRENT_DIRECTORY%\SAT %CURRENT_DIRECTORY%\%SAT_APPLICATION_NAME%\W64\Python\python.exe .\sat init --add_project %CURRENT_DIRECTORY%\SAT_SALOME\salome.pyconf echo. echo INFO: add repository to VCS list: %SAT_GIT_REPOSITORY% cd %CURRENT_DIRECTORY%\SAT %CURRENT_DIRECTORY%\%SAT_APPLICATION_NAME%\W64\Python\python.exe .\sat init --VCS %SAT_GIT_REPOSITORY% echo. echo INFO: define SAT Tag in use... FOR /F %%i IN ('git describe --tags') DO set SAT_GIT_TAG=%%i cd %CURRENT_DIRECTORY%\SAT %CURRENT_DIRECTORY%\%SAT_APPLICATION_NAME%\W64\Python\python.exe .\sat init --tag %SAT_GIT_TAG% ) REM REM Check whether user uses GitHub or Tuleap repositories REM if "%USE_SALOME_CODEV_GIT_REPOSITORY%" == "false" ( echo. echo INFO: setting default git server to github cd %CURRENT_DIRECTORY%\SAT_SALOME\applications powershell -Command "(Get-Content -ReadCount 0 %SAT_APPLICATION_CONFIGURATION_FILE%) -replace 'git_server : ''tuleap''', 'git_server : ''github''' | Set-Content %SAT_APPLICATION_CONFIGURATION_FILE%" ) REM REM Patching installation REM echo INFO: patching %CURRENT_DIRECTORY%\%SAT_APPLICATION_NAME%. Be patient... set diskTg=E:\S if "%SAT_APPLICATION_NAME%" == "SALOME-9.6.0" ( set diskTg=D:\S ) REM REM Apply patches REM SET NPATCHES=4 SET IPATCH=0 set oldStr="%diskTg%\SAT_SALOME" set newStr="%CURRENT_DIRECTORY%\SAT_SALOME" set /A IPATCH=IPATCH+1 set searchStr=%oldStr:\=\\% set replaceStr=%newStr:\=\\% echo INFO: [%IPATCH%/%NPATCHES%] replacing %searchStr% with %replaceStr% . Be patient... cd %CURRENT_DIRECTORY% powershell -Command "Get-ChildItem %CURRENT_DIRECTORY%\%SAT_APPLICATION_NAME% -Recurse -Include \"*.pyconf\" | ForEach-Object { (Get-Content $_.FullName) | ForEach-Object { $_ -replace [regex]::Escape(\"%searchStr%\"), \"%replaceStr%\" } | Set-Content $_.FullName }" set oldStr="%diskTg%\%SAT_APPLICATION_NAME%" set newStr="%CURRENT_DIRECTORY%\%SAT_APPLICATION_NAME%" set searchStr=%oldStr% set replaceStr=%newStr% set /A IPATCH=IPATCH+1 echo INFO: [%IPATCH%/%NPATCHES%] replacing %searchStr% with %replaceStr% . Be patient... cd %CURRENT_DIRECTORY% powershell -Command "Get-ChildItem %CURRENT_DIRECTORY%\%SAT_APPLICATION_NAME% -Recurse -Include \"*.bat\",\"*.py\",\"*.pyconf\" | ForEach-Object { (Get-Content $_.FullName) | ForEach-Object { $_ -replace [regex]::Escape(\"%searchStr%\"), \"%replaceStr%\" } | Set-Content $_.FullName }" set searchStr=%oldStr:\=\\% set replaceStr=%newStr:\=\\% set /A IPATCH=IPATCH+1 echo INFO: [%IPATCH%/%NPATCHES%] replacing %searchStr% with %replaceStr% . Be patient... cd %CURRENT_DIRECTORY% powershell -Command "Get-ChildItem %CURRENT_DIRECTORY%\%SAT_APPLICATION_NAME% -Recurse -Include \"*.pyconf\" | ForEach-Object { (Get-Content $_.FullName) | ForEach-Object { $_ -replace [regex]::Escape(\"%searchStr%\"), \"%replaceStr%\" } | Set-Content $_.FullName }" set searchStr=%oldStr:\=/% set replaceStr=%newStr:\=/% set /A IPATCH=IPATCH+1 echo INFO: [%IPATCH%/%NPATCHES%] replacing %searchStr% with %replaceStr% . Be patient... cd %CURRENT_DIRECTORY% powershell -Command "Get-ChildItem %CURRENT_DIRECTORY%\%SAT_APPLICATION_NAME% -Recurse -Include \"*.bat\",\"*.py\",\"*.pyconf\",\"*.cmake\" | ForEach-Object { (Get-Content $_.FullName) | ForEach-Object { $_ -replace [regex]::Escape(\"%searchStr%\"), \"%replaceStr%\" } | Set-Content $_.FullName }" REM REM Clone products if any REM if defined SAT_APPLICATION_PRODUCTS ( echo INFO: getting sources of: %SAT_APPLICATION_PRODUCTS%. Sources will be stored in %CURRENT_DIRECTORY%\%SAT_APPLICATION_NAME%\SOURCES cd %CURRENT_DIRECTORY% %CURRENT_DIRECTORY%\%SAT_APPLICATION_NAME%\W64\Python\python.exe SAT\sat prepare %SAT_APPLICATION_NAME%-windows -p %SAT_APPLICATION_PRODUCTS% ) echo. echo INFO: %SAT_APPLICATION_NAME% is now ready for developments! echo INFO: To start developping, edit %SAT_APPLICATION_CONFIGURATION_FILE% and fix cmake_generator variable to your compiler. echo INFO: Note that currently only Visual C++ 2017 is fully supported. You can use Visual 2019 which should support SALOME modules. echo INFO: To compile a SALOME module, e.g. SHAPER, in a CMD terminal, execute the following command lines (for Visual C++ 2017): echo INFO: - setup Visual C++ environment echo INFO: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 echo INFO: - Retrieve SHAPER sources from GitHub or Tuleap repositories and apply patches if any: echo INFO: %CURRENT_DIRECTORY%\%SAT_APPLICATION_NAME%\W64\Python\python.exe SAT\sat prepare %SAT_APPLICATION_NAME%-windows -p SHAPER echo INFO: - Compile SHAPER sources with SAT. All build information is saved in directory: %CURRENT_DIRECTORY%\%SAT_APPLICATION_NAME%\BUILD\SHAPER echo INFO: %CURRENT_DIRECTORY%\%SAT_APPLICATION_NAME%\W64\Python\python.exe SAT\sat compile %SAT_APPLICATION_NAME%-windows -p SHAPER --clean_all echo INFO: - In case of errors, check contents of %CURRENT_DIRECTORY%\%SAT_APPLICATION_NAME%\LOGS\SHAPER echo INFO: - Note that you can load the Visual C++ Studio solution directly in Visual Studio from this directory: echo INFO: %CURRENT_DIRECTORY%\%SAT_APPLICATION_NAME%\BUILD\SHAPER echo INFO: echo INFO: To build SHAPER in RelWithDebInfo which eases the debugging of this module: echo INFO: - edit %CURRENT_DIRECTORY%\SAT_SALOME\appplications\%SAT_APPLICATION_NAME%-windows.pyconf and set cmake_build_type variable accordingly. echo INFO: echo INFO: SALOME Platform is brought to you since the early 2000s by: echo INFO: CEA: https://www.cea.fr and EDF: https://www.edf.fr echo INFO: echo INFO: Please report any error, improvement or suggestion to: echo INFO: - https://discourse.salome-platform.org echo INFO: - https://github.com/SalomePlatform echo INFO: goto :END_OF_SCRIPT :SYNOPSIS echo SYNOPSIS: call %~n0%~x0 echo OPTIONS: echo --clone-sat : clone SAT and SAT_SALOME, default value set to ...............: %CLONE_SAT% echo --sat-tag : SAT tag or branch name, default value set to .................: %TAG_SAT% echo --sat_salome-tag : SAT_SALOME tag or branch name, default value set to...........: %TAG_SAT_SALOME% echo --application : SAT_SALOME application name, default value set to.............: %SAT_APPLICATION_NAME% echo --use-tuleap : use Tuleap/git repositories, instead of GitHub ...............: %USE_SALOME_CODEV_GIT_REPOSITORY% echo --products : products to clone, comma separated............................: %SAT_APPLICATION_PRODUCTS% echo --help : this help echo. goto :END_OF_SCRIPT :END_OF_SCRIPT cd %CURRENT_DIRECTORY% setLocal DisableDelayedExpansion