1 cmake_minimum_required(VERSION 2.6)
2 #cmake_policy(VERSION 2.6)
4 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/")
5 set(DEB_CHANGELOG_REQUIRED ON)
8 set(PROJECT_NAME "ejdb")
9 set(PROJECT_VENDOR "Softmotions")
10 set(PROJECT_WEBSITE "http://ejdb.org")
11 set(PROJECT_MAINTAINER "Anton Adamansky <adamansky@gmail.com>")
12 set(PROJECT_DESCRIPTION_SUMMARY "Embedded JSON database library (EJDB)")
13 set(PROJECT_DESCRIPTION "EJDB aims to be a fast MongoDB-like library which can be embedded into C/C++ applications under terms of LGPL license.")
14 set(CHANGELOG_MESSAGE ${CHANGELOG_LAST_MESSAGE})
15 set(PROJECT_PPA "ppa:adamansky/ejdb")
16 set(PROJECT_PPA_USER "adamansky")
17 set(PROJECT_PPA_DISTRIB_TARGET vivid utopic trusty precise)
19 project(${PROJECT_NAME} C)
21 set(PROJECT_VERSION_MAJOR ${CHANGELOG_LAST_VERSION_MAJOR})
22 set(PROJECT_VERSION_MINOR ${CHANGELOG_LAST_VERSION_MINOR})
23 set(PROJECT_VERSION_PATCH ${CHANGELOG_LAST_VERSION_PATCH})
24 set(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
25 set(${PROJECT_NAME}_VERSION ${PROJECT_VERSION})
26 set(${PROJECT_NAME}_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
27 set(${PROJECT_NAME}_VERSION_MINOR ${PROJECT_VERSION_MINOR})
28 set(${PROJECT_NAME}_VERSION_PATCH ${PROJECT_VERSION_PATCH})
30 option(BUILD_SHARED_LIBS "Build shared libraries" ON)
31 option(BUILD_TESTS "Build test cases" OFF)
32 option(BUILD_SAMPLES "Build ejdb sample projects" OFF)
33 option(PACKAGE_DEB "Build .deb instalation packages" OFF)
34 option(PACKAGE_TGZ "Build .tgz package archive" ON)
35 option(PACKAGE_ZIP "Build .zip package archive" ON)
36 option(ENABLE_PPA "Enable PPA package build" OFF)
37 option(UPLOAD_PPA "Upload debian packages to the launchpad ppa repository" OFF)
38 option(PPA_DEBIAN_VERSION "PPA version suffix for debian packages" "ppa1")
39 option("PROJECT_PPA_DISTRIB_TARGET" "Ubuntu PPA distrubutive names" "vivid;utopic;trusty;precise")
42 cmake_policy(SET CMP0042 NEW)
45 if (CMAKE_SIZEOF_VOID_P MATCHES 8)
46 set(PROJECT_ARCH "x86_64")
47 add_definitions("-D_FILE_OFFSET_BITS=64")
48 else(CMAKE_SIZEOF_VOID_P MATCHES 8)
49 set(PROJECT_ARCH "x86")
50 endif(CMAKE_SIZEOF_VOID_P MATCHES 8)
52 include(GNUInstallDirs)
55 macro_ensure_out_of_source_build(
56 "${CMAKE_PROJECT_NAME} requires an out of source build."
61 find_package(CUnit REQUIRED)
76 list(APPEND CPACK_GENERATORS "TGZ")
79 list(APPEND CPACK_GENERATORS "ZIP")
82 list(APPEND CPACK_GENERATORS "DEB")
86 set(CPACK_GENERATOR "${CPACK_GENERATORS}")
87 set(CPACK_SOURCE_IGNORE_FILES
94 "compile_commands\\\\.json$"
97 add_subdirectory(installer)
100 message("CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}")
101 message("CPACK_GENERATORS: ${CPACK_GENERATORS}")
103 message("MXE_HOME: ${MXE_HOME}")
105 if (CMAKE_SYSTEM_NAME)
106 message("CMAKE_SYSTEM_NAME: ${CMAKE_SYSTEM_NAME}")
109 message("PROJECT_ARCH: ${PROJECT_ARCH}")
111 message("PROJECT: ${CHANGELOG_LAST_LINE}")
112 if (CHANGELOG_MESSAGE)
113 message("CHANGELOG_MESSAGE:\n ${CHANGELOG_MESSAGE}")