From 5c9a277deadee76fcd12194e9c5d4b2a57b1b225 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Wed, 14 Jan 2015 12:37:25 -0800 Subject: [PATCH] feat(CMakeLists): include runtime files in Windows binary distribution package Signed-off-by: Leonardo de Moura --- src/CMakeLists.txt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 371373089..2d0859ce6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -31,12 +31,15 @@ option(CROSS_COMPILE "CROSS_COMPILE" OFF) # When ON we try to minimize the amount of memory needed to compile Lean using gcc. # We use this flag when compiling at Travis. option(CONSERVE_MEMORY "CONSERVE_MEMORY" OFF) +# Include MSYS2 required DLLs in the binary distribution package +option(INCLUDE_MSYS2_DLLS "INCLUDE_MSYS2_DLLS" OFF) # emacs site-lisp dir set(EMACS_LISP_DIR "share/emacs/site-lisp/lean" CACHE STRING "emacs site-lisp dir") # library dir set(LIBRARY_DIR "lib/lean" CACHE STRING "library dir") + message(STATUS "Lean emacs-mode will be installed at " ${CMAKE_INSTALL_PREFIX}/${EMACS_LISP_DIR}) message(STATUS "Lean library will be installed at " @@ -418,3 +421,15 @@ install(DIRECTORY ${CMAKE_SOURCE_DIR}/../hott DESTINATION ${LIBRARY_DIR} install(FILES ${CMAKE_SOURCE_DIR}/../doc/bin/README.md DESTINATION .) + +if("${INCLUDE_MSYS2_DLLS}" MATCHES "ON") + # TODO(Leo): do not use hardlinks to required DLLs. + # For example, we can try to use ldd to retrieve the list of required DLLs. + set(MINGW_LOCAL_DIR C:/msys64/mingw64/bin) + set(RUNTIME_LIBRARIES + ${MINGW_LOCAL_DIR}/libgmp-10.dll + ${MINGW_LOCAL_DIR}/libwinpthread-1.dll + ${MINGW_LOCAL_DIR}/libgcc_s_seh-1.dll + ${MINGW_LOCAL_DIR}/libstdc++-6.dll) + install(PROGRAMS ${RUNTIME_LIBRARIES} DESTINATION bin) +endif()