- COMMAND echo cp ${JAVALIBS} ${JAVA_NATIVE_PATH} # Just display what's going on
- # So, first of all, I'm sorry for the next few lines. Here is what's going on.
- # I need to copy some files, depending on the environment.
- # I cannot use several POST_BUILD commands because cmake does
- # force them to run sequentially, so it fails if we build with -j
- # So I add some content to the JAVALIBS cmake variable, and copy them in one shoot.
- # But cmake list variables are ; separated, not space separated.
- # So I string(REPLACE a bit above to change ; into spaces.
- # But if I do so, cmake still passes the space-separated list as a single argument to cp.
- # So I have to fire a sh -c, just to correctly parse the cp parameters.
- # Yup. That's the ways it goes. cmake is so lovely, that's wonderful.
- COMMAND ${SHEXE} -c "cp ${JAVALIBS} ${JAVA_NATIVE_PATH}" # cp is less portable, but cmake cannot copy several files at once
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/lib/${LIBSIMGRID_SO} ${JAVA_NATIVE_PATH}/${LIBSIMGRID_SO}
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/lib/${LIBSIMGRID_JAVA_SO} ${JAVA_NATIVE_PATH}/${LIBSIMGRID_JAVA_SO}
+ # There is no way to disable the dependency of mingw-64 on that lib, unfortunately
+ # nor to script cmake -E properly, so let's be brutal
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different C:/mingw64/bin/libwinpthread-1.dll ${JAVA_NATIVE_PATH}/libwinpthread-1.dll || true