mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-09 18:31:04 +00:00
cmake: also fixup on win32
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38794 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
2cc59e8f60
commit
282c245c20
@ -71,6 +71,7 @@ LYX_OPTION(MERGE_REBUILD "Rebuild generated files from merged files build" OF
|
||||
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(DEPENDENCIES_DOWNLOAD "Download dependencies for MSVC 10" OFF MSVC)
|
||||
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 @@ if(LYX_CPACK)
|
||||
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 @@ foreach(_c_l ${_config_lines} )
|
||||
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 @@ else()
|
||||
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_INSTALLED_DIRECTORIES "${TOP_SRC_DIR};/") # http://www.mail-arc
|
||||
set(CPACK_SOURCE_GENERATOR TGZ ZIP TBZ2)
|
||||
|
||||
|
||||
if(LYX_DMG)
|
||||
set(CPACK_PACKAGE_NAME LyX)
|
||||
if(APPLE)
|
||||
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)
|
||||
|
||||
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
|
||||
|
@ -106,7 +106,7 @@ lyx_find_info_files(LyXUiFiles ${TOP_SRC_DIR}/lib/ui/*)
|
||||
|
||||
add_executable(${_lyx}
|
||||
${WIN32_CONSOLE}
|
||||
${LYX_BUNDLE}
|
||||
${LYX_BUILD_BUNDLE}
|
||||
${lyx_sources}
|
||||
${lyx_headers}
|
||||
${vld_files}
|
||||
@ -115,9 +115,6 @@ add_executable(${_lyx}
|
||||
${lyx_cmake_files}
|
||||
)
|
||||
|
||||
if(LYX_BUNDLE)
|
||||
set(MACOSX_BUNDLE_STARTUP_COMMAND ${_lyx})
|
||||
endif()
|
||||
|
||||
lyx_add_gcc_pch(${_lyx})
|
||||
|
||||
@ -159,10 +156,18 @@ endif()
|
||||
|
||||
project_source_group("${GROUP_CODE}" lyx_sources lyx_headers)
|
||||
|
||||
if(LYX_BUNDLE)
|
||||
|
||||
install(TARGETS ${_lyx}
|
||||
RUNTIME DESTINATION bin
|
||||
BUNDLE DESTINATION .)
|
||||
|
||||
if(LYX_BUNDLE)
|
||||
if(NOT APPLE)
|
||||
set(installed_lyx ${CMAKE_INSTALL_PREFIX}/bin/${_lyx}${CMAKE_EXECUTABLE_SUFFIX})
|
||||
else()
|
||||
install(TARGETS ${_lyx} DESTINATION bin)
|
||||
set(installed_lyx ${CMAKE_INSTALL_PREFIX}/${_lyx}.app)
|
||||
endif()
|
||||
install(CODE "include(BundleUtilities)
|
||||
fixup_bundle(\"${installed_lyx}\" \"\" \"\") " COMPONENT RUNTIME)
|
||||
endif()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user