############################################################################ # CMakeLists.txt # Copyright (C) 2014 Belledonne Communications, Grenoble France # ############################################################################ # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # ############################################################################ cmake_minimum_required(VERSION 3.0) include(FeatureSummary) set(LINPHONE_BUILDER_CONFIG_FILE "configs/config-desktop.cmake" CACHE STRING "Path to the linphone builder configuration file.") set(LINPHONE_BUILDER_WORK_DIR "${CMAKE_CURRENT_SOURCE_DIR}/WORK" CACHE PATH "Working directory for the build.") set(LINPHONE_BUILDER_TARGET "linphone" CACHE STRING "Target to build.") set_property(CACHE LINPHONE_BUILDER_TARGET PROPERTY STRINGS "belle-sip" "ortp" "ms2" "ms2-plugins" "linphone" "flexisip") set(LINPHONE_BUILDER_PREBUILT_URL "" CACHE STRING "URL to download some prebuilt dependencies.") option(LINPHONE_BUILDER_LATEST "Build latest versions (from git)." NO) option(LINPHONE_BUILDER_CHECK_LASTEST "Check that the git revisions are the latest ones." NO) option(LINPHONE_BUILDER_BUILD_DEPENDENCIES "Build the dependencies instead of using the system libraries." YES) set(LINPHONE_BUILDER_EXTERNAL_SOURCE_PATH "" CACHE STRING "External path to source code that is available.") # Include macros definition to be used by builders include(cmake/LinphoneCMakeBuilder.cmake) if(LINPHONE_BUILDER_CHECK_LATEST) include(builders/CMakeLists.txt) else() # Include toolchain definition if(CMAKE_TOOLCHAIN_FILE) get_filename_component(CMAKE_TOOLCHAIN_FILE ${CMAKE_TOOLCHAIN_FILE} ABSOLUTE) message(STATUS "Using toolchain file '${CMAKE_TOOLCHAIN_FILE}'") endif() # Get build tools and flags for autotools projects (except for Windows Phone where we cannot build with MinGW) if(NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "WindowsPhone") linphone_builder_get_autotools_configuration() endif() # Create targets list from the given LINPHONE_BUILDER_TARGET linphone_builder_create_targets_list() # Include project configuration according to the toolchain get_filename_component(LINPHONE_BUILDER_CONFIG_FILE ${LINPHONE_BUILDER_CONFIG_FILE} ABSOLUTE) message(STATUS "Using configuration file '${LINPHONE_BUILDER_CONFIG_FILE}'") include(${LINPHONE_BUILDER_CONFIG_FILE}) # Apply build flags and add external projects linphone_builder_apply_flags() linphone_builder_add_external_projects() # Give a feature summary feature_summary(WHAT ENABLED_FEATURES DESCRIPTION "Enabled features:") feature_summary(WHAT DISABLED_FEATURES DESCRIPTION "Disabled features:") endif()