CMakeLists.txt 3.81 KB
Newer Older
1 2
############################################################################
# CMakeLists.txt
3
# Copyright (C) 2014-2018  Belledonne Communications, Grenoble France
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#
############################################################################
#
# 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
19
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
20 21 22
#
############################################################################

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_TOP_DIR "${CMAKE_SOURCE_DIR}" CACHE PATH "Top directory of the source tree.")
30
set(LINPHONE_BUILDER_WORK_DIR "${CMAKE_CURRENT_SOURCE_DIR}/WORK" CACHE PATH "Working directory for the build.")
31
set(LINPHONE_BUILDER_TARGET "linphone" CACHE STRING "Target to build.")
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
set(LINPHONE_BUILDER_EXTERNAL_SOURCE_PATH "" CACHE PATH "External path to source code that is available.")
36
set(LINPHONE_BUILDER_DUMMY_LIBRARIES "" CACHE STRING "Dummy libraries to be generated.")
37
option(LINPHONE_BUILDER_USE_SYSTEM_DEPENDENCIES "Use system dependencies." NO)
38
option(LINPHONE_BUILDER_GROUP_EXTERNAL_SOURCE_PATH_BUILDERS "Group external source path builders in a single external project." NO)
39
set(LINPHONE_BUILDER_EXTERNAL_BUILDERS_PATH "" CACHE PATH "Path to external builders.")
40
set(LINPHONE_BUILDER_SIGNING_IDENTITY "" CACHE STRING "Signing identity used for code signing on Mac OS X")
41
option(LINPHONE_BUILDER_ENABLE_RPM_PACKAGING "Enable RPM packaging." NO)
Ghislain MARY's avatar
Ghislain MARY committed
42

43 44

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

Ghislain MARY's avatar
Ghislain MARY committed
47

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

61 62 63 64
	# 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})
65

66

67
	# Apply build flags
68
	linphone_builder_apply_flags()
69 70


71 72
	# Get build tools and flags for autotools projects (except for Windows Phone and Windows Store where we cannot build with MinGW)
	if(NOT CMAKE_SYSTEM_NAME STREQUAL "WindowsPhone" AND NOT CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
73 74 75 76 77
		linphone_builder_get_autotools_configuration()
	endif()


	# Add external projects
78
	linphone_builder_add_projects()
79
	linphone_builder_add_dummy_libraries_generation()
80
	linphone_builder_add_package_source_check_project()
81

Ghislain MARY's avatar
Ghislain MARY committed
82

83 84 85 86 87
	if(LINPHONE_BUILDER_ADDITIONAL_CONFIG_STEPS)
		include(${LINPHONE_BUILDER_ADDITIONAL_CONFIG_STEPS})
	endif()


88
	# Give a feature summary
89 90
	feature_summary(WHAT ENABLED_FEATURES DESCRIPTION "Enabled features:")
	feature_summary(WHAT DISABLED_FEATURES DESCRIPTION "Disabled features:")
Ghislain MARY's avatar
Ghislain MARY committed
91

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