CMakeLists.txt 3 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
############################################################################
# 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.
#
############################################################################

23
cmake_minimum_required(VERSION 3.0)
24

25 26 27 28
include(FeatureSummary)


set(LINPHONE_BUILDER_CONFIG_FILE "configs/config-desktop.cmake" CACHE STRING "Path to the linphone builder configuration file.")
29
set(LINPHONE_BUILDER_WORK_DIR "${CMAKE_CURRENT_SOURCE_DIR}/WORK" CACHE PATH "Working directory for the build.")
30
set(LINPHONE_BUILDER_TARGET "linphone" CACHE STRING "Target to build.")
31
set_property(CACHE LINPHONE_BUILDER_TARGET PROPERTY STRINGS "belle-sip" "ortp" "ms2" "ms2-plugins" "linphone" "flexisip")
32
set(LINPHONE_BUILDER_PREBUILT_URL "" CACHE STRING "URL to download some prebuilt dependencies.")
Ghislain MARY's avatar
Ghislain MARY committed
33
option(LINPHONE_BUILDER_LATEST "Build latest versions (from git)." NO)
34
option(LINPHONE_BUILDER_CHECK_LASTEST "Check that the git revisions are the latest ones." NO)
35
option(LINPHONE_BUILDER_BUILD_DEPENDENCIES "Build the dependencies instead of using the system libraries." YES)
Ghislain MARY's avatar
Ghislain MARY committed
36

37 38 39 40

# Include macros definition to be used by builders
include(cmake/LinphoneCMakeBuilder.cmake)

Ghislain MARY's avatar
Ghislain MARY committed
41

42 43 44 45 46 47 48 49 50 51 52 53
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()

Ghislain MARY's avatar
Ghislain MARY committed
54

55 56
	# Get build tools and flags for autotools projects
	linphone_builder_get_autotools_configuration()
57

58

59 60
	# Create targets list from the given LINPHONE_BUILDER_TARGET
	linphone_builder_create_targets_list()
61

62

63 64 65 66
	# 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})
67

68

69 70 71
	# Apply build flags and add external projects
	linphone_builder_apply_flags()
	linphone_builder_add_external_projects()
72

Ghislain MARY's avatar
Ghislain MARY committed
73

74
	# Give a feature summary
75 76
	feature_summary(WHAT ENABLED_FEATURES DESCRIPTION "Enabled features:")
	feature_summary(WHAT DISABLED_FEATURES DESCRIPTION "Disabled features:")
Ghislain MARY's avatar
Ghislain MARY committed
77

Ghislain MARY's avatar
Ghislain MARY committed
78
endif()