Skip to content

Commit cc3a173

Browse files
author
pv
committed
before windows
1 parent f0a8e12 commit cc3a173

File tree

2 files changed

+98
-4
lines changed

2 files changed

+98
-4
lines changed
Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +0,0 @@
1-
1. https://www.intel.com/content/www/us/en/developer/tools/oneapi/hpc-toolkit-download.html
2-
2. https://www.python.org/downloads/
3-
3. pip install numpy
4-
4. https://github.com/Kitware/CMake/releases

src/lmgc90_dev/src/Sandbox/compas_fortran_c/README.md

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,3 +107,101 @@ Shows 90 rigid bodies with 859 contact interactions between particles.
107107
- https://www.intel.com/content/www/us/en/developer/tools/oneapi/hpc-toolkit-download.html
108108
- https://github.com/Kitware/CMake/releases
109109

110+
REM Prereqs: Install Intel oneAPI HPC Toolkit + CMake
111+
112+
REM 1) Environment
113+
call "%ONEAPI_ROOT%\setvars.bat"
114+
115+
REM 2) Build LMGC90 core (minimal)
116+
cd C:\path\to\compas_lmgc90\src\lmgc90_dev
117+
rmdir /S /Q build_core_min_win 2>nul
118+
mkdir build_core_min_win && cd build_core_min_win
119+
cmake .. -G "NMake Makefiles" ^
120+
-DCMAKE_BUILD_TYPE=Release ^
121+
-DBUILD_ChiPy=OFF ^
122+
-DBUILD_PRE=OFF ^
123+
-DBUILD_POST=OFF ^
124+
-DNO_DOXYGEN=ON ^
125+
-DMATLIB_VERSION=none ^
126+
-DSPARSE_LIBRARY=none ^
127+
-DWITH_HDF5=OFF ^
128+
-DBUILD_STANDALONE=OFF ^
129+
-DBUILD_STANDALONE_MPI=OFF ^
130+
-DBLA_VENDOR=Intel10_64lp
131+
cmake --build . --config Release -j
132+
133+
REM 3) Build and run wrapper
134+
cd C:\path\to\compas_lmgc90\src\lmgc90_dev\src\Sandbox\compas_fortran_c
135+
set LMGC_INCLUDE=C:\path\to\compas_lmgc90\src\lmgc90_dev\build_core_min_win\modules
136+
set LMGC_LIB_PATH=C:\path\to\compas_lmgc90\src\lmgc90_dev\build_core_min_win\lib
137+
138+
ifx /nologo /c src\wrap_lmgc90_compas.f90 /I "%LMGC_INCLUDE%"
139+
cl /nologo /c src\comgc90.c /I "%LMGC_INCLUDE%"
140+
141+
ifx /nologo /Qmkl /Fe:comgc90.exe wrap_lmgc90_compas.obj comgc90.obj ^
142+
/link /LIBPATH:"%LMGC_LIB_PATH%" ^
143+
lmgc_core_shared.lib lmgc_core_rigid_3d.lib lmgc_core_contact_3d.lib lmgc_core_contactor_3d.lib ^
144+
lmgc_core_kernel_3d.lib lmgc_core_post_3d.lib lmgc_core_utils.lib lmgc_core_mailx.lib ^
145+
lmgc_core_shared_contribs.lib lmgc_core_other_contribs.lib lmgc_core_utils_contribs.lib ^
146+
lmgc_ann.lib lmgc_clipper.lib predicates.lib librtree.lib minpack.lib demmefi.lib ^
147+
lmgc_exception.lib lmgc_core_mbs3d.lib lmgc_core_mbs2d.lib ^
148+
lmgc_bindings_FEM.lib lmgc_bindings_user.lib lmgc_bindings_sparse_la.lib lmgc_bindings_MBS.lib ^
149+
Clipper2.lib Clipper2Z.lib Clipper2utils.lib Clipper2Zutils.lib ^
150+
ann_euclid.lib ann_manhattan.lib
151+
152+
set PATH=%LMGC_LIB_PATH%;%PATH%
153+
mkdir OUTBOX POSTPRO
154+
comgc90.exe
155+
156+
# Prereqs: Install MSYS2, open the "MSYS2 UCRT64" shell
157+
158+
# 1) Toolchain
159+
pacman -Syu --noconfirm
160+
pacman -S --needed --noconfirm \
161+
mingw-w64-ucrt-x86_64-gcc \
162+
mingw-w64-ucrt-x86_64-gcc-fortran \
163+
mingw-w64-ucrt-x86_64-cmake \
164+
mingw-w64-ucrt-x86_64-make \
165+
mingw-w64-ucrt-x86_64-openblas
166+
167+
# 2) Build LMGC90 core (minimal)
168+
cd /c/path/to/compas_lmgc90/src/lmgc90_dev
169+
rm -rf build_core_min_win
170+
mkdir build_core_min_win && cd build_core_min_win
171+
cmake .. -G "MinGW Makefiles" \
172+
-DCMAKE_BUILD_TYPE=Release \
173+
-DBUILD_ChiPy=OFF \
174+
-DBUILD_PRE=OFF \
175+
-DBUILD_POST=OFF \
176+
-DNO_DOXYGEN=ON \
177+
-DMATLIB_VERSION=none \
178+
-DSPARSE_LIBRARY=none \
179+
-DWITH_HDF5=OFF \
180+
-DBUILD_STANDALONE=OFF \
181+
-DBUILD_STANDALONE_MPI=OFF
182+
cmake --build . -j
183+
184+
# 3) Build and run wrapper
185+
cd /c/path/to/compas_lmgc90/src/lmgc90_dev/src/Sandbox/compas_fortran_c
186+
export LMGC_INCLUDE=/c/path/to/compas_lmgc90/src/lmgc90_dev/build_core_min_win/modules
187+
export LMGC_LIB_PATH=/c/path/to/compas_lmgc90/src/lmgc90_dev/build_core_min_win/lib
188+
189+
gfortran -c src/wrap_lmgc90_compas.f90 -I "$LMGC_INCLUDE"
190+
gcc -c src/comgc90.c -I "$LMGC_INCLUDE"
191+
192+
gcc comgc90.o wrap_lmgc90_compas.o -o comgc90.exe -L"$LMGC_LIB_PATH" \
193+
-Wl,--start-group \
194+
-llmgc_core_shared -llmgc_core_rigid_3d -llmgc_core_contact_3d -llmgc_core_contactor_3d \
195+
-llmgc_core_kernel_3d -llmgc_core_post_3d -llmgc_core_utils -llmgc_core_mailx \
196+
-llmgc_core_shared_contribs -llmgc_core_other_contribs -llmgc_core_utils_contribs \
197+
-llmgc_ann -llmgc_clipper -lpredicates -llibrtree -lminpack -ldemmefi -llmgc_exception \
198+
-llmgc_core_mbs3d -llmgc_core_mbs2d \
199+
-llmgc_bindings_FEM -llmgc_bindings_user -llmgc_bindings_sparse_la -llmgc_bindings_MBS \
200+
-lClipper2 -lClipper2Z -lClipper2utils -lClipper2Zutils \
201+
-lann_euclid -lann_manhattan \
202+
-Wl,--end-group \
203+
-lopenblas -lgfortran -lquadmath -lstdc++ -lm
204+
205+
export PATH="$LMGC_LIB_PATH:$PATH"
206+
mkdir -p OUTBOX POSTPRO
207+
./comgc90.exe

0 commit comments

Comments
 (0)