X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=CMakeLists.txt;h=bcdff225ed04af6128e412f97c0215bd1aeb2132;hb=c48091f33a773732fa6c789927e5833e44108d9d;hp=5698d70c9d8722c06727c317d54621d27cd45f20;hpb=b0716b0f13175820250d2fe70cb3043c9cae4042;p=lyx.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 5698d70c9d..bcdff225ed 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,6 +42,22 @@ if(NOT help AND NOT HELP) project(${LYX_PROJECT}) endif() +if(UNIX) + set(ARCH_TRIPLET ) + FIND_PROGRAM(DPKG_ARCHITECTURE_EXECUTABLE dpkg-architecture) + if(DPKG_ARCHITECTURE_EXECUTABLE) + EXECUTE_PROCESS(COMMAND ${DPKG_ARCHITECTURE_EXECUTABLE} -qDEB_HOST_MULTIARCH + OUTPUT_VARIABLE ARCH_TRIPLET + ERROR_VARIABLE ERROR_ARCH_TRIPLET + OUTPUT_STRIP_TRAILING_WHITESPACE) + endif() +endif() +if(ARCH_TRIPLET) + set(SYSTEM_LIB_DIRS /usr/lib /usr/lib/${ARCH_TRIPLET} /usr/local/lib) +else() + set(SYSTEM_LIB_DIRS /usr/lib /usr/local/lib) +endif() + include(LyXMacros) # Usage LYX_OPTION @@ -81,6 +97,7 @@ LYX_OPTION(DEBUG_GLIBC "Enable libstdc++ debug mode" OFF GCC) LYX_OPTION(DEBUG_GLIBC_PEDANTIC "Enable libstdc++pedantic debug mode" OFF GCC) LYX_OPTION(STDLIB_DEBUG "Use debug stdlib" OFF GCC) LYX_OPTION(CONCEPT_CHECKS "Enable concept-checks" OFF GCC) +LYX_OPTION(PROFILE "Build with options for gprof" OFF GCC) # MSVC specific LYX_OPTION(CONSOLE "Show console on Windows" ON MSVC) @@ -96,12 +113,12 @@ 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)") + message(STATUS "Available options: (dis/enable with -DLYX_*=OFF/ON)") message(STATUS) LYX_OPTION_LIST_ALL(help) message(STATUS) -else() - + RETURN() +endif() # Check option dependencies @@ -142,7 +159,14 @@ if(LYX_DEPENDENCIES_DOWNLOAD) 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/${it} ${LYX_DEPENDENCIES_DIR}/download/${it} SHOW_PROGRESS) + file(DOWNLOAD http://sourceforge.net/projects/scusi/files/${it} ${LYX_DEPENDENCIES_DIR}/download/${it} + SHOW_PROGRESS STATUS status LOG log) + list(GET status 0 status_code) + list(GET status 1 status_string) + if(NOT status_code EQUAL 0) + file(REMOVE ${LYX_DEPENDENCIES_DIR}/${it}) + message(FATAL_ERROR "error: downloading '${it}' failed. status_code: ${status_code}, status_string: ${status_string}. \nLog: ${log} ") + endif() execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzf ${LYX_DEPENDENCIES_DIR}/download/${it} WORKING_DIRECTORY ${LYX_DEPENDENCIES_DIR}) endif() @@ -155,8 +179,11 @@ endif() message(STATUS) set(EXECUTABLE_OUTPUT_PATH ${TOP_BINARY_DIR}/bin) -set(LIBRARY_OUTPUT_PATH ${TOP_BINARY_DIR}/lib) - +if(WIN32) + set(LIBRARY_OUTPUT_PATH ${EXECUTABLE_OUTPUT_PATH}) +else() + set(LIBRARY_OUTPUT_PATH ${TOP_BINARY_DIR}/lib) +endif() if(UNIX OR MINGW) @@ -184,11 +211,11 @@ include(LyXPaths) file(STRINGS "${TOP_SRC_DIR}/configure.ac" _config_lines) if(WIN32) - set(USE_WINDOWS_PACKAGING 1) + set(USE_WINDOWS_PACKAGING ON) elseif(APPLE) - set(USE_MACOSX_PACKAGING 1) + set(USE_MACOSX_PACKAGING ON) else() - set(USE_POSIX_PACKAGING 1) + set(USE_POSIX_PACKAGING ON) endif() macro(setstripped _varname _value) @@ -335,9 +362,12 @@ set(LYX_MOC_FILES moc_*.cpp) include(ProjectSourceGroup) -if(LYX_PROFILE) +if(LYX_PROFILE AND NOT MSVC) set(CMAKE_BUILD_TYPE Profile CACHE TYPE STRING FORCE) - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg" CACHE TYPE STRING FORCE) + set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE} -pg") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg") +else() + set(LYX_PROFILE OFF) endif() @@ -345,11 +375,17 @@ if(LYX_NO_OPTIMIZE) set(CMAKE_BUILD_TYPE None) set(LYX_DEBUG OFF) set(LYX_RELEASE OFF) + set(LYX_PROFILE OFF) elseif(LYX_RELEASE) set(CMAKE_BUILD_TYPE Release) set(LYX_DEBUG OFF) + set(LYX_PROFILE OFF) +elseif(LYX_PROFILE) + set(CMAKE_BUILD_TYPE Profile) + set(LYX_DEBUG OFF) else() set(CMAKE_BUILD_TYPE Debug) + set(LYX_DEBUG ON) endif() @@ -379,7 +415,6 @@ if(NOT MSVC) else() set(CMAKE_CXX_FLAGS_RELEASE "${LYX_CXX_FLAGS} -O3 -DNDEBUG" CACHE TYPE STRING FORCE) endif() - set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE} -pg" CACHE TYPE STRING FORCE) endif() @@ -519,12 +554,14 @@ else() endmacro() endif() + if(MSVC) + if(LYX_VLD) - set(LYX_LEAK_DETECTION 1 CACHE TYPE STRING FORCE) - set(LIBRARY_OUTPUT_PATH ${EXECUTABLE_OUTPUT_PATH}) - set(LYX_VLD_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../Win32/vld) - include(${LYX_VLD_PATH}/tools/cmake/vld.cmake) + set(vld_path ${CMAKE_CURRENT_SOURCE_DIR}/development/Win32/vld) + add_subdirectory(${vld_path}/cmake) + include(${vld_path}/cmake/vld.cmake) # forced include + set(vld_dll vld) endif() if(LYX_WALL) @@ -577,11 +614,11 @@ endif() if(LYX_DEBUG_GLIBC) - set(_GLIBCXX_DEBUG 1) + set(_GLIBCXX_DEBUG ON) endif() if(LYX_DEBUG_GLIBC_PEDANTIC) - set(_GLIBCXX_DEBUG_PEDANTIC 1) + set(_GLIBCXX_DEBUG_PEDANTIC ON) endif() # compiler tests, config.h generation @@ -594,6 +631,10 @@ endif() configure_file(${LYX_CMAKE_DIR}/config.h.cmake ${TOP_BINARY_DIR}/config.h) +# Compute qt4-version from ${QTVERSION} +if(QTVERSION MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+).*") + MATH(EXPR QT4_VERSION "(${CMAKE_MATCH_1}<<16)|(${CMAKE_MATCH_2}<<8)|${CMAKE_MATCH_3}") +endif() add_subdirectory(src "${TOP_BINARY_DIR}/src") add_subdirectory(lib/lyx2lyx "${TOP_BINARY_DIR}/lyx2lyx") @@ -601,7 +642,6 @@ add_subdirectory(lib/scripts "${TOP_BINARY_DIR}/scripts") if(LYX_INSTALL) - #FIND_PROGRAM(LYX_PERL_EXECUTABLE perl) if(${LYX_PYTHON_EXECUTABLE} MATCHES "-NOTFOUND") message(STATUS "Python required to create doc!") else() @@ -614,7 +654,7 @@ endif() add_subdirectory(sourcedoc "${TOP_BINARY_DIR}/sourcedoc") message(STATUS) -message(STATUS "Build options, switch LYX_* variables by -DLYX_*=1 or 0:") +message(STATUS "Build options, switch LYX_* variables by -DLYX_*=ON or OFF:") message(STATUS) LYX_OPTION_LIST_ALL(used) @@ -638,5 +678,3 @@ endif() include("${TOP_SRC_DIR}/${LYX_CMAKE_DIR}/LyxPackaging.cmake") message(STATUS) - -endif() # help