Hello, I am used to build my application (EmCAD) and gmsh on Msys2/MINGW64 platform.
Today I made a small change to the main CMakeLists.txt file of gmsh-4.6.0-source. This change fixes the following problem: cmake/configure is not able to find the OCC libraries on Msys2/MINGW64 platform even if CASROOT is properly set. This problem arises because: 1) on Msys2/MINGW64 platform the OCC libraries are located in the following folders $CASROOT/${OCC_SYS_NAME}/gcc/lib >> dll.a libraries $CASROOT/${OCC_SYS_NAME}/gcc/bin >> dll libraries So I made the following small changes: line 12179 to 1273 if(ENABLE_OCC_STATIC) set(LIBNAME lib${OCC}.a) else() set(LIBNAME ${OCC}) endif() is replaced by: if(ENABLE_OCC_STATIC) if(MINGW) set(LIBNAME lib${OCC}.dll.a) else() set(LIBNAME lib${OCC}.a) endif() else() set(LIBNAME ${OCC}) endif() line 1284 to 1285: find_library(OCC_LIB ${LIBNAME} HINTS ENV CASROOT PATH_SUFFIXES lib ${OCC_SYS_NAME}/lib ${OCC_SYS_NAME}/vc8/lib) is replaced by: find_library(OCC_LIB ${LIBNAME} HINTS ENV CASROOT PATH_SUFFIXES lib bin lib ${OCC_SYS_NAME} ${OCC_SYS_NAME}/vc8 ${OCC_SYS_NAME}/gcc ) line 1306 to 1307: find_library(OCC_CAF_LIB ${OCC} HINTS ENV CASROOT PATH_SUFFIXES lib ${OCC_SYS_NAME}/lib ${OCC_SYS_NAME}/vc8/lib) is replaced by: find_library(OCC_CAF_LIB ${OCC} HINTS ENV CASROOT PATH_SUFFIXES lib bin lib ${OCC_SYS_NAME} ${OCC_SYS_NAME}/vc8 ${OCC_SYS_NAME}/gcc) -bin has been added to PATH_SUFFIXES in both calls to find_library. -${OCC_SYS_NAME}/gcc subfolder explitely added to ${OCC_SYS_NAME}/vc8 -lib was removed from some explicit subfolders because it is already appended by PATH_SUFFIXES With this change, when the option ENABLE_OCC_STATIC is activated on a Msys2/MINGW64 platform, gmsh is linked with libTKernel.dll.a ... libTKernel.dll.a is an import library in the microsoft world. I think that this kind of library is meant to import the libTKernel.dll library placed in the gcc/bin folder. I do not know if it make any difference with direct linkage to the dll. Walter _______________________________________________ gmsh mailing list gmsh@onelab.info http://onelab.info/mailman/listinfo/gmsh