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()
+