From: André Pönitz Date: Tue, 28 Aug 2007 17:07:02 +0000 (+0000) Subject: some attempt at cmake beautification X-Git-Tag: 1.6.10~8655 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=b839dd33ae0c4b5c57ad18d3589d792211478f53;p=lyx.git some attempt at cmake beautification git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19862 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/development/cmake/CMakeLists.txt b/development/cmake/CMakeLists.txt index 0b8eafe7d8..39b4bfdb60 100644 --- a/development/cmake/CMakeLists.txt +++ b/development/cmake/CMakeLists.txt @@ -7,11 +7,12 @@ #not really needed #CMAKE_MINIMUM_REQUIRED(VERSION 2.4.4 FATAL_ERROR) +set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true) -# where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked +# where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ +# is checked set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/modules") - -set (EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin) +set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin) set(PACKAGE lyx) set(PACKAGE_VERSION 1.5.1) @@ -19,18 +20,24 @@ set(LYX_DATE "August, 2007") #TODO set(VERSION_INFO "CMake Build") +set(PROGRAM_SUFFIX "") +set(LYX_ABS_INSTALLED_DATADIR "/usr/local/share/lyx") +set(LYX_ABS_INSTALLED_LOCALEDIR "/usr/local/share/locale") +set(LYX_ABS_TOP_SRCDIR "${CMAKE_SOURCE_DIR}") + + if(WIN32) set(USE_WINDOWS_PACKAGING 1) elseif(APPLE) set(USE_MACOSX_PACKAGING 1) -else(WIN32) +else() set(USE_POSIX_PACKAGING 1) -endif(WIN32) +endif() if(NOT GROUP_CODE) #set(GROUP_CODE "The Golden Code") set(GROUP_CODE flat) -endif(NOT GROUP_CODE) +endif() # lyx's source files set(LYX_CPP_FILES *.cpp) @@ -47,56 +54,59 @@ if(merge OR merge_rebuild) message(STATUS "All *.cpp files of a project are merged into two files, disable with -Dmerge=0") message(STATUS "") set(disable-pch 1) -else(merge OR merge_rebuild) +else() set(merge 0 CACHE TYPE STRING FORCE) set(MERGE_FILES 0 CACHE TYPE STRING FORCE) message(STATUS "Enable merging files with -Dmerge=1") -endif(merge OR merge_rebuild) +endif() + +set(CMAKE_BUILD_TYPE Release) -set(CMAKE_BUILD_TYPE) if(profile) 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_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg" + CACHE TYPE STRING FORCE) set(profile) -endif(profile) +endif() + if(release) set(CMAKE_BUILD_TYPE Release CACHE TYPE STRING FORCE) set(release) -endif(release) +endif() + if(debug) set(CMAKE_BUILD_TYPE Debug CACHE TYPE STRING FORCE) -endif(debug) +endif() if(shared) set(library_type SHARED) message(STATUS "building shared libraries") -else(shared) +else() set(library_type STATIC) -endif(shared) +endif() if(UNIX) if(NOT quiet) set(CMAKE_VERBOSE_MAKEFILE ON CACHE TYPE STRING FORCE) message(STATUS "verbose Makefile, disable with -Dquiet=1") message(STATUS "") - endif(NOT quiet) + endif() set(LYX_CXX_FLAGS -Wall) if(stdlib-debug) set(LYX_CXX_FLAGS "${LYX_CXX_FLAGS} -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC") - endif(stdlib-debug) + endif() if(concept-checks) set(LYX_CXX_FLAGS "${LYX_CXX_FLAGS} -D_GLIBCPP_CONCEPT_CHECKS") - endif(concept-checks) + endif() set(CMAKE_CXX_FLAGS "${LYX_CXX_FLAGS}" CACHE TYPE STRING FORCE) set(CMAKE_CXX_FLAGS_DEBUG "${LYX_CXX_FLAGS} -O -g -D_DEBUG" CACHE TYPE STRING FORCE) set(CMAKE_CXX_FLAGS_RELEASE "${LYX_CXX_FLAGS} -O3 -DNDEBUG" CACHE TYPE STRING FORCE) set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE} -pg" CACHE TYPE STRING FORCE) -endif(UNIX) +endif() -set(qt_postfix qt4) -project(lyx-${qt_postfix}) +project(lyx) find_package(Qt4 REQUIRED) add_definitions(-DQT_CLEAN_NAMESPACE -DQT_NO_STL -DQT_NO_KEYWORDS) @@ -105,9 +115,9 @@ find_package(ZLIB REQUIRED) if(all OR aspell) set(aspell TRUE CACHE TYPE STRING) find_package(ASPELL REQUIRED) -else(all OR aspell) +else() find_package(ASPELL) -endif(all OR aspell) +endif() set(aspell) message("") @@ -115,16 +125,16 @@ if(nls OR all) set(nls TRUE CACHE TYPE STRING) add_definitions(-DENABLE_NLS=1) message("----- Building with ENABLE_NLS") -else(nls OR all) +else() message("----- No nls, to enable use -Dnls=1") -endif(nls OR all) +endif() set(nls) if(ASPELL_FOUND) add_definitions(-DUSE_ASPELL=1) message("----- Building with USE_ASPELL") -else(ASPELL_FOUND) +else() message("----- No aspell, to get more information use -Daspell=1") -endif(ASPELL_FOUND) +endif() set(all) if(WIN32) @@ -133,28 +143,28 @@ if(WIN32) set(WIN32_CONSOLE WIN32) set(LYX_QTMAIN_LIBRARY ${QT_QTMAIN_LIBRARY}) message("----- Console disabled") - else(noconsole) + else() message("----- Console enabled, disable it with -Dnoconsole=1") - endif(noconsole) -endif(WIN32) + endif() +endif() -set(LYX_DIR "") -set(TOP_SRCDIR "${TOP_SRC_DIR}") -set(PROGRAM_SUFFIX "") -set(LOCALEDIR "") +set(PROGRAM_SUFFIX "\"\"") +set(LYX_ABS_TOP_SRCDIR "${CMAKE_SOURCE_DIR}") +set(LYX_ABS_INSTALLED_DATADIR "/usr/local/share/lyx") +set(LYX_ABS_INSTALLED_LOCALEDIR "/usr/local/share/locale") message("") -message("----- LYX_DIR : ${LYX_DIR}") -message("----- TOP_SRCDIR : ${TOP_SRCDIR}") -message("----- PROGRAM_SUFFIX: ${PROGRAM_SUFFIX}") -message("----- LOCALEDIR : ${LOCALEDIR}") +message("----- PROGRAM_SUFFIX : ${PROGRAM_SUFFIX}") +message("----- LYX_ABS_TOP_SRCDIR : ${LYX_ABS_TOP_SRCDIR}") +message("----- LYX_ABS_INSTALLED_DATADIR : ${LYX_ABS_INSTALLED_DATADIR}") +message("----- LYX_ABS_INSTALLED_LOCALEDIR : ${LYX_ABS_INSTALLED_LOCALEDIR}") message("") if(MSVC) - ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DNOMINMAX) + ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DNOMINMAX) # disable checked iterators for msvc release builds to get maximum speed set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /D_SECURE_SCL=0") -endif(MSVC) +endif() add_definitions(-DBOOST_USER_CONFIG="") @@ -170,11 +180,11 @@ if(MSVC AND NOT disable-pch) 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") -else(MSVC AND NOT disable-pch) +else() set(disable-pch TRUE CACHE TYPE STRING) macro(lyx_add_msvc_pch) endmacro(lyx_add_msvc_pch) -endif(MSVC AND NOT disable-pch) +endif() if(MSVC) if(WALL) @@ -185,49 +195,49 @@ if(MSVC) set(WARNING_LEVEL_MESSAGE "(switch to warning level 3 with -DWALL=0)") if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]") - STRING(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") - else(CMAKE_CXX_FLAGS MATCHES "/W[0-4]") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4") - endif(CMAKE_CXX_FLAGS MATCHES "/W[0-4]") + string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") + else() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4") + endif() if(CMAKE_C_FLAGS MATCHES "/W[0-4]") - STRING(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") - else(CMAKE_C_FLAGS MATCHES "/W[0-4]") - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4") - endif(CMAKE_C_FLAGS MATCHES "/W[0-4]") + string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") + else() + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4") + endif() # add here warnings which should produce an error /weXXXX - SET(MSVC_W_ERROR "/we4101 /we4189") + set(MSVC_W_ERROR "/we4101 /we4189") # add here warnings which should be disabled /wdXXXX - SET(MSVC_W_DISABLE "/wd4800 /wd4996 /wd4311 /wd4312 /wd4505 /wd4267 /wd4512 /wd4245 /wd4127 /wd4180") + set(MSVC_W_DISABLE "/wd4800 /wd4996 /wd4311 /wd4312 /wd4505 /wd4267 /wd4512 /wd4245 /wd4127 /wd4180") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Wp64 ${MSVC_W_ERROR} ${MSVC_W_DISABLE}") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Wp64 ${MSVC_W_ERROR} ${MSVC_W_DISABLE}") set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} /Wp64 ${MSVC_W_ERROR} ${MSVC_W_DISABLE}") - else(WALL) + else() set(WALL 0 CACHE TYPE STRING FORCE) set(CMAKE_CXX_WARNING_LEVEL 3 CACHE TYPE STRING FORCE) set(WARNING_LEVEL_MESSAGE "(switch to warning level 4 with -DWALL=1)") # add here warnings which should produce an error /weXXXX - SET(MSVC_W_ERROR "/we4101 /we4189") + set(MSVC_W_ERROR "/we4101 /we4189") # add here warnings which should be disabled /wdXXXX - SET(MSVC_W_DISABLE "/wd4800 /wd4996 /wd4267 /wd4180") + set(MSVC_W_DISABLE "/wd4800 /wd4996 /wd4267 /wd4180") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${MSVC_W_ERROR} ${MSVC_W_DISABLE}") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${MSVC_W_ERROR} ${MSVC_W_DISABLE}") set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} ${MSVC_W_ERROR} ${MSVC_W_DISABLE}") - endif(WALL) + endif() message("----- Warning level : ${CMAKE_CXX_WARNING_LEVEL} ${WARNING_LEVEL_MESSAGE}") message("----- Warnings as errors : ${MSVC_W_ERROR}") message("----- Warnings disabled : ${MSVC_W_DISABLE}") message("") -endif(MSVC) +endif() # create config.h include(ConfigureChecks.cmake) @@ -252,6 +262,5 @@ add_subdirectory(boost) add_subdirectory(intl) add_subdirectory(src) - include(../Install) diff --git a/development/cmake/modules/LyXPaths.cmake b/development/cmake/modules/LyXPaths.cmake index 8b23d81e71..877f5e80a2 100644 --- a/development/cmake/modules/LyXPaths.cmake +++ b/development/cmake/modules/LyXPaths.cmake @@ -35,10 +35,10 @@ if(WINDEPS) message("------ qmake not found. Add YOUR_PATH\\lyx-windows-deps-msvc-qt4\\qt-4\\bin") message("------ to PATH: set PATH=%PATH%;YOUR_PATH\\lyx-windows-deps-msvc-qt4\\qt-4\\bin") message(FATAL_ERROR "Exit.") - else(NOT LYX_QMAKE) + else() GET_FILENAME_COMPONENT(LYX_QMAKE_PATH ${LYX_QMAKE} PATH) set(WINDEPSDIR "${LYX_QMAKE_PATH}/../..") - endif(NOT LYX_QMAKE) + endif() set(GNUWIN32_DIR ${WINDEPSDIR}) @@ -53,7 +53,7 @@ if(WINDEPS) set(QT_UIC_EXECUTABLE "${WINDEPSDIR}/qt-4/bin/uic.exe" CACHE TYPE STRING FORCE) set(QT_RCC_EXECUTABLE "${WINDEPSDIR}/qt-4/bin/rcc.exe" CACHE TYPE STRING FORCE) -endif(WINDEPS) +endif() find_package(GNUWIN32 REQUIRED) @@ -80,11 +80,11 @@ set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${_gnuwin32_dir}/include) -else(WIN32) +else() set(_prog_path ~/bin) -endif(WIN32) +endif() GET_FILENAME_COMPONENT(lyx_dir_readme ${CMAKE_SOURCE_DIR}/../../README ABSOLUTE) @@ -92,9 +92,9 @@ GET_FILENAME_COMPONENT(TOP_SRC_DIR ${lyx_dir_readme} PATH) if(WIN32) set(locale_dir Resources/locale) -else(WIN32) +else() set(locale_dir share/locale) -endif(WIN32) +endif() set(PREFIX ${_prog_path}/LyX) set(LOCAL_DIR ${PREFIX}/${locale_dir}) diff --git a/development/cmake/src/CMakeLists.txt b/development/cmake/src/CMakeLists.txt index cd5da58bff..63ad5ae2a0 100644 --- a/development/cmake/src/CMakeLists.txt +++ b/development/cmake/src/CMakeLists.txt @@ -4,7 +4,7 @@ # Copyright (c) 2006, Peter Kümmel, # -project(lyx-${qt_postfix}) +project(lyx) include_directories(${TOP_SRC_DIR}/src) @@ -30,7 +30,7 @@ list(REMOVE_ITEM lyx_sources if(ASPELL_FOUND) include_directories(${ASPELL_INCLUDE_DIR}) set(lyx_sources ${lyx_sources} ${TOP_SRC_DIR}/src/ASpell.cpp) -endif(ASPELL_FOUND) +endif() include_directories(${CMAKE_CURRENT_BINARY_DIR}) @@ -39,22 +39,22 @@ lyx_add_msvc_pch(lyx) if(NOT MERGE_FILES) set(lyx_sources ${lyx_sources}) -else(NOT MERGE_FILES) +else() lyx_const_touched_files(_allinone lyx_sources) set(lyx_sources ${_allinone_files}) -endif(NOT MERGE_FILES) +endif() -add_executable(lyx-${qt_postfix} +add_executable(lyx ${WIN32_CONSOLE} ${lyx_sources} ${lyx_headers} ) -target_link_libraries(lyx-${qt_postfix} +target_link_libraries(lyx mathed insets frontends - frontend_${qt_postfix} + frontend_qt4 graphics support intl @@ -63,15 +63,15 @@ target_link_libraries(lyx-${qt_postfix} ) if(ASPELL_FOUND) - target_link_libraries(lyx-${qt_postfix} ${ASPELL_LIBRARY}) -endif(ASPELL_FOUND) + target_link_libraries(lyx ${ASPELL_LIBRARY}) +endif() if(APPLE) - target_link_libraries(lyx-${qt_postfix} "-bind_at_load" ) - target_link_libraries(lyx-${qt_postfix} "-framework Carbon" ) -endif(APPLE) + target_link_libraries(lyx "-bind_at_load" ) + target_link_libraries(lyx "-framework Carbon" ) +endif() project_source_group("${GROUP_CODE}" lyx_sources lyx_headers) -install(TARGETS lyx-${qt_postfix} DESTINATION bin) +install(TARGETS lyx DESTINATION bin) diff --git a/development/cmake/src/frontends/CMakeLists.txt b/development/cmake/src/frontends/CMakeLists.txt index f2d4039ba1..afcdd8620f 100644 --- a/development/cmake/src/frontends/CMakeLists.txt +++ b/development/cmake/src/frontends/CMakeLists.txt @@ -9,8 +9,7 @@ project(frontends) include_directories(${TOP_SRC_DIR}/src/frontends) add_subdirectory(controllers) -add_subdirectory(${qt_postfix}) - +add_subdirectory(qt4) file(GLOB frontends_sources ${TOP_SRC_DIR}/src/frontends/${LYX_CPP_FILES}) file(GLOB frontends_headers ${TOP_SRC_DIR}/src/frontends/${LYX_HPP_FILES}) @@ -20,10 +19,10 @@ lyx_add_msvc_pch(frontends) if(NOT MERGE_FILES) add_library(frontends ${library_type} ${frontends_sources} ${frontends_headers}) -else(NOT MERGE_FILES) +else() lyx_const_touched_files(_allinone frontends_sources) add_library(frontends ${library_type} ${_allinone_files}) -endif(NOT MERGE_FILES) +endif() project_source_group("${GROUP_CODE}" frontends_sources frontends_headers)