CMakeLists.txt 3.94 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.1)
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_ALTERNATE_EXTERNAL_SOURCE_PATH "" CACHE PATH "Alternate 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_USE_SYSTEM_DEPENDENCIES "Use system dependencies." NO)
39
option(LINPHONE_BUILDER_GROUP_EXTERNAL_SOURCE_PATH_BUILDERS "Group external source path builders in a single external project." NO)
40
set(LINPHONE_BUILDER_EXTERNAL_BUILDERS_PATH "" CACHE PATH "Path to external builders.")
41
set(LINPHONE_BUILDER_SIGNING_IDENTITY "" CACHE STRING "Signing identity used for code signing on Mac OS X")
42
option(LINPHONE_BUILDER_ENABLE_RPM_PACKAGING "Enable RPM packaging." NO)
Ghislain MARY's avatar
Ghislain MARY committed
43

44 45

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

Ghislain MARY's avatar
Ghislain MARY committed
48

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

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

67

68
	# Apply build flags
69
	linphone_builder_apply_flags()
70 71


72 73
	# 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")
74 75 76 77 78
		linphone_builder_get_autotools_configuration()
	endif()


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

Ghislain MARY's avatar
Ghislain MARY committed
83

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


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

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