From 2b244f1e2223c7daf273f41f2c8fade935f792f3 Mon Sep 17 00:00:00 2001 From: Nabil Ghodbane Date: Thu, 21 Nov 2024 16:07:20 +0100 Subject: [PATCH] bos #43653: integration of Persalys 17.0.1 - Windows build --- applications/SALOME-9.14.0-windows.pyconf | 2 +- applications/SALOME-master-windows.pyconf | 2 +- products/PERSALYS.pyconf | 36 +++++ products/compil_scripts/PERSALYS-v17.0.1.bat | 161 +++++++++++++++++++ products/patches/PERSALYS-v17.0.1-001.patch | 11 ++ products/patches/PERSALYS-v17.0.1-002.patch | 23 +++ products/patches/PERSALYS-v17.0.1-003.patch | 25 +++ 7 files changed, 258 insertions(+), 2 deletions(-) mode change 100644 => 100755 products/PERSALYS.pyconf create mode 100755 products/compil_scripts/PERSALYS-v17.0.1.bat create mode 100644 products/patches/PERSALYS-v17.0.1-001.patch create mode 100644 products/patches/PERSALYS-v17.0.1-002.patch create mode 100644 products/patches/PERSALYS-v17.0.1-003.patch diff --git a/applications/SALOME-9.14.0-windows.pyconf b/applications/SALOME-9.14.0-windows.pyconf index 8aec3a9..2867b12 100644 --- a/applications/SALOME-9.14.0-windows.pyconf +++ b/applications/SALOME-9.14.0-windows.pyconf @@ -122,7 +122,7 @@ APPLICATION : pandas : '1.5.3' patsy : '0.5.2' ParaView : {tag:'5.11.0', base: 'no', section: 'version_5_11_0'} - PERSALYS: 'v16.0.1' + PERSALYS: 'v17.0.1' perl : '5.28.1.1' Pillow : '10.2.0' planegcs : '0.18-3cb6890' diff --git a/applications/SALOME-master-windows.pyconf b/applications/SALOME-master-windows.pyconf index bee1e07..2cbf403 100644 --- a/applications/SALOME-master-windows.pyconf +++ b/applications/SALOME-master-windows.pyconf @@ -122,7 +122,7 @@ APPLICATION : pandas : '1.5.3' patsy : '0.5.2' ParaView : {tag:'5.11.0', base: 'no', section: 'version_5_11_0'} - PERSALYS: 'v16.0.1' + PERSALYS: 'v17.0.1' perl : '5.28.1.1' Pillow : '10.2.0' planegcs : '0.18-3cb6890' diff --git a/products/PERSALYS.pyconf b/products/PERSALYS.pyconf old mode 100644 new mode 100755 index c116fef..2f42e30 --- a/products/PERSALYS.pyconf +++ b/products/PERSALYS.pyconf @@ -62,6 +62,42 @@ default_win : version_v17_0_1 : { compil_script : 'PERSALYS-v17.0.1.sh' + patches : [] +} + +version_v17_0_1_win : +{ + compil_script : 'PERSALYS-v17.0.1.bat' + depend : ['Python', + 'hdf5', + 'cgns', + 'tbb', + 'nlopt', + 'libxml2', + 'eigen', + 'boost', + 'ADAO', + 'KERNEL', + 'GUI', + 'Sphinx', + 'qwt', + 'qt', + 'ParaView', + 'openturns', + 'FMILibrary', + 'PyFMI', + 'YACS', + 'YDEFX', + 'PY2CPP', + 'CAS', + 'CONFIGURATION', + 'openblas', + 'pthreads' + ] + patches : ['PERSALYS-v17.0.1-001.patch', + 'PERSALYS-v17.0.1-002.patch', + 'PERSALYS-v17.0.1-003.patch' + ] } version_v16_0_1 : diff --git a/products/compil_scripts/PERSALYS-v17.0.1.bat b/products/compil_scripts/PERSALYS-v17.0.1.bat new file mode 100755 index 0000000..93927b2 --- /dev/null +++ b/products/compil_scripts/PERSALYS-v17.0.1.bat @@ -0,0 +1,161 @@ +@echo off + +echo ########################################################################## +echo openturns %VERSION% +echo ########################################################################## + +IF NOT DEFINED SAT_DEBUG ( + SET SAT_DEBUG=0 +) + +SET PRODUCT_BUILD_TYPE=Release +IF DEFINED SAT_CMAKE_BUILD_TYPE ( + SET PRODUCT_BUILD_TYPE=%SAT_CMAKE_BUILD_TYPE% +) +if %SAT_DEBUG% == 1 ( + set PRODUCT_BUILD_TYPE=Debug +) + +IF NOT DEFINED CMAKE_GENERATOR ( + SET CMAKE_GENERATOR="Visual Studio 15 2017" +) + +if NOT exist "%PRODUCT_INSTALL%" mkdir %PRODUCT_INSTALL% + +REM clean BUILD directory +if exist "%BUILD_DIR%" rmdir /Q /S %BUILD_DIR% +mkdir %BUILD_DIR% + +SET CMAKE_OPTIONS= +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DCMAKE_INSTALL_PREFIX:STRING=%PRODUCT_INSTALL:\=/% +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DCMAKE_BUILD_TYPE:STRING=%PRODUCT_BUILD_TYPE% +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DCMAKE_INSTALL_LIBDIR:STRING=lib +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DPYTHON_EXECUTABLE=%PYTHONBIN% +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DSWIG_EXECUTABLE=%SWIG_ROOT_DIR:\=/%/bin/swig.exe +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DTBB_ROOT_DIR=%TBB_ROOT_DIR% +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -Dtbb_DIR:PATH=%TBB_ROOT_DIR:\=/% +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DUSE_TBB=OFF +REM libxml2 settings +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DVTK_MODULE_USE_EXTERNAL_VTK_libxml2:BOOL=ON +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DLIBXML2_INCLUDE_DIR:STRING=%LIBXML2_ROOT_DIR:\=/%/include +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DLIBXML2_LIBRARIES:STRING=%LIBXML2_ROOT_DIR:\=/%/lib/libxml2.lib +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DLIBXML2_LIBRARY:STRING=%LIBXML2_ROOT_DIR:\=/%/lib/libxml2.lib +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DLIBXML2_XMLLINT_EXECUTABLE=%LIBXML2_ROOT_DIR:\=/%/bin/xmllint.exe + + +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DPTHREAD_ROOT_DIR=%PTHREAD_ROOT_DIR:\=/% +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DPTHREAD_INCLUDE_DIR=%PTHREAD_ROOT_DIR:\=/%/include +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DPTHREAD_DLL_LIBRARY=%PTHREAD_ROOT_DIR:\=/%/lib/pthreadVC2.dll +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DPTHREAD_LIBRARY=%PTHREAD_ROOT_DIR:\=/%/lib/pthreadVCE2.lib + +REM HDF5 settings +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DVTK_MODULE_USE_EXTERNAL_VTK_hdf5:BOOL=ON +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DHDF5_DIR:PATH=%HDF5_ROOT_DIR:\=/%/cmake/hdf5 +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DHDF5_INCLUDE_DIRS:PATH=%HDF5_ROOT_DIR:\=/%/include +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DHDF5_USE_STATIC_LIBRARIES:BOOL=OFF + +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DNLOPT_INCLUDE_DIRS:STRING=%NLOPT_ROOT_DIR:\=/%/include +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DNLOPT_LIBRARIES:STRING=%NLOPT_ROOT_DIR:\=/%/bin +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DNLOPT_DIR:STRING=%NLOPT_ROOT_DIR:\=/% + +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DCBLAS_DIR=%OPENBLAS_ROOT_DIR:\=/%/share/cmake/OpenBLAS + +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DPython3_EXECUTABLE:FILEPATH=%PYTHON_ROOT_DIR:\=/%/python3.exe +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DPython3_INCLUDE_DIR:PATH=%PYTHON_ROOT_DIR:\=/%/include + +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DLAPACK_LIBRARIES:FILEPATH=%OPENBLAS_ROOT_DIR:\=/%/lib/openblas.lib +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DCMAKE_SHARED_LINKER_FLAGS_RELEASE="/OPT:NOREF /INCREMENTAL:NO" +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DCMAKE_UNITY_BUILD=ON +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DCMAKE_UNITY_BUILD_BATCH_SIZE=16 +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DSWIG_COMPILE_FLAGS="/bigobj" +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DUSE_SPHINX=OFF +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DQWT_INCLUDE_DIR=%QWT_ROOT_DIR:\=/%/include +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DBUILD_SHARED_LIBS:BOOL=ON +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DADAO_ROOT_DIR=%ADAO_ROOT_DIR:\=/% + +REM Boost settings +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DBOOST_ROOT:PATH=%BOOST_ROOT_DIR:\=/% +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DBoost_ADDITIONAL_VERSIONS="1.67.0 1.67" +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DBOOST_INCLUDEDIR=%BOOST_ROOT_DIR:\=/%/include/boost-1_67 +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DBoost_INCLUDE_DIR=%BOOST_ROOT_DIR:\=/%/include/boost-1_67 +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DBoost_NO_BOOST_CMAKE:BOOL=ON +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DBoost_NO_SYSTEM_PATHS:BOOL=ON + +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DGUI_ROOT_DIR=%GUI_ROOT_DIR:\=/% +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DSalomeGUI_DIR=%GUI_ROOT_DIR:\=/%/adm_local/cmake_files +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DKERNEL_ROOT_DIR=%KERNEL_ROOT_DIR:\=/% +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DSalomeKERNEL_DIR=%KERNEL_ROOT_DIR:\=/%/salome_adm/cmake_files +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DOpenTURNS_DIR=%OT_ROOT_DIR:\=/%/lib/cmake/openturns +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -Dotmorris_DIR==%OT_ROOT_DIR:\=/%/lib/cmake/otmorris +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DPy2cpp_DIR=%PY2CPP_ROOT_DIR:\=/%/lib/cmake/py2cpp + +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DQWT_INCLUDE_DIR=%QWT_ROOT_DIR:\=/%/include +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DQWT_LIBRARY=%QWT_ROOT_DIR:\=/%/lib/qwt.lib + +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DUSE_SPHINX=OFF +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DSPHINX_ROOT_DIR=%SPHINX_ROOT_DIR:\=/% +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DYACS_ROOT_DIR=%YACS_ROOT_DIR:\=/% +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DSalomeYACS_DIR=%YACS_ROOT_DIR:\=/%/adm/cmake +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -Dydefx_DIR=%YDEFX_ROOT_DIR:\=/%/salome_adm/cmake_files +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DAdaoCppLayer_INCLUDE_DIR=%ADAO_INTERFACE_ROOT_DIR:\=/%/include +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DAdaoCppLayer_ROOT_DIR=%ADAO_INTERFACE_ROOT_DIR:\=/% +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DUSE_SALOME=ON +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DTBB_ROOT=%TBB_ROOT_DIR:\=/% +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DTBB_INCLUDE_DIR=%TBB_ROOT_DIR:\=/%/include +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DPYTHON_EXECUTABLE=%PYTHONBIN:\=/% +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DPYTHON_INCLUDE_DIR=%PYTHON_INCLUDE:\=/% +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DCMAKE_FIND_ROOT_PATH=ON + +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DCGNS_INCLUDE_DIR:PATH=%CGNS_ROOT_DIR:\=/%/include +set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DCGNS_LIBRARY:STRING=%CGNS_ROOT_DIR:\=/%/lib/cgnsdll.lib +SET CMAKE_OPTIONS=%CMAKE_OPTIONS% -DCGNS_INCLUDE_DIR:PATH=%CGNS_ROOT_DIR:\=/%/include + + +if NOT exist "%PRODUCT_INSTALL%" mkdir %PRODUCT_INSTALL% +REM clean BUILD directory +if exist "%BUILD_DIR%" rmdir /Q /S %BUILD_DIR% +mkdir %BUILD_DIR% + +cd %BUILD_DIR% + +set MSBUILDDISABLENODEREUSE=1 + +echo. +echo ********************************************************************* +echo *** %CMAKE_ROOT%\bin\cmake %CMAKE_OPTIONS% %SOURCE_DIR% +echo ********************************************************************* +echo. + +%CMAKE_ROOT%\bin\cmake -G %CMAKE_GENERATOR% -A x64 %CMAKE_OPTIONS% %SOURCE_DIR% +if NOT %ERRORLEVEL% == 0 ( + echo "ERROR on cmake" + exit 1 +) + +echo. +echo ********************************************************************* +echo *** msbuild %MAKE_OPTIONS% /p:Configuration=%PRODUCT_BUILD_TYPE% /p:Platform=x64 /p:CharacterSet=Unicode ALL_BUILD.vcxproj + +echo ********************************************************************* +echo. + +msbuild %MAKE_OPTIONS% /p:Configuration=%PRODUCT_BUILD_TYPE% /p:Platform=x64 /p:CharacterSet=Unicode ALL_BUILD.vcxproj +if NOT %ERRORLEVEL% == 0 ( + echo ERROR on msbuild ALL_BUILD.vcxproj, please check! + REM exit 2 +) + +echo. +echo ********************************************************************* +echo *** installation... +echo ********************************************************************* +echo. + +msbuild %MAKE_OPTIONS% /p:Configuration=%PRODUCT_BUILD_TYPE% /p:Platform=x64 /p:CharacterSet=Unicode INSTALL.vcxproj +if NOT %ERRORLEVEL% == 0 ( + echo ERROR on msbuild INSTALL.vcxproj + exit 3 +) + +echo +echo "########## END" diff --git a/products/patches/PERSALYS-v17.0.1-001.patch b/products/patches/PERSALYS-v17.0.1-001.patch new file mode 100644 index 0000000..af785c8 --- /dev/null +++ b/products/patches/PERSALYS-v17.0.1-001.patch @@ -0,0 +1,11 @@ +--- persalys-17.0.1_ref/CMakeLists.txt 2024-10-16 16:22:25.000000000 +0200 ++++ persalys-17.0.1_dev/CMakeLists.txt 2024-11-21 09:57:22.000000000 +0100 +@@ -64,7 +64,7 @@ + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj") + endif () + +-find_package (Boost CONFIG COMPONENTS locale program_options) ++find_package (Boost COMPONENTS locale filesystem program_options REQUIRED) + if (Boost_FOUND) + message(STATUS "Found Boost: ${Boost_DIR} (found suitable version \"${Boost_VERSION}\")") + else () diff --git a/products/patches/PERSALYS-v17.0.1-002.patch b/products/patches/PERSALYS-v17.0.1-002.patch new file mode 100644 index 0000000..d9c6bdb --- /dev/null +++ b/products/patches/PERSALYS-v17.0.1-002.patch @@ -0,0 +1,23 @@ +--- persalys-17.0.1_ref/lib/src/base/CMakeLists.txt 2024-10-16 16:22:25.000000000 +0200 ++++ persalys-17.0.1_dev/lib/src/base/CMakeLists.txt 2024-11-21 10:35:00.000000000 +0100 +@@ -207,7 +207,7 @@ + else () + target_compile_definitions (persalysbase PUBLIC PERSALYS_BASE_STATIC) + endif () +- ++target_compile_options(persalysbase PUBLIC -DBOOST_ALL_DYN_LINK) + target_include_directories (persalysbase PRIVATE ${Boost_INCLUDE_DIRS}) + target_include_directories (persalysbase PRIVATE ${Python_INCLUDE_DIRS}) + +@@ -229,9 +229,8 @@ + target_link_libraries (persalysbase PRIVATE stdc++fs) + endif () + +-target_link_libraries (persalysbase PUBLIC ${PERSALYS_PUBLIC_LIBRARIES}) +-target_link_libraries (persalysbase PRIVATE ${PERSALYS_PRIVATE_LIBRARIES}) +-target_link_libraries (persalysbase PRIVATE Boost::locale) ++target_link_libraries (persalysbase PUBLIC "${PERSALYS_PUBLIC_LIBRARIES};${Boost_LIBRARIES};${Boost_FILESYSTEM_LIBRARY_RELEASE}") ++target_link_libraries (persalysbase PRIVATE "${PERSALYS_PRIVATE_LIBRARIES};${Boost_LIBRARIES};${Boost_FILESYSTEM_LIBRARY_RELEASE}") + + install (TARGETS persalysbase + RUNTIME DESTINATION ${PERSALYS_BIN_PATH} diff --git a/products/patches/PERSALYS-v17.0.1-003.patch b/products/patches/PERSALYS-v17.0.1-003.patch new file mode 100644 index 0000000..76a132d --- /dev/null +++ b/products/patches/PERSALYS-v17.0.1-003.patch @@ -0,0 +1,25 @@ +--- persalys-17.0.1_ref/main/CMakeLists.txt 2024-10-16 16:22:25.000000000 +0200 ++++ persalys-17.0.1_dev/main/CMakeLists.txt 2024-11-21 10:00:48.000000000 +0100 +@@ -39,7 +39,10 @@ + + if (WIN32) + add_executable (persalys_launcher launcher.cxx) +- target_link_libraries (persalys_launcher PRIVATE Boost::program_options ws2_32) ++ target_compile_options(persalys_launcher PUBLIC -DBOOST_ALL_DYN_LINK) ++ target_link_libraries (persalys_launcher PUBLIC Boost::program_options ws2_32 "${PERSALYS_PRIVATE_LIBRARIES};${Boost_LIBRARIES};${Boost_FILESYSTEM_LIBRARY_RELEASE}") ++ target_link_libraries (persalys_launcher PRIVATE Boost::program_options ws2_32 "${PERSALYS_PRIVATE_LIBRARIES};${Boost_LIBRARIES};${Boost_FILESYSTEM_LIBRARY_RELEASE}") ++ + set_target_properties (persalys_launcher PROPERTIES UNITY_BUILD OFF) + install (TARGETS persalys_launcher DESTINATION bin) + endif () +--- persalys-17.0.1_ref/main/launcher.cxx 2024-10-16 16:22:25.000000000 +0200 ++++ persalys-17.0.1_dev/main/launcher.cxx 2024-11-21 11:35:26.000000000 +0100 +@@ -108,7 +108,7 @@ + { + fs::create_directories(pythonuserbase_dir / "Python312" / "site-packages"); + } +- catch (const std::filesystem::filesystem_error &) ++ catch (const fs::filesystem_error &) + { + } + } -- 2.39.2