CMakeLists.txt 3.58 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)
36
set(LINPHONE_BUILDER_EXTERNAL_SOURCE_PATH "" CACHE STRING "External path to source code that is available.")
37
set(LINPHONE_BUILDER_DUMMY_LIBRARIES "" CACHE STRING "Dummy libraries to be generated.")
38
option(LINPHONE_BUILDER_BUILD_ONLY_EXTERNAL_SOURCE_PATH "Build only the code put in external source path." NO)
39
option(LINPHONE_BUILDER_GROUP_EXTERNAL_SOURCE_PATH_BUILDERS "Group external source path builders in a single external project." NO)
Ghislain MARY's avatar
Ghislain MARY committed
40

41 42

# Include macros definition to be used by builders
43
include(cmake/CMakeLists.txt)
44

Ghislain MARY's avatar
Ghislain MARY committed
45

46 47 48 49 50 51 52 53 54 55 56 57
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
58

59
	# Get build tools and flags for autotools projects (except for Windows Phone where we cannot build with MinGW)
Ghislain MARY's avatar
Ghislain MARY committed
60
	if(NOT CMAKE_SYSTEM_NAME STREQUAL "WindowsPhone")
61 62
		linphone_builder_get_autotools_configuration()
	endif()
63

64

65 66
	# Create targets list from the given LINPHONE_BUILDER_TARGET
	linphone_builder_create_targets_list()
67

68

69 70 71 72
	# 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})
73

74

75 76
	# Apply build flags and add external projects
	linphone_builder_apply_flags()
77
	linphone_builder_add_projects()
78
	linphone_builder_add_dummy_libraries_generation()
79

Ghislain MARY's avatar
Ghislain MARY committed
80

81
	# Give a feature summary
82 83
	feature_summary(WHAT ENABLED_FEATURES DESCRIPTION "Enabled features:")
	feature_summary(WHAT DISABLED_FEATURES DESCRIPTION "Disabled features:")
Ghislain MARY's avatar
Ghislain MARY committed
84

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