X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=development%2Fcmake%2FCMakeLists.txt;h=70f25822bd35c29213309ade14678d3b61dd2f0b;hb=0ba6efb073233867373d2fb338eaac0a8f895be8;hp=179dac679180823dd208c4e0f144b4ec19e6d0ec;hpb=69fc2ddac42f24ec30f6f9af32286b3c6c078013;p=lyx.git diff --git a/development/cmake/CMakeLists.txt b/development/cmake/CMakeLists.txt index 179dac6791..70f25822bd 100644 --- a/development/cmake/CMakeLists.txt +++ b/development/cmake/CMakeLists.txt @@ -13,17 +13,12 @@ if(COMMAND cmake_policy) cmake_policy(SET CMP0005 OLD) endif() -set(LYX_PROJECT lyx) -project(${LYX_PROJECT}) - set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true) # Supress regeneration set(CMAKE_SUPPRESS_REGENERATION FALSE) -# where to look first for cmake modules, -# before ${CMAKE_ROOT}/Modules is checked -set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/modules") + include(LyXMacros) @@ -67,7 +62,7 @@ LYX_OPTION(CONSOLE "Show console on Windows" ON MSVC) LYX_OPTION(VLD "Use VLD with MSVC" OFF MSVC) LYX_OPTION(WALL "Enable all warnings" OFF MSVC) LYX_OPTION(CONFIGURE_CHECKS "Also run configure checks for MSVC" OFF MSVC) -LYX_OPTION(3RDPARTY_DOWNLOAD "Download precompiled 3rd party libraries for MSVC 10" OFF MSVC) +LYX_OPTION(DEPENDENCIES_DOWNLOAD "Download dependencies for MSVC 10" OFF MSVC) # Check option dependencies if(LYX_CPACK) @@ -76,9 +71,6 @@ endif() if(LYX_INSTALL) set(LYX_NLS ON) - if(NOT LYX_3RDPARTY_DOWNLOAD) - set(LYX_ASPELL ON) - endif() if (WIN32) set(LYX_HUNSPELL ON) endif() @@ -94,45 +86,29 @@ else() set(LYX_MERGE_REBUILD OFF) endif() -if(LYX_3RDPARTY_DOWNLOAD) +if(LYX_DEPENDENCIES_DOWNLOAD) message(STATUS) - set(LYX_3RDPARTY_DIR ${CMAKE_BINARY_DIR}/msvc10-deps) - message(STATUS "Using downloaded 3rd party libraries in ${LYX_3RDPARTY_DIR}") - set(3rdparty_files - crt-msvc2010-x86.zip - dict-hunspell-all.zip - dtl-modified-msvc2010-x86.zip - dvipost-1.1-modified-msvc2010-x86.zip - gettext-tools-0.18.1-x86.zip - ghostscript-8.71-msvc2010-x86.zip - hunspell-1.2.11-msvc2010-x86.zip - iconv-1.13.1-msvc2010-x86.zip - imagemagick-6.6.3-0-modified-msvc2010-x86.zip - libintl-0.18.1-msvc2010-x86.zip - netpbm-pnmcrop-10.27-x86.zip - pdftools-msvc2010-x86.zip - pdfview-x86.zip - python-2.6.5-msvc2010-x86.zip - thes-mythes-all.zip - zlib-1.2.5-msvc2010-x86.zip) - foreach(it ${3rdparty_files}) + set(LYX_DEPENDENCIES_DIR ${TOP_BINARY_DIR}/msvc2010-deps) + message(STATUS "Using downloaded dependencies in ${LYX_DEPENDENCIES_DIR}") + set(deps_files lyx20-deps-msvc2010-x86.zip) + foreach(it ${deps_files}) set(already_downloaded already_downloaded-NOTFOUND CACHE PATH "downloaded" FORCE) - find_file(already_downloaded ${it} "${LYX_3RDPARTY_DIR}/downloads") + find_file(already_downloaded ${it} "${LYX_DEPENDENCIES_DIR}/download") if(NOT already_downloaded) message(STATUS "Downloading ${it} ...") - file(DOWNLOAD ftp://ftp.devel.lyx.org/pub/contrib/windows/bin/${it} ${LYX_3RDPARTY_DIR}/downloads/${it} SHOW_PROGRESS) - execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzf ${LYX_3RDPARTY_DIR}/downloads/${it} - WORKING_DIRECTORY ${LYX_3RDPARTY_DIR}) + file(DOWNLOAD ftp://ftp.devel.lyx.org/pub/contrib/windows/${it} ${LYX_DEPENDENCIES_DIR}/download/${it} SHOW_PROGRESS) + execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzf ${LYX_DEPENDENCIES_DIR}/download/${it} + WORKING_DIRECTORY ${LYX_DEPENDENCIES_DIR}) endif() endforeach() - set(GNUWIN32_DIR ${LYX_3RDPARTY_DIR}) + set(GNUWIN32_DIR ${LYX_DEPENDENCIES_DIR}/deps20) endif() message(STATUS) -set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin) -set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib) +set(EXECUTABLE_OUTPUT_PATH ${TOP_BINARY_DIR}/bin) +set(LIBRARY_OUTPUT_PATH ${TOP_BINARY_DIR}/lib) @@ -148,7 +124,7 @@ if(UNIX OR MINGW) else() if(MSVC10) set(LYX_USE_TR1 1) - set(LYX_USE_TR1_REGEX 1) + #set(LYX_USE_TR1_REGEX 1) #TODO should we use it in ECMAScript mode? endif() endif() @@ -200,6 +176,7 @@ if (LYX_INSTALL_PREFIX) set(CMAKE_INSTALL_PREFIX ${LYX_INSTALL_PREFIX} CACHE PATH "LyX user's choice install prefix" FORCE) set(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) endif() +set(LYX_INSTALL_PREFIX ${LYX_INSTALL_PREFIX} CACHE PATH "LyX user's choice install prefix" FORCE) if(LYX_PACKAGE_SUFFIX) set(PACKAGE ${PACKAGE_BASE}${LYX_INSTALL_SUFFIX}) @@ -301,7 +278,7 @@ find_package(Qt4 REQUIRED) find_package(ICONV REQUIRED) find_package(ZLIB REQUIRED) -include_directories(${CMAKE_BINARY_DIR} ${TOP_SRC_DIR}/src) +include_directories(${TOP_BINARY_DIR} ${TOP_SRC_DIR}/src) if(LYX_ASPELL) find_package(ASPELL) @@ -319,7 +296,7 @@ if(LYX_HUNSPELL) endif() if(LYX_NLS) - FIND_PROGRAM(LYX_PYTHON_EXECUTABLE python) + FIND_PROGRAM(LYX_PYTHON_EXECUTABLE python HINTS ${GNUWIN32_DIR}/python) if(${LYX_PYTHON_EXECUTABLE} MATCHES "-NOTFOUND") message(FATAL_ERROR "Python 2.6 needed!") endif() @@ -332,7 +309,11 @@ if(LYX_EXTERNAL_LIBINTL) find_package(Libintl REQUIRED) add_definitions(-DHAVE_GETTEXT) #TODO move to config.h else() - add_subdirectory(intl) + if(LYX_NLS) + add_subdirectory(intl) + else() + # do not compile if nls disabled + endif() endif() if(LYX_EXTERNAL_BOOST) @@ -391,18 +372,18 @@ if(LYX_PCH) # PCHs not supported by cmake: http://www.cmake.org/Bug/view.php?id=1260 # Not sure if it works for all non-msvc compilers include(PCHSupport_26) - configure_file(${CMAKE_SOURCE_DIR}/pcheaders.h ${CMAKE_BINARY_DIR}/pcheaders.h) - configure_file(${CMAKE_SOURCE_DIR}/config.cpp.cmake ${CMAKE_BINARY_DIR}/config_pch.cpp) + configure_file(${TOP_SRC_DIR}/development/cmake/pcheaders.h ${TOP_BINARY_DIR}/pcheaders.h) + configure_file(${TOP_SRC_DIR}/development/cmake/config.cpp.cmake ${TOP_BINARY_DIR}/config_pch.cpp) add_definitions(-DLYX_ENABLE_PCH) if(MSVC) macro(lyx_add_msvc_pch name_) set_source_files_properties(${${name_}_sources} PROPERTIES COMPILE_FLAGS "/Yuconfig.h /Fp\$(IntDir)/config.pch") - set_source_files_properties(${CMAKE_BINARY_DIR}/config_pch.cpp PROPERTIES + set_source_files_properties(${TOP_BINARY_DIR}/config_pch.cpp PROPERTIES COMPILE_FLAGS "/Ycconfig.h /Fp\$(IntDir)/config.pch") - set(${name_}_sources ${${name_}_sources} ${CMAKE_BINARY_DIR}/config_pch.cpp - ${CMAKE_BINARY_DIR}/pcheaders.h) + set(${name_}_sources ${${name_}_sources} ${TOP_BINARY_DIR}/config_pch.cpp + ${TOP_BINARY_DIR}/pcheaders.h) set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /DLYX_PCH_STL /DLYX_PCH_BOOST /DLYX_PCH_QT4") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /DLYX_PCH_STL /DLYX_PCH_BOOST /DLYX_PCH_QT4") set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} /DLYX_PCH_STL /DLYX_PCH_BOOST") @@ -414,7 +395,7 @@ if(LYX_PCH) endmacro() macro(lyx_add_gcc_pch name_) add_definitions(-DLYX_PCH_STL -DLYX_PCH_BOOST -DLYX_PCH_QT4) - ADD_PRECOMPILED_HEADER(${name_} ${CMAKE_BINARY_DIR}/config_pch.cpp ${CMAKE_BINARY_DIR}/config.h.gch) + ADD_PRECOMPILED_HEADER(${name_} ${TOP_BINARY_DIR}/config_pch.cpp ${TOP_BINARY_DIR}/config.h.gch) endmacro() endif() else() @@ -491,13 +472,13 @@ endif() # compiler tests, config.h generation if(MSVC AND NOT LYX_CONFIGURE_CHECKS) - configure_file(configCompiler.h.msvc ${CMAKE_BINARY_DIR}/configCompiler.h) + configure_file(configCompiler.h.msvc ${TOP_BINARY_DIR}/configCompiler.h) else() include(ConfigureChecks.cmake) - configure_file(configCompiler.h.cmake ${CMAKE_BINARY_DIR}/configCompiler.h) + configure_file(configCompiler.h.cmake ${TOP_BINARY_DIR}/configCompiler.h) endif() -configure_file(config.h.cmake ${CMAKE_BINARY_DIR}/config.h) +configure_file(config.h.cmake ${TOP_BINARY_DIR}/config.h) add_subdirectory(src)