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.0.6 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 "") 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()