Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
BC
public
liblinphone
Commits
9725f159
Commit
9725f159
authored
Aug 04, 2014
by
Ghislain MARY
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Improve compilation with CMake.
parent
d4665fde
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
134 additions
and
62 deletions
+134
-62
CMakeLists.txt
CMakeLists.txt
+34
-1
config.h.cmake
config.h.cmake
+28
-0
coreapi/CMakeLists.txt
coreapi/CMakeLists.txt
+34
-61
coreapi/gitversion.cmake
coreapi/gitversion.cmake
+38
-0
No files found.
CMakeLists.txt
View file @
9725f159
...
...
@@ -21,11 +21,33 @@
############################################################################
cmake_minimum_required
(
VERSION 2.6
)
project
(
LINPHONE C
)
project
(
LINPHONE C
CXX
)
set
(
LINPHONE_MAJOR_VERSION
"3"
)
set
(
LINPHONE_MINOR_VERSION
"7"
)
set
(
LINPHONE_MICRO_VERSION
"0"
)
set
(
LINPHONE_VERSION
"
${
LINPHONE_MAJOR_VERSION
}
.
${
LINPHONE_MINOR_VERSION
}
.
${
LINPHONE_MICRO_VERSION
}
"
)
set
(
LINPHONE_SO_VERSION
"6"
)
include
(
CMakeDependentOption
)
option
(
ENABLE_STATIC
"Build static library (default is shared library)."
NO
)
option
(
ENABLE_CONSOLE_UI
"Turn on or off compilation of console interface."
YES
)
option
(
ENABLE_DATE
"Use build date in internal version number."
NO
)
option
(
ENABLE_GTK_UI
"Turn on or off compilation of gtk interface."
YES
)
option
(
ENABLE_LDAP
"Enable LDAP support."
NO
)
option
(
ENABLE_MSG_STORAGE
"Turn on compilation of message storage."
YES
)
option
(
ENABLE_NOTIFY
"Enable libnotify support."
YES
)
option
(
ENABLE_RELATIVE_PREFIX
"Find resources relatively to the installation directory."
NO
)
option
(
ENABLE_TOOLS
"Turn on or off compilation of console interface"
YES
)
option
(
ENABLE_TUNNEL
"Turn on compilation of tunnel support."
NO
)
option
(
ENABLE_TUTORIALS
"Enable compilation of tutorials."
YES
)
option
(
ENABLE_UNIT_TESTS
"Enable compilation of unit tests."
YES
)
option
(
ENABLE_UPNP
"Build with uPnP support."
YES
)
option
(
ENABLE_VIDEO
"Build with video support."
YES
)
cmake_dependent_option
(
ENABLE_ASSISTANT
"Turn on assistant compiling."
YES
"ENABLE_GTK_UI"
NO
)
list
(
APPEND CMAKE_MODULE_PATH
${
CMAKE_PREFIX_PATH
}
/share/cmake/Modules
)
...
...
@@ -44,6 +66,7 @@ find_package(XML2 REQUIRED)
include_directories
(
include/
coreapi/
${
CMAKE_CURRENT_BINARY_DIR
}
${
CMAKE_CURRENT_BINARY_DIR
}
/coreapi/
${
BELLESIP_INCLUDE_DIRS
}
${
MS2_INCLUDE_DIRS
}
...
...
@@ -55,5 +78,15 @@ if(MSVC)
endif
()
if
(
ENABLE_RELATIVE_PREFIX
)
set
(
LINPHONE_PLUGINS_DIR
"./lib/liblinphone/plugins"
)
else
()
set
(
LINPHONE_PLUGINS_DIR
"
${
CMAKE_INSTALL_PREFIX
}
/lib/liblinphone/plugins"
)
endif
()
configure_file
(
${
CMAKE_CURRENT_SOURCE_DIR
}
/config.h.cmake
${
CMAKE_CURRENT_BINARY_DIR
}
/config.h
)
set_source_files_properties
(
${
CMAKE_CURRENT_BINARY_DIR
}
/config.h PROPERTIES GENERATED ON
)
add_definitions
(
-DHAVE_CONFIG_H
)
add_subdirectory
(
coreapi
)
add_subdirectory
(
share
)
config.h.cmake
0 → 100644
View file @
9725f159
/***************************************************************************
* config.h.cmake
*
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.
*
****************************************************************************/
#define LINPHONE_MAJOR_VERSION ${LINPHONE_MAJOR_VERSION}
#define LINPHONE_MINOR_VERSION ${LINPHONE_MINOR_VERSION}
#define LINPHONE_MICRO_VERSION ${LINPHONE_MICRO_VERSION}
#define LINPHONE_VERSION "${LINPHONE_VERSION}"
#cmakedefine LINPHONE_PLUGINS_DIR "${LINPHONE_PLUGINS_DIR}"
coreapi/CMakeLists.txt
View file @
9725f159
...
...
@@ -25,40 +25,6 @@ if(MSVC)
find_library
(
LIBMINGWEX NAMES mingwex
)
endif
()
find_program
(
GIT git
)
set
(
GIT_VERSION
"unknown"
)
if
(
GIT
)
execute_process
(
WORKING_DIRECTORY
${
CMAKE_CURRENT_SOURCE_DIR
}
COMMAND
${
GIT
}
describe --always
OUTPUT_VARIABLE GIT_DESCRIBE
OUTPUT_STRIP_TRAILING_WHITESPACE
)
execute_process
(
WORKING_DIRECTORY
${
CMAKE_CURRENT_SOURCE_DIR
}
COMMAND
${
GIT
}
describe --abbrev=0
OUTPUT_VARIABLE GIT_TAG
OUTPUT_STRIP_TRAILING_WHITESPACE
)
execute_process
(
WORKING_DIRECTORY
${
CMAKE_CURRENT_SOURCE_DIR
}
COMMAND
${
GIT
}
rev-parse HEAD
OUTPUT_VARIABLE GIT_REVISION
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if
(
GIT_DESCRIBE
)
set
(
GIT_VERSION
${
GIT_DESCRIBE
}
)
else
(
GIT_DESCRIBE
)
if
(
GIT_REVISION
)
set
(
GIT_VERSION
${
GIT_REVISION
}
)
endif
(
GIT_REVISION
)
endif
(
GIT_DESCRIBE
)
endif
(
GIT
)
execute_process
(
COMMAND
${
CMAKE_COMMAND
}
-E echo
"#define LIBLINPHONE_GIT_VERSION
\"
${
GIT_VERSION
}
\"
"
OUTPUT_FILE
${
CMAKE_CURRENT_BINARY_DIR
}
/liblinphone_gitversion.h
)
set
(
SOURCE_FILES
address.c
...
...
@@ -85,7 +51,6 @@ set(SOURCE_FILES
info.c
linphonecall.c
linphonecore.c
#linphone_tunnel.cc
linphone_tunnel_stubs.c
linphone_tunnel_config.c
lpconfig.c
...
...
@@ -100,7 +65,6 @@ set(SOURCE_FILES
sal.c
siplogin.c
sipsetup.c
#TunnelManager.cc
xml.c
xml2lpc.c
bellesip_sal/sal_impl.h
...
...
@@ -116,16 +80,26 @@ set(SOURCE_FILES
sipsetup.h
xml2lpc.h
)
if
(
ENABLE_TUNNEL
)
list
(
APPEND SOURCE_FILES
linphone_tunnel.cc
TunnelManager.cc
)
add_definitions
(
-DTUNNEL_ENABLED
)
endif
()
set
(
GENERATED_SOURCE_FILES
${
CMAKE_CURRENT_BINARY_DIR
}
/liblinphone_gitversion.h
)
set_source_files_properties
(
${
GENERATED_SOURCE_FILES
}
PROPERTIES GENERATED TRUE
)
find_package
(
Git
)
add_custom_command
(
OUTPUT
${
CMAKE_CURRENT_BINARY_DIR
}
/liblinphone_gitversion.h
COMMAND
${
CMAKE_COMMAND
}
-DGIT_EXECUTABLE=
${
GIT_EXECUTABLE
}
-DOUTPUT_DIR=
${
CMAKE_CURRENT_BINARY_DIR
}
-P
${
CMAKE_CURRENT_SOURCE_DIR
}
/gitversion.cmake
)
add_definitions
(
-D_TRUE_TIME
-DIN_LINPHONE
-DUSE_BELLESIP
#-DTUNNEL_ENABLED
-DLINPHONE_PACKAGE_NAME=
"linphone"
-DLINPHONE_VERSION=
"Devel"
-DLIBLINPHONE_EXPORTS
-DLINPHONE_PLUGINS_DIR=
""
)
if
(
ENABLE_VIDEO
)
...
...
@@ -139,23 +113,30 @@ set(LIBS
${
MS2_LIBRARIES
}
${
XML2_LIBRARIES
}
)
if
(
WIN32
)
add_definitions
(
-DWINDOW_NATIVE
/FIliblinphone_gitversion.h
)
endif
()
add_library
(
linphone SHARED
${
SOURCE_FILES
}
)
set_target_properties
(
linphone PROPERTIES VERSION 3.7.0 SOVERSION 5
)
target_link_libraries
(
linphone
${
LIBS
}
)
if
(
ENABLE_STATIC
)
add_library
(
linphone STATIC
${
SOURCE_FILES
}
${
GENERATED_SOURCE_FILES
}
)
target_link_libraries
(
linphone
${
LIBS
}
)
else
()
add_library
(
linphone SHARED
${
SOURCE_FILES
}
${
GENERATED_SOURCE_FILES
}
)
set_target_properties
(
linphone PROPERTIES VERSION
${
LINPHONE_VERSION
}
SOVERSION
${
LINPHONE_SO_VERSION
}
LINKER_LANGUAGE CXX
)
target_link_libraries
(
linphone
${
LIBS
}
)
if
(
MSVC
)
if
(
CMAKE_BUILD_TYPE STREQUAL
"Debug"
)
install
(
FILES
${
CMAKE_CURRENT_BINARY_DIR
}
/Debug/linphone.pdb
DESTINATION bin
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
endif
()
endif
()
endif
()
install
(
TARGETS linphone
RUNTIME DESTINATION bin
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
file
(
GLOB HEADER_FILES
"*.h"
)
...
...
@@ -164,11 +145,3 @@ install(FILES ${HEADER_FILES}
DESTINATION include/linphone
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
)
if
(
WIN32
)
if
(
CMAKE_BUILD_TYPE STREQUAL
"Debug"
)
install
(
FILES
${
CMAKE_CURRENT_BINARY_DIR
}
/Debug/linphone.pdb
DESTINATION bin
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
endif
()
endif
()
coreapi/gitversion.cmake
0 → 100644
View file @
9725f159
############################################################################
# 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.
#
############################################################################
if
(
GIT_EXECUTABLE
)
execute_process
(
COMMAND
${
GIT_EXECUTABLE
}
describe --always
OUTPUT_VARIABLE GIT_REVISION
OUTPUT_STRIP_TRAILING_WHITESPACE
)
execute_process
(
COMMAND
${
CMAKE_COMMAND
}
-E echo
"#define GIT_VERSION
\"
${
GIT_REVISION
}
\"
"
OUTPUT_FILE
${
OUTPUT_DIR
}
/liblinphone_gitversion.h
)
else
()
execute_process
(
COMMAND
${
CMAKE_COMMAND
}
-E echo
"#define GIT_VERSION
\"
unknown
\"
"
OUTPUT_FILE
${
OUTPUT_DIR
}
/liblinphone_gitversion.h
)
endif
()
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment