Author: kuemmel
Date: Sat May 21 00:26:46 2011
New Revision: 38794
URL: http://www.lyx.org/trac/changeset/38794

Log:
cmake: also fixup on win32

Modified:
   lyx-devel/trunk/CMakeLists.txt
   lyx-devel/trunk/src/CMakeLists.txt

Modified: lyx-devel/trunk/CMakeLists.txt
==============================================================================
--- lyx-devel/trunk/CMakeLists.txt      Fri May 20 21:07:52 2011        (r38793)
+++ lyx-devel/trunk/CMakeLists.txt      Sat May 21 00:26:46 2011        (r38794)
@@ -71,6 +71,7 @@
 LYX_OPTION(QUIET            "Don't generate verbose makefiles" OFF ALL)
 LYX_OPTION(INSTALL_PREFIX   "Install path for LyX" OFF ALL)
 LYX_OPTION(EXTERNAL_LIBINTL "Use external libintl" ON ALL)
+LYX_OPTION(BUNDLE           "Build bundle  (experimental) " OFF ALL)
 
 # GCC specific
 LYX_OPTION(PROFILE              "Build profile version" OFF GCC)
@@ -92,6 +93,7 @@
 LYX_OPTION(DMG                   "Build as Mac bundle, needed for .dmg  
(experimental) " OFF MAC)
 LYX_OPTION(COCOA                 "Use Cocoa on Mac" OFF MAC)
 
+
 if(help OR HELP)
        message(STATUS)
        message(STATUS "Available options: (dis/enable with -D=0/1)")
@@ -107,6 +109,11 @@
        set(LYX_INSTALL ON)
 endif()
 
+if(LYX_DMG)
+       set(LYX_BUNDLE 1)
+       set(LYX_CPACK 1)
+endif()
+
 if(LYX_INSTALL)
        set(LYX_NLS ON)
        if (WIN32)
@@ -212,14 +219,24 @@
 endforeach(_c_l)
 
 
-if(LYX_DMG)
-    set(bundle_dir ${TOP_BINARY_DIR}/bin)
-       set(LYX_CPACK 1)
-       set(LYX_BUNDLE MACOSX_BUNDLE)
-       set(LYX_INSTALL_PREFIX LyX${LYX_INSTALL_SUFFIX} CACHE STRING "LyX 
bundle install prefix" FORCE)
-       set(LYX_DATA_SUBDIR LyX.app/Contents/Resources/ CACHE STRING "Bundle 
Contents dir" FORCE)
-       set(LYX_PROGRAM_SUFFIX "" CACHE STRING "disable suffix for dmg test" 
FORCE)  #TODO remove
-       set(LYX_INSTALL_SUFFIX "" CACHE STRING "disable suffix for dmg test" 
FORCE)  #TODO remove
+if(LYX_PROGRAM_SUFFIX)
+       set(PROGRAM_SUFFIX "${LYX_INSTALL_SUFFIX}")
+else()
+       set(PROGRAM_SUFFIX "")
+endif()
+
+
+if(LYX_BUNDLE)
+       if(APPLE)
+               set(LYX_BUILD_BUNDLE MACOSX_BUNDLE)
+               set(LYX_DATA_SUBDIR 
${PACKAGE_BASE}${PROGRAM_SUFFIX}.app/Contents/Resources/ CACHE STRING "Bundle 
Contents dir" FORCE)
+               set(MACOSX_BUNDLE_STARTUP_COMMAND 
${PACKAGE_BASE}${PROGRAM_SUFFIX}.app)
+               if(NOT LYX_INSTALL_PREFIX)
+                       set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/LyX CACHE 
PATH "Mac bundle dir" FORCE)
+                       set(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+               endif()
+       endif()
+
        message(STATUS)
        message(STATUS "Bundle creation is enabled (experimental):")
        message(STATUS "    make")
@@ -244,11 +261,6 @@
        set(PACKAGE ${PACKAGE_BASE})
 endif()
 
-if(LYX_PROGRAM_SUFFIX)
-       set(PROGRAM_SUFFIX "${LYX_INSTALL_SUFFIX}")
-else()
-       set(PROGRAM_SUFFIX "")
-endif()
 
 
 if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
@@ -670,38 +682,21 @@
 set(CPACK_SOURCE_GENERATOR TGZ ZIP TBZ2)
 
 
-if(LYX_DMG)
-       set(CPACK_PACKAGE_NAME LyX)
-       set(CPACK_GENERATOR DragNDrop)
-       
-       # We start from bin/lyx.app, all is build into the final bundle folder
-       # On Mac the paths to required shared libraries are hardcoded in the
-       # binary/library. This is fixed by the macro 'fixup_bundle' 
-       # Hardcoded pathes to libraries are resolved automatically
-
-       
-       set(app          ${bundle_dir}/LyX.app)
-       set(contents_dir LyX.app/Contents/)
-       install(DIRECTORY "${QT_PLUGINS_DIR}/imageformats" DESTINATION 
${bundle_dir}/${contents_dir}/plugins COMPONENT Runtime)
-       
-       message(STATUS "Qt Plugins: ${QT_PLUGINS_DIR}/imageformats DESTINATION 
${bundle_dir}/${contents_dir}/plugins")
-       
-       install(CODE 
-               "file(GLOB qt_plugins 
\"${bundle_dir}/${contents_dir}/plugins/imageformats/*${CMAKE_SHARED_LIBRARY_SUFFIX}\")
-               include(BundleUtilities)
-               fixup_bundle(\"${app}\" \"\${qt_plugins}\" \"${dir}\") "
-               COMPONENT RUNTIME)
-       
-       file(WRITE ${CMAKE_BINARY_DIR}/qt.conf "")
-       install(FILES ${CMAKE_BINARY_DIR}/qt.conf DESTINATION 
${contents_dir}/Resources COMPONENT Runtime)
-       
+set(CPACK_PACKAGE_NAME LyX)
+if(APPLE)
+       set(CPACK_GENERATOR DragNDrop)  
+elseif(WIN32)
+       set(CPACK_GENERATOR ZIP)
+       #TODO set(CPACK_GENERATOR ZIP NSIS)
+elseif()
+       # .sh on linux?
 endif()
 
-
 if(LYX_CPACK)
        include(CPack)
 endif()
 
+
 #Now it is possible to create some packages
 # cd <BuildDir>
 # make package

Modified: lyx-devel/trunk/src/CMakeLists.txt
==============================================================================
--- lyx-devel/trunk/src/CMakeLists.txt  Fri May 20 21:07:52 2011        (r38793)
+++ lyx-devel/trunk/src/CMakeLists.txt  Sat May 21 00:26:46 2011        (r38794)
@@ -106,7 +106,7 @@
 
 add_executable(${_lyx}
        ${WIN32_CONSOLE}
-       ${LYX_BUNDLE}
+       ${LYX_BUILD_BUNDLE}
        ${lyx_sources}
        ${lyx_headers}
        ${vld_files}
@@ -115,9 +115,6 @@
        ${lyx_cmake_files}
 )
 
-if(LYX_BUNDLE)
-       set(MACOSX_BUNDLE_STARTUP_COMMAND ${_lyx})
-endif()
 
 lyx_add_gcc_pch(${_lyx})
 
@@ -159,10 +156,18 @@
 
 project_source_group("${GROUP_CODE}" lyx_sources lyx_headers)
 
+
+install(TARGETS ${_lyx}
+       RUNTIME DESTINATION bin
+       BUNDLE DESTINATION .)
+
 if(LYX_BUNDLE)
-       install(TARGETS ${_lyx}
-               RUNTIME DESTINATION bin
-               BUNDLE DESTINATION .)
-else()
-       install(TARGETS ${_lyx} DESTINATION bin)
+       if(NOT APPLE)
+               set(installed_lyx 
${CMAKE_INSTALL_PREFIX}/bin/${_lyx}${CMAKE_EXECUTABLE_SUFFIX})
+       else()
+               set(installed_lyx ${CMAKE_INSTALL_PREFIX}/${_lyx}.app)
+       endif()
+       install(CODE "include(BundleUtilities)
+                       fixup_bundle(\"${installed_lyx}\" \"\" \"\") " 
COMPONENT RUNTIME)
 endif()
+

Reply via email to