# 2. parameter: description
# 3. parameter: default value, ON or OFF
# 4. parameter: system on which option is used: ALL, GCC, MSVC, ...
+message(STATUS)
+message(STATUS "Switch LYX_* variables by -DLYX_*=1 or 0:")
+message(STATUS)
LYX_OPTION(NLS "Use nls" OFF ALL)
LYX_OPTION(ASPELL "Require aspell" OFF ALL)
+LYX_OPTION(AIKSAURUS "Require Aiksaurus" OFF ALL)
+LYX_OPTION(ENCHANT "Require Enchant" OFF ALL)
LYX_OPTION(DEBUG "Build debug version" OFF ALL)
LYX_OPTION(RELEASE "Build release version" ON ALL)
LYX_OPTION(PROFILE "Build profile version" OFF GCC)
message(STATUS)
+if(LYX_INSTALL)
+ set(LYX_NLS ON CACHE BOOL "Nls option" FORCE)
+ set(LYX_ASPELL ON CACHE BOOL "Aspell option" FORCE)
+ set(LYX_AIKSAURUS ON CACHE BOOL "Aiksaurus option" FORCE)
+ set(LYX_NO_CONSOLE ON CACHE BOOL "No console option" FORCE)
+ set(LYX_PACKAGE_SUFFIX ON CACHE BOOL "Package suffix option" FORCE)
+ set(LYX_RELEASE ON CACHE BOOL "Release option" FORCE)
+ set(LYX_DEBUG OFF CACHE BOOL "Debug option" FORCE)
+ set(LYX_PROFILE OFF CACHE BOOL "Profile option" FORCE)
+ set(LYX_MERGE_FILES ON CACHE BOOL "Merge option" FORCE)
+endif()
+
+
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib)
endif()
-if(LYX_INSTALL)
- set(LYX_ASPELL ON CACHE BOOL "Aspell option" FORCE)
- set(LYX_NLS ON CACHE BOOL "Nls option" FORCE)
- SET(LYX_NO_CONSOLE ON CACHE BOOL "No console option" FORCE)
- SET(LYX_PACKAGE_SUFFIX ON CACHE BOOL "Package suffix option" FORCE)
- SET(LYX_RELEASE ON CACHE BOOL "Release option" FORCE)
- SET(LYX_DEBUG OFF CACHE BOOL "Debug option" FORCE)
- SET(LYX_PROFILE OFF CACHE BOOL "Profile option" FORCE)
-endif()
-
# Supress regeneration
set(CMAKE_SUPPRESS_REGENERATION TRUE)
include(ProjectSourceGroup)
-if(LYX_MERGE_FILES)
- add_definitions(-DLYX_MERGED_BUILD)
-endif()
-
-
-set(CMAKE_BUILD_TYPE Release)
if(LYX_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)
endif()
if(LYX_RELEASE)
find_package(ZLIB REQUIRED)
if(LYX_ASPELL)
- find_package(ASPELL REQUIRED)
-else()
find_package(ASPELL)
+ include_directories(${ASPELL_INCLUDE_DIR})
+endif()
+
+if(LYX_AIKSAURUS)
+ find_package(AiksaurusLIB REQUIRED)
+ include_directories(${AIKSAURUSLIB_INCLUDE_DIR})
+endif()
+
+if(LYX_ENCHANT)
+ find_package(Enchant REQUIRED)
+ include_directories(${ENCHANT_INCLUDE_DIR})
endif()
endif()
+#TODO move to FindHunstall.cmake
if(WIN32)
find_library(HUNSPELL_LIBRARY "libhunspell")
else()
if (HUNSPELL_LIBRARY)
find_file(HUNSPELL_FOUND "hunspell/hunspell.hxx")
endif()
-
if (HUNSPELL_FOUND)
add_definitions(-DUSE_HUNSPELL=1)
message(STATUS "Building with USE_HUNSPELL")
message(STATUS "Hunspell not found, building without hunspell support")
endif()
-if(WIN32)
- find_library(ENCHANT_LIBRARY "libenchant")
- find_path(ENCHANT_INCLUDE_DIR "enchant++.h")
-else()
- find_library(ENCHANT_LIBRARY "enchant" "/usr/local/lib" "/usr/lib" "/usr/local/lib" "/opt/local/lib")
- find_path(ENCHANT_INCLUDE_DIR "enchant++.h" PATHS /usr/local/include /usr/local/include/enchant /usr/include /usr/include/enchant /opt/local/include/enchant)
-endif()
-if (ENCHANT_LIBRARY AND ENCHANT_INCLUDE_DIR)
- set(ENCHANT_FOUND TRUE)
- add_definitions(-DUSE_ENCHANT=1)
- message(STATUS "Building with USE_ENCHANT")
-else()
- message(STATUS "Enchant not found, building without enchant support")
-endif()
if(LYX_NLS)
- add_definitions(-DENABLE_NLS=1)
+ add_definitions(-DENABLE_NLS=1)
endif()
-if(ASPELL_FOUND)
- add_definitions(-DUSE_ASPELL=1)
-endif()
if(WIN32)
- if(LYX_NO_CONSOLE)
+ if(LYX_NO_CONSOLE)
set(WIN32_CONSOLE WIN32)
set(LYX_QTMAIN_LIBRARY ${QT_QTMAIN_LIBRARY})
endif()
endif()
if(MSVC)
- if(LYX_VLD)
- set(LYX_LEAK_DETECTION 1 CACHE TYPE STRING FORCE)
- set(LIBRARY_OUTPUT_PATH ${EXECUTABLE_OUTPUT_PATH})
- set(vld_path ${CMAKE_CURRENT_SOURCE_DIR}/../Win32/vld)
- include(${vld_path}/tools/cmake/vld.cmake)
- endif()
+ 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)
+ endif()
# TODO options
if(LYX_WALL)
# Use the highest warning level
set(CMAKE_CXX_WARNING_LEVEL 4 CACHE TYPE STRING FORCE)
- 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()
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")
if(LYX_INSTALL)
add_subdirectory(man)
- FIND_PROGRAM(LYX_PERL_EXECUTABLE python)
+ FIND_PROGRAM(LYX_PERL_EXECUTABLE perl)
if(NOT ${LYX_PERL_EXECUTABLE} MATCHES "-NOTFOUND")
add_subdirectory(doc)
endif()
#include "pcheaders.h"
#endif
-#cmakedefine WORDS_BIGENDIAN 1
-
-
#cmakedefine PACKAGE "${PACKAGE}"
#cmakedefine PACKAGE_VERSION "${PACKAGE_VERSION}"
#cmakedefine USE_MACOSX_PACKAGING 1
#cmakedefine PATH_MAX ${PATH_MAX}
+#cmakedefine WORDS_BIGENDIAN 1
+
+#cmakedefine LYX_MERGE_FILES 1
+
#cmakedefine LYX_USE_TR1 1
#cmakedefine LYX_USE_TR1_REGEX 1
+#cmakedefine ASPELL_FOUND 1
+#ifdef ASPELL_FOUND
+#define USE_ASPELL 1
+#endif
+
+#cmakedefine AIKSAURUSLIB_FOUND 1
+#ifdef AIKSAURUSLIB_FOUND
+#define HAVE_LIBAIKSAURUS 1
+#define AIKSAURUS_H_LOCATION "${AIKSAURUSLIB_H}"
+#endif
+
+#cmakedefine ENCHANT_FOUND 1
+#ifdef ENCHANT_FOUND
+#define USE_ENCHANT 1
+#endif
-#endif
+#endif // config.h guard
-// cleanup global namespace
+
+// Unguarded cleanup of global namespace:
+
#ifdef ColorMode
#undef ColorMode
#endif
#undef KeyPress
#endif
-
-
PATH_SUFFIXES "" "Aiksaurus")
if(AIKSAURUSLIB_INCLUDE_DIR)
if(AIKSAURUSLIB_INCLUDE_DIR MATCHES "Aiksaurus")
- set(AIKSAURUS_H Aiksaurus/Aiksaurus.h)
+ set(AIKSAURUSLIB_H Aiksaurus/Aiksaurus.h)
else()
- set(AIKSAURUS_H Aiksaurus.h)
+ set(AIKSAURUSLIB_H Aiksaurus.h)
endif()
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(AIKSAURUSLIB DEFAULT_MSG AIKSAURUSLIB_LIBRARY AIKSAURUSLIB_INCLUDE_DIR)
-mark_as_advanced(AIKSAURUSLIB_LIBRARY AIKSAURUSLIB_INCLUDE_DIR)
+set(AIKSAURUSLIB_H ${AIKSAURUSLIB_H} CACHE STRING "Aiksaurus header" FORCE)
+
+mark_as_advanced(AIKSAURUSLIB_LIBRARY AIKSAURUSLIB_INCLUDE_DIR AIKSAURUSLIB_H)
--- /dev/null
+if(WIN32)
+ find_library(ENCHANT_LIBRARY "libenchant")
+ find_path(ENCHANT_INCLUDE_DIR "enchant++.h")
+else()
+ find_library(ENCHANT_LIBRARY "enchant"
+ "/usr/local/lib"
+ "/usr/lib"
+ "/usr/local/lib"
+ "/opt/local/lib")
+ find_path(ENCHANT_INCLUDE_DIR "enchant++.h" PATHS
+ /usr/local/include
+ /usr/local/include/enchant
+ /usr/include
+ /usr/include/enchant
+ /opt/local/include/enchant)
+endif()
+
+if (ENCHANT_LIBRARY AND ENCHANT_INCLUDE_DIR)
+ set(ENCHANT_FOUND TRUE)
+ add_definitions(-DUSE_ENCHANT=1)
+ message(STATUS "Building with USE_ENCHANT")
+else()
+ message(STATUS "Enchant not found, building without enchant support")
+endif()
+
+
+# handle the QUIETLY and REQUIRED arguments and
+# set ENCHANT_FOUND to TRUE if all listed variables are TRUE
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(ENCHANT DEFAULT_MSG ENCHANT_LIBRARY ENCHANT_INCLUDE_DIR)
+
+if(Enchant_FIND_REQUIRED AND NOT ENCHANT_FOUND)
+ message(FATAL_ERROR "Could not find Enchant library")
+endif()
+
+mark_as_advanced(ENCHANT_LIBRARY ENCHANT_INCLUDE_DIR)
file(GLOB lyx_headers ${TOP_SRC_DIR}/src/${LYX_HPP_FILES})
list(REMOVE_ITEM lyx_sources
- ${TOP_SRC_DIR}/src/EnchantChecker.cpp
- ${TOP_SRC_DIR}/src/AspellChecker.cpp
- ${TOP_SRC_DIR}/src/HunspellChecker.cpp
${TOP_SRC_DIR}/src/Variables.cpp
${TOP_SRC_DIR}/src/Section.cpp
${TOP_SRC_DIR}/src/lyxcore.cpp
${TOP_SRC_DIR}/src/lyxinsets.cpp
${TOP_SRC_DIR}/src/lyxmathed.cpp)
-if(NOT APPLE)
- list(REMOVE_ITEM lyx_sources
- ${TOP_SRC_DIR}/src/AppleSpellChecker.cpp)
- list(REMOVE_ITEM lyx_headers
- ${TOP_SRC_DIR}/src/AppleSpellChecker.h)
-endif()
-
list(REMOVE_ITEM lyx_headers
- ${TOP_SRC_DIR}/src/EnchantChecker.h
- ${TOP_SRC_DIR}/src/AspellChecker.h
- ${TOP_SRC_DIR}/src/HunspellChecker.h
${TOP_SRC_DIR}/src/Variables.h
${TOP_SRC_DIR}/src/Section.h)
-if (HUNSPELL_FOUND)
- list(APPEND lyx_sources ${TOP_SRC_DIR}/src/HunspellChecker.cpp)
- list(APPEND lyx_headers ${TOP_SRC_DIR}/src/HunspellChecker.h)
- set(dont_merge ${dont_merge} ${TOP_SRC_DIR}/src/HunspellChecker.cpp)
+if(NOT APPLE)
+ list(REMOVE_ITEM lyx_sources ${TOP_SRC_DIR}/src/AppleSpellChecker.cpp)
+ list(REMOVE_ITEM lyx_headers ${TOP_SRC_DIR}/src/AppleSpellChecker.h)
endif()
-if (ASPELL_FOUND)
- include_directories(${ASPELL_INCLUDE_DIR})
- list(APPEND lyx_sources ${TOP_SRC_DIR}/src/AspellChecker.cpp)
- list(APPEND lyx_headers ${TOP_SRC_DIR}/src/AspellChecker.h)
+if(NOT ASPELL_FOUND)
+ list(REMOVE_ITEM lyx_sources ${TOP_SRC_DIR}/src/ASpellChecker.cpp)
+ list(REMOVE_ITEM lyx_headers ${TOP_SRC_DIR}/src/ASpellchecker.h)
+else()
set(dont_merge ${dont_merge} ${TOP_SRC_DIR}/src/AspellChecker.cpp)
endif()
-if (ENCHANT_FOUND)
- include_directories("${ENCHANT_INCLUDE_DIR}")
- list(APPEND lyx_sources ${TOP_SRC_DIR}/src/EnchantChecker.cpp)
- list(APPEND lyx_headers ${TOP_SRC_DIR}/src/EnchantChecker.h)
- set(dont_merge ${dont_merge} ${TOP_SRC_DIR}/src/EnchantChecker.cpp)
+if(NOT ENCHANT_FOUND)
+ list(REMOVE_ITEM lyx_sources ${TOP_SRC_DIR}/src/EnchantChecker.cpp)
+ list(REMOVE_ITEM lyx_headers ${TOP_SRC_DIR}/src/EnchantChecker.h)
+else()
+ set(dont_merge ${dont_merge} ${TOP_SRC_DIR}/src/EnchantChecker.cpp)
+endif()
+
+if(NOT HUNSPELL_FOUND)
+ list(REMOVE_ITEM lyx_sources ${TOP_SRC_DIR}/src/HunspellChecker.cpp)
+ list(REMOVE_ITEM lyx_headers ${TOP_SRC_DIR}/src/HunspellChecker.h)
+else()
+ set(dont_merge ${dont_merge} ${TOP_SRC_DIR}/src/HunspellChecker.cpp)
endif()
+
lyx_automoc(${TOP_SRC_DIR}/src/Compare.cpp)
if (WIN32)
lyx_automoc(${TOP_SRC_DIR}/src/Server.cpp)