@echo off
+
set baseProject=C:\Eduardo\Creatis
set ProgramFiles=C:\Program Files (x86)
::set ProgramFiles=C:\Program Files (x86)
set docGeneration=OFF
-set cmakeBin=%baseProject%\DevelopperTools\cmake-3.11.2-win64-x64\bin\cmake.exe
-set creatoolsGeneration=%baseProject%\C10\ct
+set cmakeBin=%baseProject%\DevelopperTools\cmake-3.17.1-win64-x64\bin\cmake.exe
+set creatoolsGeneration=%baseProject%\C11\ct
set bash=%ProgramFiles%\Git\bin\bash.exe
:: Some times you have to put this is comments
:: If not in comments you need to activate de ppk key with the putty-agent
call %scriptsFolder%\base\configureVariables.bat
echo call Clean and Download-Sources
-start /B /wait %scriptsFolder%\base\downloadSources.bat
+::start /B /wait %scriptsFolder%\base\downloadSources.bat
echo %cd%
echo git clone ssh://gitolite@git.creatis.insa-lyon.fr/%creasource% >> tmp.sh
echo cd %creasource% >> tmp.sh
-echo git checkout vtk8itk4wx3-mingw64 >> tmp.sh
+echo git checkout vtk8itk5wx3-mingw64 >> tmp.sh
echo cd .. >> tmp.sh
echo git clone ssh://gitolite@git.creatis.insa-lyon.fr/%bbtksource% >> tmp.sh
echo cd %bbtksource% >> tmp.sh
-echo git checkout vtk8itk4wx3-mingw64 >> tmp.sh
+echo git checkout vtk8itk5wx3-mingw64 >> tmp.sh
echo cd .. >> tmp.sh
echo git clone ssh://gitolite@git.creatis.insa-lyon.fr/%creamaracassource% >> tmp.sh
echo cd %creamaracassource% >> tmp.sh
-echo git checkout vtk8itk4wx3-mingw64 >> tmp.sh
+echo git checkout vtk8itk5wx3-mingw64 >> tmp.sh
echo cd .. >> tmp.sh
echo git clone ssh://gitolite@git.creatis.insa-lyon.fr/%creavtksource% >> tmp.sh
echo cd %creavtksource% >> tmp.sh
-echo git checkout vtk8itk4wx3-mingw64 >> tmp.sh
+echo git checkout vtk8itk5wx3-mingw64 >> tmp.sh
echo cd .. >> tmp.sh
echo git clone ssh://gitolite@git.creatis.insa-lyon.fr/%creaenvironmentsource% >> tmp.sh
echo cd %creaenvironmentsource% >> tmp.sh
-echo git checkout vtk8itk4wx3-mingw64 >> tmp.sh
+echo git checkout vtk8itk5wx3-mingw64 >> tmp.sh
echo cd .. >> tmp.sh
echo git clone ssh://gitolite@git.creatis.insa-lyon.fr/%creabrukersource% >> tmp.sh
echo cd %creabrukersource% >> tmp.sh
-echo git checkout vtk8itk4wx3-mingw64 >> tmp.sh
+echo git checkout vtk8itk5wx3-mingw64 >> tmp.sh
echo cd .. >> tmp.sh
echo git clone ssh://gitolite@git.creatis.insa-lyon.fr/%creaimagesource% >> tmp.sh
echo cd %creaimagesource% >> tmp.sh
-echo git checkout vtk8itk4wx3-mingw64 >> tmp.sh
+echo git checkout vtk8itk5wx3-mingw64 >> tmp.sh
echo cd .. >> tmp.sh
echo git clone ssh://gitolite@git.creatis.insa-lyon.fr/%creacontourssource% >> tmp.sh
echo cd %creacontourssource% >> tmp.sh
-echo git checkout vtk8itk4wx3-mingw64 >> tmp.sh
+echo git checkout vtk8itk5wx3-mingw64 >> tmp.sh
echo cd .. >> tmp.sh
echo git clone ssh://gitolite@git.creatis.insa-lyon.fr/%crearigidregistrationssource% >> tmp.sh
echo cd %crearigidregistrationssource% >> tmp.sh
-echo git checkout vtk8itk4wx3-mingw64 >> tmp.sh
+echo git checkout vtk8itk5wx3-mingw64 >> tmp.sh
echo cd .. >> tmp.sh
echo git clone ssh://gitolite@git.creatis.insa-lyon.fr/%bbtkgeditorsource% >> tmp.sh
echo cd %bbtkgeditorsource% >> tmp.sh
-echo git checkout vtk8itk4wx3-mingw64 >> tmp.sh
+echo git checkout vtk8itk5wx3-mingw64 >> tmp.sh
echo cd .. >> tmp.sh
echo git clone ssh://gitolite@git.creatis.insa-lyon.fr/%creaminitoolssource% >> tmp.sh
echo cd %creaminitoolssource% >> tmp.sh
-echo git checkout vtk8itk4wx3-mingw64 >> tmp.sh
+echo git checkout vtk8itk5wx3-mingw64 >> tmp.sh
echo cd .. >> tmp.sh
echo git clone ssh://gitolite@git.creatis.insa-lyon.fr/%creatoolssource% >> tmp.sh
echo cd %creatoolssource% >> tmp.sh
-echo git checkout vtk8itk4wx3-mingw64 >> tmp.sh
+echo git checkout vtk8itk5wx3-mingw64 >> tmp.sh
echo cd .. >> tmp.sh
%cmakeBin% -D --BUILD_ALL:BOOL=ON -D crea_DIR:PATH=%1\c_%buildtype%%platforme%\ci CMakeCache.txt
%cmakeBin% -D BUILD_BBTK_DOC:BOOL=%3 -D BUILD_BBTK_DOC_GUIDES_HTML:BOOL=%3 -D BUILD_BBTK_DOC_GUIDES_PDF:BOOL=%3 -D BUILD_BBTK_DOC_DOXYGEN:BOOL=%3 -D BUILD_BBTK_DOC_PACKAGE:BOOL=%3 CMakeCache.txt
-%cmakeBin% -D CMAKE_CXX_FLAGS:STRING="-fpermissive -std=c++11" CMakeCache.txt
+%cmakeBin% -D CMAKE_CXX_FLAGS:STRING="-fpermissive" CMakeCache.txt
%cmakeBin% CMakeCache.txt
exit /B
%cmakeBin% -D crea_DIR:PATH=%1\c_%buildtype%%platforme%\ci -D creaEnvironment_DIR:PATH=%1\c_%buildtype%%platforme%\ci -D creaMaracasVisu_DIR:PATH=%1\c_%buildtype%%platforme%\ci -D creaImageIO_DIR:PATH=%1\c_%buildtype%%platforme%\ci CMakeCache.txt
%cmakeBin% -D BBTK_DIR:PATH=%1\c_%buildtype%%platforme%\ci CMakeCache.txt
-%cmakeBin% -D BUILD_BBTK_PACKAGE_creaContours:BOOL=ON CMakeCache.txt
%cmakeBin% -D creaContours_DOC:BOOL=%2 -D BUILD_BBTK_PACKAGE_creaContours_DOXYGEN_DOC:BOOL=%2 CMakeCache.txt
%cmakeBin% CMakeCache.txt
::%cmakeBin% -D BUILD_BBTK_PACKAGE_creaMaracasVisu_DOXYGEN_DOC:BOOL=%3 CMakeCache.txt
::%cmakeBin% CMakeCache.txt
-%cmakeBin% -D CMAKE_CXX_FLAGS:STRING=-openmp
+%cmakeBin% -D CMAKE_CXX_FLAGS:STRING=/openmp
%cmakeBin% -D crea_DIR:PATH=%1\c_%buildtype%%platforme%\ci CMakeCache.txt
%cmakeBin% -D BBTK_DIR:PATH=%1\c_%buildtype%%platforme%\ci CMakeCache.txt
%cmakeBin% -D BUILD_BBTK_PACKAGE_creaMaracasVisu:BOOL=ON -D creaMaracasVisu_DOC:BOOL=%3 CMakeCache.txt
::%cmakeBin% -D BUILD_BBTK_PACKAGE_creaVtk_DOXYGEN_DOC:BOOL=%3 CMakeCache.txt
::%cmakeBin% CMakeCache.txt
-%cmakeBin% -D CMAKE_CXX_FLAGS:STRING=-openmp
%cmakeBin% -D crea_DIR:PATH=%1\c_%buildtype%%platforme%\ci CMakeCache.txt
%cmakeBin% -D BBTK_DIR:PATH=%1\c_%buildtype%%platforme%\ci CMakeCache.txt
%cmakeBin% -D BUILD_BBTK_PACKAGE_creaVtk:BOOL=ON -D creaVtk_DOC:BOOL=%3 CMakeCache.txt
-exit /B
+exit /B
\ No newline at end of file
echo tmp.sh
-mkdir C:/Eduardo/Creatis/C10/ct
-mkdir C:/Eduardo/Creatis/C10/ct/cs
-cd C:/Eduardo/Creatis/C10/ct/cs
+mkdir C:/Eduardo/Creatis/C11/ct
+mkdir C:/Eduardo/Creatis/C11/ct/cs
+cd C:/Eduardo/Creatis/C11/ct/cs
git clone ssh://gitolite@git.creatis.insa-lyon.fr/crea
cd crea
-git checkout vtk8itk4wx3-mingw64
+git checkout vtk8itk5wx3-mingw64
cd ..
git clone ssh://gitolite@git.creatis.insa-lyon.fr/bbtk
cd bbtk
-git checkout vtk8itk4wx3-mingw64
+git checkout vtk8itk5wx3-mingw64
cd ..
git clone ssh://gitolite@git.creatis.insa-lyon.fr/creaMaracasVisu
cd creaMaracasVisu
-git checkout vtk8itk4wx3-mingw64
+git checkout vtk8itk5wx3-mingw64
cd ..
git clone ssh://gitolite@git.creatis.insa-lyon.fr/creaVtk
cd creaVtk
-git checkout vtk8itk4wx3-mingw64
+git checkout vtk8itk5wx3-mingw64
cd ..
git clone ssh://gitolite@git.creatis.insa-lyon.fr/creaEnvironment
cd creaEnvironment
-git checkout vtk8itk4wx3-mingw64
+git checkout vtk8itk5wx3-mingw64
cd ..
git clone ssh://gitolite@git.creatis.insa-lyon.fr/creaBruker
cd creaBruker
-git checkout vtk8itk4wx3-mingw64
+git checkout vtk8itk5wx3-mingw64
cd ..
git clone ssh://gitolite@git.creatis.insa-lyon.fr/creaImageIO
cd creaImageIO
-git checkout vtk8itk4wx3-mingw64
+git checkout vtk8itk5wx3-mingw64
cd ..
git clone ssh://gitolite@git.creatis.insa-lyon.fr/creaContours
cd creaContours
-git checkout vtk8itk4wx3-mingw64
+git checkout vtk8itk5wx3-mingw64
cd ..
git clone ssh://gitolite@git.creatis.insa-lyon.fr/creaRigidRegistration
cd creaRigidRegistration
-git checkout vtk8itk4wx3-mingw64
+git checkout vtk8itk5wx3-mingw64
cd ..
git clone ssh://gitolite@git.creatis.insa-lyon.fr/bbtkGEditor
cd bbtkGEditor
-git checkout vtk8itk4wx3-mingw64
+git checkout vtk8itk5wx3-mingw64
cd ..
git clone ssh://gitolite@git.creatis.insa-lyon.fr/creaMiniTools
cd creaMiniTools
-git checkout vtk8itk4wx3-mingw64
+git checkout vtk8itk5wx3-mingw64
cd ..
git clone ssh://gitolite@git.creatis.insa-lyon.fr/creaTools
cd creaTools
-git checkout vtk8itk4wx3-mingw64
+git checkout vtk8itk5wx3-mingw64
cd ..
cmake_minimum_required(VERSION 2.6)
SET(PROJECT_MAJOR_VERSION 4)
-SET(PROJECT_MINOR_VERSION 0)
+SET(PROJECT_MINOR_VERSION 1)
SET(PROJECT_BUILD_VERSION 0)
SET(CREA_VERBOSE_CMAKE TRUE)
WriteRegStr HKLM 'SYSTEM\\\\CurrentControlSet\\\\Control\\\\Session Manager\\\\Environment' 'BOOST_ROOT' '$INSTDIR\\\\'
WriteRegStr HKLM 'SYSTEM\\\\CurrentControlSet\\\\Control\\\\Session Manager\\\\Environment' 'GDCM_DIR' '$INSTDIR\\\\lib\\\\gdcm\\\\'
- WriteRegStr HKLM 'SYSTEM\\\\CurrentControlSet\\\\Control\\\\Session Manager\\\\Environment' 'ITK_DIR' '$INSTDIR\\\\lib\\\\cmake\\\\ITK-4.12\\\\'
+ WriteRegStr HKLM 'SYSTEM\\\\CurrentControlSet\\\\Control\\\\Session Manager\\\\Environment' 'ITK_DIR' '$INSTDIR\\\\lib\\\\cmake\\\\ITK-5.0\\\\'
WriteRegStr HKLM 'SYSTEM\\\\CurrentControlSet\\\\Control\\\\Session Manager\\\\Environment' 'QTDIR' '$INSTDIR\\\\'
WriteRegStr HKLM 'SYSTEM\\\\CurrentControlSet\\\\Control\\\\Session Manager\\\\Environment' 'VTK_DIR' '$INSTDIR\\\\lib\\\\cmake\\\\vtk-8.1\\\\'
WriteRegStr HKLM 'SYSTEM\\\\CurrentControlSet\\\\Control\\\\Session Manager\\\\Environment' 'WXWIN' '$INSTDIR\\\\'
-set thirdpartyGenerationBase=C:\Eduardo\Creatis\C10\tpl\
-set cmakeBin=C:\Eduardo\Creatis\DevelopperTools\cmake-3.11.2-win64-x64\bin\cmake.exe
+set thirdpartyGenerationBase=C:\Eduardo\Creatis\C11\tpl\
+
+set cmakeBin=C:\Eduardo\Creatis\DevelopperTools\cmake-3.17.1-win64-x64\bin\cmake.exe
+
set wgetPath="C:\Eduardo\Creatis\DevelopperTools\wget-1.19.4-win32\wget.exe"
+
set zipPath="C:\Program Files\7-Zip\7z.exe"
::set zipPath="peazip -ext2here "
+
set DirMingwDlls=C:\Eduardo\Creatis\DevelopperTools\mingw-w64\x86_64-7.3.0-posix-seh-rt_v5-rev0\mingw64\bin
+
set PATH=C:\Windows\system32;C:\Eduardo\Creatis\DevelopperTools\mingw-w64\x86_64-7.3.0-posix-seh-rt_v5-rev0\mingw64\bin;
+
start /wait install_generate_thirdparty-x64Release.bat
::REM start /wait install_generate_thirdparty-x64Debug.bat
::REM start /wait install_generate_thirdparty-x86Release.bat
:: REM start /wait install_generate_thirdparty-x86Debug.bat
-::pause
+::pause
\ No newline at end of file
set LogFolder=%thirdpartyGeneration%\installLog
set QTFNAME=qt-everywhere-opensource-src-4.8.2.zip
+
::set ITKFNAME=InsightToolkit-3.20.1.zip
-set ITKFNAME=InsightToolkit-4.12.1.tar
+::set ITKFNAME=InsightToolkit-4.12.1.tar
+set ITKFNAME=InsightToolkit-5.0.1-patchCreatis.zip
+
::set WXFNAME=wxWidgets-2.8.12.zip
::set WXVERSION=2.8.12
set WXFNAME=wxWidgets-3.0.4.7z
set WXVERSION=3.0.4
+
:: set BOOSTFNAME=boost_1_49_0.7z
:: set BOOSTFNAME=boost_1_52_0.7z
-set BOOSTFNAME=boost_1_64_0.7z
+::set BOOSTFNAME=boost_1_64_0.7z
+set BOOSTFNAME=boost_1_69_0.zip
+
::set XERCESFNAME=xerces-c-3.1.1.zip
::set XERCESFNAME=xerces-c-3.1.4.zip
set XERCESFNAME=xerces-c-3.2.3.zip
+
::set VTKFNAME=vtk-5.10.0.zip
:: set VTKFNAME=VTK-8.1.1-patch_mingw64.7z
set VTKFNAME=VTK-8.1.1-Patch.7z
+
::set GDCMFNAME=gdcm_05_Mai_2011.tar
::set GDCMFNAME=gdcm_11_Oct_2011.tar
::set GDCMFNAME=gdcm_10_Mars_2017-vtk7.tar
-set GDCMFNAME=gdcm13_2019_06_17_vtk8.zip
+set GDCMFNAME=gdcm13_2018_05_28_vtk8.zip
+
set TTHFNAME=tth_exe.zip
set SQLITEFNAME=sqlite_v3.6.23.1.zip
set JOMFNAME=jom.zip
if %EEDdownloadITK%==FALSE GOTO SKIPDOWNLOADITK
- %wgetPath% --no-check-certificate "%urlCreatisSource%/%ITKFNAME%.gz"
+ %wgetPath% --no-check-certificate "%urlCreatisSource%/%ITKFNAME%"
echo -----------------------------------
echo -------------ITK-------------------
echo -----------------------------------
cd %sourcepath%
- %zipPath% x %ITKFNAME%.gz
%zipPath% x %ITKFNAME%
:: del %ITKFNAME%
:: del %ITKFNAME%.gz
cd %sourcepath%
rename qt-everywhere-opensource-src-4.8.2 qt
rename wxWidgets_%WXVERSION% wxWidgets
-rename boost_1_64_0 boost
-rename InsightToolkit-4.12.1 itk
+rename boost_1_69_0 boost
+rename InsightToolkit-5.0.1 itk
rename VTK-8.1.1 vtk
rename gdcm13_2018_05_28_vtk8 gdcm13
rename tth_exe tth
cd %sourcepath%\%boost%\
:: --with-system --with-signals
-b2 --build-dir=%binpath%\%boost%Bin\build --prefix=%installpath%\ toolset=gcc cxxflags="-std=c++98" variant=%buildType% link=shared runtime-link=shared -j %NUMBER_OF_PROCESSORS% install >> %LogFolder%\boostInstall.log 2>&1
+:: cxxflags="-std=c++98"
+b2 --build-dir=%binpath%\%boost%Bin\build --prefix=%installpath%\ toolset=gcc variant=%buildType% link=shared runtime-link=shared -j %NUMBER_OF_PROCESSORS% install >> %LogFolder%\boostInstall.log 2>&1
:: cd %sourcepath%\%boost%
:: )
::)
-%cmakeBin% -G"MinGW Makefiles" -H%sourcepath%\%itk% -B%binpath%\%itk%Bin >> %LogFolder%\ITKInstall.log 2>&1
-%cmakeBin% -D CMAKE_BUILD_TYPE:STRING=%buildType% -D CMAKE_INSTALL_PREFIX:PATH=%installpath%\ CMakeCache.txt >> %LogFolder%\ITKInstall.log 2>&1
-%cmakeBin% -D BUILD_SHARED_LIBS:BOOL=ON -D BUILD_EXAMPLES:BOOL=OFF -D BUILD_TESTING:BOOL=OFF CMakeCache.txt >> %LogFolder%\ITKInstall.log 2>&1
-%cmakeBin% -D ITKV3_COMPATIBILITY:BOOL=ON -D Module_ITKReview::BOOL=ON CMakeCache.txt >> %LogFolder%\ITKInstall.log 2>&1
-mingw32-make.exe -j%NUMBER_OF_PROCESSORS% >> %LogFolder%\ITKInstall.log 2>&1
-mingw32-make.exe -j%NUMBER_OF_PROCESSORS% install >> %LogFolder%\ITKInstall.log 2>&1
+%cmakeBin% -G"MinGW Makefiles" -H%sourcepath%\%itk% -B%binpath%\%itk%Bin >> %LogFolder%\ITKInstall.log 2>&1
+%cmakeBin% -D CMAKE_BUILD_TYPE:STRING=%buildType% -D CMAKE_INSTALL_PREFIX:PATH=%installpath%\ CMakeCache.txt >> %LogFolder%\ITKInstall.log 2>&1
+%cmakeBin% -D BUILD_SHARED_LIBS:BOOL=ON -D BUILD_EXAMPLES:BOOL=OFF -D BUILD_TESTING:BOOL=OFF CMakeCache.txt >> %LogFolder%\ITKInstall.log 2>&1
+::%cmakeBin% -D ITKV3_COMPATIBILITY:BOOL=ON -D Module_ITKReview::BOOL=ON CMakeCache.txt >> %LogFolder%\ITKInstall.log 2>&1
+%cmakeBin% -D Module_ITKReview::BOOL=ON CMakeCache.txt >> %LogFolder%\ITKInstall.log 2>&1
+mingw32-make.exe -j%NUMBER_OF_PROCESSORS% >> %LogFolder%\ITKInstall.log 2>&1
+mingw32-make.exe -j%NUMBER_OF_PROCESSORS% install >> %LogFolder%\ITKInstall.log 2>&1
::cmake -D USE_DEBUG_LIB:BOOL=%buildType% -D CMAKE_INSTALL_PREFIX:PATH=%installpath%\%itk%\ CMakeCache.txt >> %LogFolder%\ITKInstall.log 2>&1
::cmake -D BUILD_EXAMPLES:BOOL=OFF -D BUILD_TESTING:BOOL=OFF -D BUILD_SHARED_LIBS:BOOL=ON -D ITK_USE_REVIEW:BOOL=ON CMakeCache.txt >> %LogFolder%\ITKInstall.log 2>&1
mingw32-make.exe -j%NUMBER_OF_PROCESSORS% >> %LogFolder%\wercesInstall.log 2>&1
mingw32-make.exe -j%NUMBER_OF_PROCESSORS% install >> %LogFolder%\wercesInstall.log 2>&1
-
:SKIPINSTALLXERCES
-echo ----------------------------------------
-echo -------- SQLite Installation------------
-echo ----------------------------------------
-
if %EEDinstallSQLite%==FALSE GOTO SKIPINSTALLSQLite
-echo -----------------------------------
-echo -------SQLite Installation------------
-echo -----------------------------------
+echo ---------------------------------------
+echo -------SQLite Installation-------------
+echo ---------------------------------------
cd %binpath%
mkdir %SQLite%Bin
cd %SQLite%Bin
if %EEDinstallDLFCN%==FALSE GOTO SKIPINSTALLDLFCN
-echo -----------------------------------
-echo -------SKIPINSTALLDLFCN Installation------------
-echo -----------------------------------
+echo ------------------------------------------------
+echo -------DLFCN Installation-----------------------
+echo ------------------------------------------------
cd %binpath%
mkdir %DLFCN%Bin
cd %DLFCN%Bin
:SKIPINSTALLDLFCN
+
+
+echo -------------------------------------------------------
+echo -------PATCH Moving dlls -----------------------------
+echo -------------------------------------------------------
+
::boost
move /Y %installpath%\lib\*.dll %installpath%\bin
+:: PATCH ITK (after boost patch)
+:: EED2020-04-14
+copy /Y %installpath%\bin\libitkminc2-5.0.dll %installpath%\lib\libitkminc2-5.0.dll
::wxWidgets
move /Y %installpath%\lib\gcc_dll\*.dll %installpath%\bin
:: dlls mingw
-set EEDclean=TRUE
+set EEDclean=FALSE
set EEDcleanSOURCES=TRUE
set EEDcleanBIN=TRUE
set EEDcleanINSTALL=TRUE
set EEDcleanLOGS=TRUE
-set EEDdownload=TRUE
+set EEDdownload=FALSE
set EEDdownloadQT=FALSE
set EEDdownloadWXWINDOWS=TRUE
set EEDdownloadBOOST=TRUE
set EEDdownloadTTH=TRUE
set EEDdownloadOPENGLMESA=TRUE
-set EEDinstall=TRUE
+set EEDinstall=FALSE
set EEDinstallQT=FALSE
set EEDinstallWXWIDGETS=TRUE
set EEDinstallBOOST=TRUE
-En creaToolsTools\Install_mingw64\Install_ThirdParty\scripts\tpl_variables.bat
- Verificar que es TRUE y FALSE
-3. Compile Third Party Library (tpl)
+3.
+Compile Third Party Library (tpl)
install-All.bat
::Nota, correr todo para bajar los fuentes, el ( unzip 7z ) no lo enuentra en la segunda corrida cuando se quite la
B. set bash=C:\Program Files\Git\bin\bash.exe
-ssh: Exportar la llave generada en linux en formato ppk. cargar la llave con pagent. (doble click en el archivo ppk)
-1. creatools.bat
+1. Install crea_TPdlls--4.1.0-win64.exe
+
+2. creatools.bat
Configurar el directorio de salida
-2. scripts/gitcall.bat
+3. ??????????
+ scripts/gitcall.bat
configurar bien la variable, que depende donde esta instalado git
set bash=C:\Program Files\Git\bin\bash.exe