X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FCMakeLists.txt;h=7ec9c83c1861ba3347d9ae23e3fa2a2328bd8a54;hb=c7d29be153debac82e3d2e8865fcc849f0a5f40d;hp=dd9a3609abd62f5531b38630654e8d0b33bb1e86;hpb=d91d6e3343a534d24fbc078c395b1f675d731d42;p=lyx.git diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index dd9a3609ab..7ec9c83c18 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -4,17 +4,22 @@ # Copyright (c) 2006-2011 Peter Kümmel, # -set(_lyx "${PACKAGE_BASE}${PROGRAM_SUFFIX}") project(${_lyx}) include_directories(${TOP_SRC_DIR}/src) +set_property(GLOBAL PROPERTY USE_FOLDERS ON) +set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMakeTargets") + add_subdirectory(frontends) add_subdirectory(graphics) add_subdirectory(insets) add_subdirectory(mathed) add_subdirectory(support) add_subdirectory(tex2lyx) +if (APPLE) + add_subdirectory(convert) +endif() if (UNIX) add_subdirectory(client) endif() @@ -23,8 +28,10 @@ file(GLOB lyx_sources ${TOP_SRC_DIR}/src/${LYX_CPP_FILES}) file(GLOB moc_files ${TOP_SRC_DIR}/src/${LYX_MOC_FILES}) list(REMOVE_ITEM lyx_sources ${moc_files} .) file(GLOB lyx_headers ${TOP_SRC_DIR}/src/${LYX_HPP_FILES}) +set(lyxwrap_sources ${TOP_SRC_DIR}/src/lyxwrap.cpp) list(REMOVE_ITEM lyx_sources + ${TOP_SRC_DIR}/src/lyxwrap.cpp ${TOP_SRC_DIR}/src/Variables.cpp ${TOP_SRC_DIR}/src/Section.cpp ${TOP_SRC_DIR}/src/lyxcore.cpp @@ -68,7 +75,7 @@ if(WIN32) endif() include_directories(${CMAKE_CURRENT_BINARY_DIR} - ${ZLIB_INCLUDE_DIR} ${QT_INCLUDES}) + ${ZLIB_INCLUDE_DIR} ${ICONV_INCLUDE_DIR} ${QT_INCLUDES}) lyx_add_msvc_pch(lyx) @@ -88,8 +95,13 @@ if (LYX_VLD) endif() if(WIN32) - set(FILE_RC ${TOP_CMAKE_PATH}/lyx.rc) - message(STATUS "Using icon defined in resource file: ${FILE_RC}") + if (MINGW) + set(FILE_RC_COMPILED ${TOP_CMAKE_PATH}/lyx.coff) + message(STATUS "Using icon defined in resource file: ${FILE_RC_COMPILED}") + else() + set(FILE_RC ${TOP_CMAKE_PATH}/lyx.rc) + message(STATUS "Using icon defined in resource file: ${FILE_RC}") + endif() endif() lyx_find_info_files(LyXInfoFiles ${TOP_SRC_DIR}/*) @@ -101,10 +113,6 @@ lyx_find_info_files(LyXCMakeFiles ${TOP_MODULE_PATH}/*) lyx_find_info_files(LyXCMakeFiles ${TOP_SCRIPT_PATH}/*) lyx_find_info_files(LyXUiFiles ${TOP_SRC_DIR}/lib/ui/*) -if (APPLE AND LYX_BUNDLE) - include(../Install) -endif() - add_executable(${_lyx} ${WIN32_CONSOLE} ${LYX_BUILD_BUNDLE} @@ -119,33 +127,39 @@ add_executable(${_lyx} add_dependencies(${_lyx} lyx_version) +set_target_properties(${_lyx} PROPERTIES FOLDER "applications/LyX") + lyx_add_gcc_pch(${_lyx}) target_link_libraries(${_lyx} mathed insets frontends - frontend_qt4 + frontend_qt graphics support - ${intl_link} + ${FILE_RC_COMPILED} + ${MYTHESLIB_LIBRARY} ${ICONV_LIBRARY} - ${QT_QTMAIN_LIBRARY} + ${LYX_QTMAIN_LIBRARY} ${vld_dll}) -if(HUNSPELL_FOUND) - target_link_libraries(${_lyx} ${HUNSPELL_LIBRARY}) -endif() -if(ASPELL_FOUND) - target_link_libraries(${_lyx} ${ASPELL_LIBRARY}) -endif() -if(ENCHANT_FOUND) - target_link_libraries(${_lyx} ${ENCHANT_LIBRARY}) -endif() -if(Magic_FOUND) - target_link_libraries(${_lyx} ${Magic_LIBRARY}) +qt_use_modules(${_lyx} Core Gui) + +if(QT_USES_X11) + find_package(X11 REQUIRED) + target_link_libraries(${_lyx} ${X11_X11_LIB}) # we need it because we use XSendEvent + if(HAVE_QT5_X11_EXTRAS) + find_library(XCB_LIBRARY NAMES xcb) + if (XCB_LIBRARY MATCHES "NOTFOUND") + message(FATAL_ERROR "Need xcb library to use with QT5_X11_EXTRAS") + endif() + target_link_libraries(${_lyx} ${LYX_QT5_X11_EXTRAS_LIBRARY} ${XCB_LIBRARY}) + endif() endif() +lyx_target_link_libraries(${_lyx} HUNSPELL ASPELL ENCHANT Magic) + if(APPLE) target_link_libraries(${_lyx} "-bind_at_load") if(LYX_COCOA) @@ -159,23 +173,43 @@ if(MINGW) target_link_libraries(${_lyx} ole32) endif() -project_source_group("${GROUP_CODE}" lyx_sources lyx_headers) +if(CYGWIN) + target_link_libraries(${_lyx} gdi32 shlwapi ole32) +endif() +project_source_group("${GROUP_CODE}" lyx_sources lyx_headers) install(TARGETS ${_lyx} - RUNTIME DESTINATION bin - BUNDLE DESTINATION .) + BUNDLE DESTINATION . COMPONENT Runtime + RUNTIME DESTINATION ${LYX_UTILITIES_INSTALL_PATH} COMPONENT Runtime) if(LYX_BUNDLE) - if(NOT APPLE) - set(installed_lyx ${CMAKE_INSTALL_PREFIX}/bin/${_lyx}${CMAKE_EXECUTABLE_SUFFIX}) - else() + if(APPLE) + # Now that lyx executable is defined, we can the files that should be included + # directly in the bundle. Note that resources are not copied with this mechanism: + # only the files necessary to run the executable are processed here (LyX.sdef, LyX.icns, etc.) + list(LENGTH OSX_BUNDLE_FILES OSX_BUNDLE_LAST_INDEX) + math(EXPR OSX_BUNDLE_LAST_INDEX "${OSX_BUNDLE_LAST_INDEX} - 1") + foreach(_i RANGE ${OSX_BUNDLE_LAST_INDEX}) + list(GET OSX_BUNDLE_FILES ${_i} _file) + list(GET OSX_BUNDLE_DIRS ${_i} _directory) + # Sets the location of the file into the OS X bundle + set_source_files_properties("${_file}" PROPERTIES MACOSX_PACKAGE_LOCATION "${_directory}") + endforeach() + set_target_properties(${_lyx} PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_BINARY_DIR}/../Info.plist") - set(installed_lyx ${CMAKE_INSTALL_PREFIX}/${_lyx}.app) - set(LYX_BUNDLE_PROPERTY_MODE "ON") - include("../Install") endif() - install(CODE "include(BundleUtilities) - fixup_bundle(\"${installed_lyx}\" \"\" \"\") " COMPONENT RUNTIME) endif() +set(dowrapper ON) # create and install wrapper for external commands +foreach(_f ${lyxwrap_sources}) + if(NOT EXISTS "${_f}") + set(dowrapper OFF) + endif() +endforeach() +if(dowrapper AND USE_POSIX_PACKAGING) + add_executable(lyxwrap${PROGRAM_SUFFIX} ${lyxwrap_sources}) + install(TARGETS lyxwrap${PROGRAM_SUFFIX} DESTINATION ${LYX_UTILITIES_INSTALL_PATH}) +endif() + +add_subdirectory(tests)