some attempt at cmake beautification

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19862 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
André Pönitz 2007-08-28 17:07:02 +00:00
parent 4da4883e0d
commit b839dd33ae
4 changed files with 90 additions and 82 deletions

View File

@ -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)
set(CMAKE_BUILD_TYPE Release)
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="<config.h>")
@ -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)

View File

@ -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})

View File

@ -4,7 +4,7 @@
# Copyright (c) 2006, Peter Kümmel, <syntheticpp@gmx.net>
#
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)

View File

@ -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)