@@ -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