]> git.lyx.org Git - lyx.git/blobdiff - CMakeLists.txt
cmake: move intl config file into source
[lyx.git] / CMakeLists.txt
index 856f9296e0e1fa86c72955e94bafaaefd3b029be..ad9ecf4b52c0d68336e25254079e1a53a62f16e6 100644 (file)
@@ -7,7 +7,6 @@
 cmake_minimum_required(VERSION 2.6.4)
 
 set(LYX_PROJECT lyx)
-project(${LYX_PROJECT})
 
 set(LYX_CMAKE_DIR "development/cmake")
 set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/${LYX_CMAKE_DIR}/modules")
@@ -17,13 +16,13 @@ get_filename_component(TOP_SRC_DIR ${lyx_dir_readme} PATH)
 
 set(CMAKE_PROJECT_NAME ${LYX_PROJECT})
 
+message(STATUS)
 if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) 
        message(STATUS "Building in-source")
        set(TOP_BINARY_DIR "${CMAKE_BINARY_DIR}/build")
 else()
        message(STATUS "Building out-of-source")
        set(TOP_BINARY_DIR "${CMAKE_BINARY_DIR}")
-       #cmake_policy(SET CMP0013 OLD)
 endif()
 
 
@@ -50,39 +49,53 @@ include(LyXMacros)
 LYX_OPTION_INIT()
 
 # Options for all compilers/systems
-LYX_OPTION(CPACK "Use the CPack management (Implies LYX_INSTALL option)" OFF ALL)
-LYX_OPTION(INSTALL "Build install projects/rules (implies a bunch of other options)" OFF ALL)
-LYX_OPTION(NLS "Use nls" ON ALL)
-LYX_OPTION(ASPELL "Require aspell" OFF ALL)
-LYX_OPTION(ENCHANT "Require Enchant" OFF ALL)
-LYX_OPTION(HUNSPELL "Require Hunspell" OFF ALL)
-LYX_OPTION(DEVEL_VERSION "Build developer version" OFF ALL) 
-LYX_OPTION(RELEASE "Build release version, build debug when disabled" OFF ALL)
-LYX_OPTION(PACKAGE_SUFFIX "Use version suffix for packaging" ON ALL)
-LYX_OPTION(PCH "Use precompiled headers" OFF ALL)
-LYX_OPTION(MERGE_FILES "Merge source files into one compilation unit" OFF ALL)
-LYX_OPTION(MERGE_REBUILD "Rebuild generated files from merged files build" OFF ALL)
-LYX_OPTION(QUIET "Don't generate verbose makefiles" OFF ALL)
-LYX_OPTION(INSTALL_PREFIX "Install path for LyX" OFF ALL)
+LYX_OPTION(CPACK            "Use the CPack management (Implies LYX_INSTALL option)" OFF ALL)
+LYX_OPTION(INSTALL          "Build install projects/rules (implies a bunch of other options)" OFF ALL)
+LYX_OPTION(NLS              "Enable Native Language Support (NLS)" ON ALL)
+LYX_OPTION(ASPELL           "Require aspell" OFF ALL)
+LYX_OPTION(ENCHANT          "Require Enchant" OFF ALL)
+LYX_OPTION(HUNSPELL         "Require Hunspell" OFF ALL)
+LYX_OPTION(DEVEL_VERSION    "Build developer version" OFF ALL) 
+LYX_OPTION(RELEASE          "Build release version, build debug when disabled" OFF ALL)
+LYX_OPTION(PACKAGE_SUFFIX   "Use version suffix for packaging" ON ALL)
+LYX_OPTION(PCH              "Use precompiled headers" OFF ALL)
+LYX_OPTION(MERGE_FILES      "Merge source files into one compilation unit" OFF ALL)
+LYX_OPTION(MERGE_REBUILD    "Rebuild generated files from merged files build" OFF ALL)
+LYX_OPTION(QUIET            "Don't generate verbose makefiles" OFF ALL)
+LYX_OPTION(INSTALL_PREFIX   "Install path for LyX" OFF ALL)
 LYX_OPTION(EXTERNAL_LIBINTL "Use external libintl" ON ALL)
 
 # GCC specific
-LYX_OPTION(PROFILE "Build profile version" OFF GCC)
-LYX_OPTION(EXTERNAL_BOOST "Use external boost" OFF GCC)
-LYX_OPTION(PROGRAM_SUFFIX "Append version suffix to binaries" ON GCC)
-LYX_OPTION(DEBUG_GLIBC "Enable libstdc++ debug mode" OFF GCC)
+LYX_OPTION(PROFILE              "Build profile version" OFF GCC)
+LYX_OPTION(EXTERNAL_BOOST       "Use external boost" OFF GCC)
+LYX_OPTION(PROGRAM_SUFFIX       "Append version suffix to binaries" ON GCC)
+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(STDLIB_DEBUG         "Use debug stdlib" OFF GCC)
+LYX_OPTION(CONCEPT_CHECKS       "Enable concept-checks" OFF GCC)
 
 # MSVC specific
-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(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(DEPENDENCIES_DOWNLOAD "Download dependencies for MSVC 10" OFF MSVC)
 
+
+if(help OR HELP)
+       message(STATUS)
+       message(STATUS "Available options: (dis/enable with -D=0/1)")
+       message(STATUS)
+       LYX_OPTION_LIST_ALL(help)       
+       message(STATUS)
+else()
+
+# 'project' triggers the searching for a compiler
+project(${LYX_PROJECT})
+
+
 # Check option dependencies
+
 if(LYX_CPACK)
        set(LYX_INSTALL ON)
 endif()
@@ -151,7 +164,7 @@ set(VERSION_INFO "CMake Build")
 
 # Try to get some informations from configure.ac
 
-include(LyXPaths)    #called here to define the needed TOP_SRC_DIR-variable
+include(LyXPaths)
 file(STRINGS "${TOP_SRC_DIR}/configure.ac" _config_lines)
 
 if(WIN32)
@@ -293,8 +306,7 @@ endif()
 
 
 find_package(Qt4 REQUIRED)
-find_package(ICONV REQUIRED)
-find_package(ZLIB REQUIRED)
+
 
 include_directories(${TOP_BINARY_DIR} ${TOP_SRC_DIR}/src)
   
@@ -323,17 +335,23 @@ if(LYX_NLS)
        add_subdirectory(po "${TOP_BINARY_DIR}/po")
 endif()
 
-if(LYX_EXTERNAL_LIBINTL)
-       find_package(Libintl REQUIRED)
-       add_definitions(-DHAVE_GETTEXT) #TODO move to config.h
-else()
-       if(LYX_NLS)
-               add_subdirectory(intl "${TOP_BINARY_DIR}/intl")
+if(LYX_NLS)
+       if(LYX_EXTERNAL_LIBINTL)
+               find_package(Libintl REQUIRED)  
+               if(DEFINED LIBINTL_LIBRARIES)
+                       # find getext when configuring
+                       list(APPEND CMAKE_REQUIRED_LIBRARIES ${LIBINTL_LIBRARIES})      
+                       # on mac use iconv also form ports
+                       get_filename_component(ICONV_RELATIVE_TO_LIBINTL ${LIBINTL_LIBRARIES} PATH)
+               endif()
        else()
-               # do not compile if nls disabled
+               add_subdirectory(intl "${TOP_BINARY_DIR}/intl")
        endif()
 endif()
 
+find_package(ICONV REQUIRED)
+find_package(ZLIB REQUIRED)
+
 if(LYX_EXTERNAL_BOOST)
        message(STATUS "Searching for boost")
        find_package(Boost COMPONENTS signals regex) #TODO could REQUIRED be used
@@ -518,8 +536,24 @@ endif()
 message(STATUS)
 message(STATUS "Build options, switch LYX_* variables by -DLYX_*=1 or 0:")
 message(STATUS)
-LYX_OPTION_LIST_ALL()
+LYX_OPTION_LIST_ALL(used)
+
 
+if(LYX_NLS)
+       message(STATUS)
+       message(STATUS "Building Native Language Support (LYX_NLS is set), used libraries:")
+       message(STATUS)
+       message(STATUS "  * intl")
+       message(STATUS "     - header : ${LIBINTL_HEADER}")
+       message(STATUS "     - library: ${LIBINTL_LIBRARIES}")
+       message(STATUS "  * iconv")
+       message(STATUS "     - header : ${ICONV_HEADER}")
+       message(STATUS "     - library: ${ICONV_LIBRARY}")
+       message(STATUS "  * zlib")
+       message(STATUS "     - header : ${ZLIB_HEADER}")
+       message(STATUS "     - library: ${ZLIB_LIBRARY}")
+       message(STATUS)
+endif()
 
 set(CPACK_PACKAGE_VERSION_MAJOR "${LYX_MAJOR_VERSION}")
 set(CPACK_PACKAGE_VERSION_MINOR "${LYX_MINOR_VERSION}")
@@ -604,4 +638,5 @@ endif()
 #
 message(STATUS)
 
+endif() #help