123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- cmake_minimum_required(VERSION 3.13)
- # Use cmake -DCMAKE_SYSTEM_NAME .. for cross-compiling (inside build directory)
- # Set the project name
- project(
- kamailio
- VERSION 6.1.0
- DESCRIPTION "Kamailio SIP Server"
- HOMEPAGE_URL "https://www.kamailio.org"
- )
- # ---- Include guards ----
- if(PROJECT_SOURCE_DIR STREQUAL PROJECT_BINARY_DIR)
- message(
- FATAL_ERROR
- "In-source builds not allowed. Please make a new directory (called a build directory) \
- and run CMake again accordingly."
- )
- endif()
- # ---- Project settings ----
- # Set the version number
- set(EXTRAVERSION "-dev1")
- set(RELEASE "${PROJECT_VERSION}${EXTRAVERSION}")
- message(STATUS "PROJECT_VERSION: ${PROJECT_VERSION}")
- message(STATUS "RELEASE: ${RELEASE}")
- # cmake-format: off
- # Set the version number as a single integer
- math(EXPR VERSIONVAL
- "${PROJECT_VERSION_MAJOR}*1000000
- + ${PROJECT_VERSION_MINOR}*1000
- + ${PROJECT_VERSION_PATCH}"
- )
- message(STATUS "VERSIONVAL: ${VERSIONVAL}")
- # cmake-format: on
- # Specify the C standard if non provided by user
- if(NOT CMAKE_C_STANDARD)
- set(CMAKE_C_STANDARD 11)
- set(CMAKE_C_STANDARD_REQUIRED True)
- endif()
- list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")
- include(${CMAKE_SOURCE_DIR}/cmake/BuildType.cmake)
- # -----------------------
- # Main project name
- # -----------------------
- # main binary name
- set(MAIN_NAME
- "kamailio"
- CACHE STRING "Main binary name"
- )
- # use kamailio config
- set(CFG_NAME
- "kamailio"
- CACHE STRING "Config name"
- )
- include(GNUInstallDirs)
- include(${CMAKE_SOURCE_DIR}/cmake/defs.cmake)
- # Add the source directory
- add_subdirectory(src)
- # Add utils
- # add_subdirectory(utils)
- add_subdirectory(utils/kamctl)
- add_subdirectory(utils/kamcmd)
- # ----------
- # Db schema files
- # Include it here due to calling a script where we need the base binary dir
- # and scirpts are using {CMAKE_BINARY_DIR} from where they where first included.
- include(${CMAKE_SOURCE_DIR}/cmake/dbschema.cmake)
- # ----------
- # Packaging
- # ----------
- include(${CMAKE_SOURCE_DIR}/cmake/deb-packaging.cmake)
- # Add uninstall target
- if(NOT TARGET uninstall)
- configure_file(
- "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake-uninstall.cmake.in"
- "${CMAKE_CURRENT_BINARY_DIR}/cmake/cmake-uninstall.cmake" IMMEDIATE @ONLY
- )
- add_custom_target(
- uninstall
- COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake/cmake-uninstall.cmake
- COMMENT "Uninstalling ${PROJECT_NAME}-${PROJECT_VERSION} from ${CMAKE_INSTALL_PREFIX}"
- )
- endif()
|