allow to build with helps of cmake

This commit is contained in:
Evgeniy Dushistov
2013-07-06 17:50:15 +00:00
parent 06e3f25ea4
commit 94111e953c
9 changed files with 777 additions and 0 deletions

110
CMakeLists.txt Normal file
View File

@@ -0,0 +1,110 @@
project(sdcv)
# Older versions have a different signature for CMAKE_MINIMUM_REQUIRED,
# check it manually just to make sure
if (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} LESS 2.8)
message(FATAL_ERROR "${PROJECT_NAME} requires at least CMake v2.8."
" You are running v${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}."
" Please upgrade." )
endif(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} LESS 2.8)
# If we get this far, use the modern signature. This will also cause newer
# CMake versions to try to be backwards-compatible with the desired version
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
cmake_policy(VERSION 2.8)
set(ZLIB_FIND_REQUIRED True)
include(FindZLIB)
set(GLIB2_REQ "'glib-2.0 >= 2.6.1'")
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindGLIB2.cmake")
if (NOT GLIB2_FOUND)
message(FATAL_ERROR "sdcv require ${GLIB2_REQ}, "
"make sure that you install it")
endif()
find_path(READLINE_INCLUDE_DIR readline/readline.h)
find_library(READLINE_LIBRARY NAMES readline)
if (READLINE_INCLUDE_DIR AND READLINE_LIBRARY)
set(WITH_READLINE TRUE)
endif ()
find_package(GettextTools REQUIRED)
set(gettext_stockDir "${CMAKE_CURRENT_SOURCE_DIR}/po")
set(gettext_langDir "${CMAKE_CURRENT_BINARY_DIR}/lang")
set(gettext_outDir "${CMAKE_CURRENT_BINARY_DIR}/locale")
set(sdcv_SRCS
src/sdcv.cpp
src/readline.cpp
src/readline.hpp
src/libwrapper.cpp
src/libwrapper.hpp
src/utils.cpp
src/utils.hpp
src/lib/lib.cpp
src/lib/lib.h
src/lib/dictziplib.cpp
src/lib/dictziplib.hpp
src/lib/distance.cpp
src/lib/distance.h
src/lib/mapfile.hpp
src/lib/file.hpp
)
gettext_make_target("lang"
HIERARCHY "{1}/{2}/{3}/{4}.mo"
KEYWORDS "_"
DOMAIN "sdcv-dom"
STOCK_DIR ${gettext_stockDir}
LANG_DIR ${gettext_langDir}
OUT_DIR ${gettext_outDir}
SOURCE ${sdcv_SRCS})
list(APPEND makeCleanFiles ${gettext_outDir})
include(CheckFunctionExists)
check_function_exists(mmap HAVE_MMAP)
include(CheckIncludeFile)
check_include_file(locale.h HAVE_LOCALE_H)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake
${CMAKE_CURRENT_BINARY_DIR}/config.h)
include_directories(
${ZLIB_INCLUDE_DIR}
${GLIB2_INCLUDE_DIRS}
${CMAKE_CURRENT_SOURCE_DIR}/src/lib
${CMAKE_CURRENT_BINARY_DIR}
)
#
# Packing stuff
#
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "console version of StarDict program")
set(CPACK_PACKAGE_VENDOR "Evgeniy Dushistov <dushistov@mail.ru>")
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
set(CPACK_PACKAGE_VERSION_MAJOR "0")
set(CPACK_PACKAGE_VERSION_MINOR "5")
set(CPACK_PACKAGE_VERSION_PATCH "0-beta1")
set(sdcv_VERSION
"${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
add_definitions(-DVERSION="${sdcv_VERSION}" -DHAVE_CONFIG_H)
add_executable(sdcv ${sdcv_SRCS})
target_link_libraries(sdcv
${GLIB2_LIBRARIES}
${ZLIB_LIBRARIES}
${READLINE_LIBRARY}
)
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "locale")
include(CPack)