]> git.lyx.org Git - lyx.git/blobdiff - development/cmake/LyxPackaging.cmake
Improve llvm libc++ detection
[lyx.git] / development / cmake / LyxPackaging.cmake
index 43545e2bdd8a9474e8e39fb4cb4d3fcf511bc92f..1ae425cc8e3c0515e84ba6a2a5ddce3b2f8ec33b 100644 (file)
@@ -6,6 +6,8 @@
 if(LYX_BUNDLE)
        if(APPLE)
                set(CPACK_GENERATOR DragNDrop)
+               set(CPACK_DMG_BACKGROUND_IMAGE "${TOP_CMAKE_PATH}/../MacOSX/dmg-background.png")
+               set(CPACK_DMG_DS_STORE "${CMAKE_BINARY_DIR}/ds_store/.DS_Store")
        elseif(UNIX)
                set(CPACK_GENERATOR STGZ)
        elseif(WIN32)
@@ -17,25 +19,69 @@ endif()
 # (Ignores the top project)
 if(APPLE)
        # true on all systems whre __APPLE__ is defined in header files
-       set(CPACK_PACKAGE_NAME LyX)
+       set(CPACK_PACKAGE_NAME "LyX${LYX_MAJOR_VERSION}${LYX_MINOR_VERSION}")
 elseif(UNIX)
        # True also for cygwin
-       set(CPACK_PACKAGE_NAME lyx)
+       set(CPACK_PACKAGE_NAME "lyx${LYX_MAJOR_VERSION}${LYX_MINOR_VERSION}")
 else()
-       set(CPACK_PACKAGE_NAME LyX)
+       set(CPACK_PACKAGE_NAME "LyX${LYX_MAJOR_VERSION}${LYX_MINOR_VERSION}")
 endif()
 
 set(CPACK_PACKAGE_VERSION_MAJOR "${LYX_MAJOR_VERSION}")
 set(CPACK_PACKAGE_VERSION_MINOR "${LYX_MINOR_VERSION}")
-FILE(STRINGS "${TOP_SRC_DIR}/${LYX_CMAKE_DIR}/LyX_summary.txt" CPACK_PACKAGE_DESCRIPTION_SUMMARY)
+FILE(STRINGS "${TOP_CMAKE_PATH}/LyX_summary.txt" CPACK_PACKAGE_DESCRIPTION_SUMMARY)
 
 
 set(CPACK_PACKAGE_INSTALL_DIRECTORY "CMake ${LYX_INSTALL_SUFFIX}")
 
-#
-# needed by rpm
-set(CPACK_SET_DESTDIR "ON")
-FILE(READ "${TOP_SRC_DIR}/${LYX_CMAKE_DIR}/LyX_license.txt" CPACK_RPM_PACKAGE_LICENSE)
+if (APPLE)
+       # We don't need absolute paths
+       set(CPACK_SET_DESTDIR "OFF")
+elseif(WIN32)
+    set(CPACK_GENERATOR ZIP)
+    set(CPACK_BINARY_ZIP 1)
+    if(MINGW)
+        get_filename_component(MINGW_BIN_PATH ${CMAKE_CXX_COMPILER} PATH)
+        if(LYX_XMINGW)
+                get_filename_component(mingw_name ${LYX_XMINGW} NAME)
+                set(MINGW_BIN_PATH ${MINGW_BIN_PATH}/../${mingw_name}/lib)
+        endif()
+        if(EXISTS ${MINGW_BIN_PATH}/libgcc_s_sjlj-1.dll)
+            list(APPEND runtime ${MINGW_BIN_PATH}/libgcc_s_sjlj-1.dll)
+        elseif(EXISTS ${MINGW_BIN_PATH}/libgcc_s_seh-1.dll)
+            list(APPEND runtime ${MINGW_BIN_PATH}/libgcc_s_seh-1.dll)
+        elseif(EXISTS ${MINGW_BIN_PATH}/libgcc_s_dw2-1.dll)
+            list(APPEND runtime ${MINGW_BIN_PATH}/libgcc_s_dw2-1.dll)
+        endif()
+        if(EXISTS ${MINGW_BIN_PATH}/libstdc++-6.dll)
+            list(APPEND runtime ${MINGW_BIN_PATH}/libstdc++-6.dll)
+        endif()
+        if(EXISTS ${MINGW_BIN_PATH}/libwinpthread-1.dll)
+            list(APPEND runtime ${MINGW_BIN_PATH}/libwinpthread-1.dll)
+        endif()
+        if(NOT runtime)
+                message(FATAL_ERROR "No mingw runtime found in ${MINGW_BIN_PATH}")
+        endif()
+
+        install(FILES
+                    ${runtime}
+                    ${QT_BINARY_DIR}/QtCore4.dll
+                    ${QT_BINARY_DIR}/QtGui4.dll
+                    ${QT_BINARY_DIR}/QtNetwork4.dll
+                    ${QT_PLUGINS_DIR}/imageformats/qgif4.dll
+                    ${QT_PLUGINS_DIR}/imageformats/qico4.dll
+                    ${QT_PLUGINS_DIR}/imageformats/qmng4.dll
+                    ${QT_PLUGINS_DIR}/imageformats/qsvg4.dll
+                    ${QT_PLUGINS_DIR}/imageformats/qtga4.dll
+                    ${QT_PLUGINS_DIR}/imageformats/qtiff4.dll
+                DESTINATION bin CONFIGURATIONS Release)
+    endif()
+else()
+       # needed by rpm
+       set(CPACK_SET_DESTDIR "ON")
+endif()
+
+FILE(READ "${TOP_CMAKE_PATH}/LyX_license.txt" CPACK_RPM_PACKAGE_LICENSE)
 set(CPACK_RPM_PACKAGE_GROUP "Applications/Publishing")
 set(CPACK_RPM_PACKAGE_VENDOR "The LyX team")
 #
@@ -51,8 +97,8 @@ set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
 
 #
 # for the next ones, cpack insists on data with values in some file
-set(CPACK_PACKAGE_DESCRIPTION_FILE "${TOP_SRC_DIR}/${LYX_CMAKE_DIR}/LyX_description.txt")
-set(CPACK_RESOURCE_FILE_LICENSE "${TOP_SRC_DIR}/${LYX_CMAKE_DIR}/LyX_license.txt")
+set(CPACK_PACKAGE_DESCRIPTION_FILE "${TOP_CMAKE_PATH}/LyX_description.txt")
+set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING")
 
 # Use the revision number saved in ${LYX_PACKAGE_RELEASE}
 # as the release in rpm-package-build.