Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
BC
public
liblinphone
Commits
c64cf6b4
Commit
c64cf6b4
authored
Feb 24, 2016
by
Ghislain MARY
Browse files
Allow building both shared and static libraries with CMake.
parent
2fc3b377
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
84 additions
and
63 deletions
+84
-63
CMakeLists.txt
CMakeLists.txt
+20
-13
console/CMakeLists.txt
console/CMakeLists.txt
+3
-3
coreapi/CMakeLists.txt
coreapi/CMakeLists.txt
+40
-22
coreapi/help/CMakeLists.txt
coreapi/help/CMakeLists.txt
+1
-1
gtk/CMakeLists.txt
gtk/CMakeLists.txt
+3
-3
tester/CMakeLists.txt
tester/CMakeLists.txt
+8
-8
tools/CMakeLists.txt
tools/CMakeLists.txt
+9
-13
No files found.
CMakeLists.txt
View file @
c64cf6b4
...
...
@@ -21,13 +21,13 @@
############################################################################
cmake_minimum_required
(
VERSION 3.0
)
project
(
LINPHONE
C CXX
)
project
(
linphone VERSION 3.9.1 LANGUAGES
C CXX
)
set
(
LINPHONE_MAJOR_VERSION
"3"
)
set
(
LINPHONE_MINOR_VERSION
"9"
)
set
(
LINPHONE_MICRO_VERSION
"1"
)
set
(
LINPHONE_VERSION
"
${
LINPHONE_MAJOR_VERSION
}
.
${
LINPHONE_MINOR_VERSION
}
.
${
LINPHONE_MICRO
_VERSION
}
"
)
set
(
LINPHONE_MAJOR_VERSION
${
PROJECT_VERSION_MAJOR
}
)
set
(
LINPHONE_MINOR_VERSION
${
PROJECT_VERSION_MINOR
}
)
set
(
LINPHONE_MICRO_VERSION
${
PROJECT_VERSION_PATCH
}
)
set
(
LINPHONE_VERSION
${
PROJECT
_VERSION
}
)
set
(
LINPHONE_SO_VERSION
"8"
)
file
(
GLOB LINPHONE_PO_FILES RELATIVE
"
${
CMAKE_CURRENT_LIST_DIR
}
/po"
"
${
CMAKE_CURRENT_LIST_DIR
}
/po/*.po"
)
...
...
@@ -36,7 +36,8 @@ string(REPLACE ";" " " LINPHONE_ALL_LANGS "${LINPHONE_ALL_LANGS_LIST}")
include
(
CMakeDependentOption
)
option
(
ENABLE_STATIC
"Build static library (default is shared library)."
NO
)
option
(
ENABLE_SHARED
"Build shared library."
YES
)
option
(
ENABLE_STATIC
"Build static library."
YES
)
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_DOC
"Enable documentation generation with Doxygen."
YES
)
...
...
@@ -79,6 +80,12 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
include
(
CheckSymbolExists
)
include
(
CMakePushCheckState
)
include
(
GNUInstallDirs
)
if
(
NOT CMAKE_INSTALL_RPATH AND CMAKE_INSTALL_PREFIX
)
set
(
CMAKE_INSTALL_RPATH
${
CMAKE_INSTALL_FULL_LIBDIR
}
)
message
(
STATUS
"Setting install rpath to
${
CMAKE_INSTALL_RPATH
}
"
)
endif
()
set
(
MSVC_INCLUDE_DIR
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/include/MSVC"
)
if
(
MSVC
)
...
...
@@ -251,13 +258,13 @@ if(ENABLE_RELATIVE_PREFIX)
else
()
set
(
LINPHONE_DATA_DIR
"
${
CMAKE_INSTALL_PREFIX
}
"
)
endif
()
set
(
LINPHONE_PLUGINS_DIR
"
${
LINPHONE_DATA_DIR
}
/
lib
/liblinphone/plugins"
)
set
(
LINPHONE_PLUGINS_DIR
"
${
LINPHONE_DATA_DIR
}
/
${
CMAKE_INSTALL_LIBDIR
}
/liblinphone/plugins"
)
if
(
WIN32
)
set
(
LINPHONE_CONFIG_DIR
"Linphone"
)
endif
()
set
(
PACKAGE_LOCALE_DIR
"
${
LINPHONE_DATA_DIR
}
/
share
/locale"
)
set
(
PACKAGE_DATA_DIR
"
${
LINPHONE_DATA_DIR
}
/
share
"
)
set
(
PACKAGE_SOUND_DIR
"
${
LINPHONE_DATA_DIR
}
/
share
/sounds/linphone"
)
set
(
PACKAGE_LOCALE_DIR
"
${
LINPHONE_DATA_DIR
}
/
${
CMAKE_INSTALL_DATADIR
}
/locale"
)
set
(
PACKAGE_DATA_DIR
"
${
LINPHONE_DATA_DIR
}
/
${
CMAKE_INSTALL_DATADIR
}
"
)
set
(
PACKAGE_SOUND_DIR
"
${
LINPHONE_DATA_DIR
}
/
${
CMAKE_INSTALL_DATADIR
}
/sounds/linphone"
)
set
(
PACKAGE_RING_DIR
"
${
PACKAGE_SOUND_DIR
}
/rings"
)
set
(
PACKAGE_FREEDESKTOP_DIR
"
${
PACKAGE_DATA_DIR
}
/applications"
)
configure_file
(
${
CMAKE_CURRENT_SOURCE_DIR
}
/config.h.cmake
${
CMAKE_CURRENT_BINARY_DIR
}
/config.h
)
...
...
@@ -309,13 +316,13 @@ configure_file(cmake/LinphoneConfig.cmake.in
@ONLY
)
set
(
C
onfigPackageLocation lib/cmake
/Linphone
)
set
(
C
ONFIG_PACKAGE_LOCATION
"
${
CMAKE_INSTALL_DATADIR
}
/Linphone
/cmake"
)
install
(
EXPORT
${
EXPORT_TARGETS_NAME
}
Targets
FILE LinphoneTargets.cmake
DESTINATION
${
C
onfigPackageLocation
}
DESTINATION
${
C
ONFIG_PACKAGE_LOCATION
}
)
install
(
FILES
"
${
CMAKE_CURRENT_BINARY_DIR
}
/LinphoneConfig.cmake"
"
${
CMAKE_CURRENT_BINARY_DIR
}
/LinphoneConfigVersion.cmake"
DESTINATION
${
C
onfigPackageLocation
}
DESTINATION
${
C
ONFIG_PACKAGE_LOCATION
}
)
console/CMakeLists.txt
View file @
c64cf6b4
...
...
@@ -47,8 +47,8 @@ if(WIN32)
endif
()
install
(
TARGETS
${
INSTALL_TARGETS
}
RUNTIME DESTINATION
bin
LIBRARY DESTINATION
lib
ARCHIVE DESTINATION
lib
RUNTIME DESTINATION
${
CMAKE_INSTALL_BINDIR
}
LIBRARY DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
coreapi/CMakeLists.txt
View file @
c64cf6b4
...
...
@@ -176,47 +176,65 @@ if(INTL_FOUND)
list
(
APPEND LIBS
${
INTL_LIBRARIES
}
)
endif
()
add_library
(
linphone-objects OBJECT
${
LINPHONE_HEADER_FILES
}
${
LINPHONE_SOURCE_FILES_C
}
${
LINPHONE_SOURCE_FILES_CXX
}
${
LINPHONE_SOURCE_FILES_OBJC
}
)
set_target_properties
(
linphone-objects PROPERTIES POSITION_INDEPENDENT_CODE TRUE
)
add_dependencies
(
linphone-objects liblinphone-git-version
)
if
(
ENABLE_STATIC
)
add_library
(
linphone STATIC
${
LINPHONE_HEADER_FILES
}
${
LINPHONE_SOURCE_FILES_C
}
${
LINPHONE_SOURCE_FILES_CXX
}
${
LINPHONE_SOURCE_FILES_OBJC
}
)
target_link_libraries
(
linphone
${
LIBS
}
)
else
()
add_library
(
linphone SHARED
${
LINPHONE_HEADER_FILES
}
${
LINPHONE_SOURCE_FILES_C
}
${
LINPHONE_SOURCE_FILES_CXX
}
${
LINPHONE_SOURCE_FILES_OBJC
}
)
add_library
(
linphone-static STATIC $<TARGET_OBJECTS:linphone-objects>
)
set_target_properties
(
linphone-static PROPERTIES OUTPUT_NAME linphone
)
target_link_libraries
(
linphone-static
${
LIBS
}
)
if
(
IOS
)
target_link_libraries
(
linphone-static
"-framework Foundation"
"-framework AVFoundation"
)
endif
()
install
(
TARGETS linphone-static EXPORT
${
EXPORT_TARGETS_NAME
}
Targets
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
endif
()
if
(
ENABLE_SHARED
)
add_library
(
linphone SHARED $<TARGET_OBJECTS:linphone-objects>
)
set_target_properties
(
linphone PROPERTIES VERSION
${
LINPHONE_SO_VERSION
}
LINKER_LANGUAGE CXX
)
target_link_libraries
(
linphone
${
LIBS
}
)
if
(
WIN32 AND CMAKE_SYSTEM_NAME STREQUAL
"WindowsPhone"
AND NOT CMAKE_SYSTEM_NAME STREQUAL
"WindowsStore"
)
set_target_properties
(
linphone PROPERTIES PREFIX
"lib"
)
endif
()
if
(
MSVC
)
if
(
CMAKE_BUILD_TYPE STREQUAL
"Debug"
)
install
(
FILES
${
CMAKE_CURRENT_BINARY_DIR
}
/Debug/linphone.pdb
DESTINATION
bin
DESTINATION
${
CMAKE_INSTALL_BINDIR
}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
endif
()
endif
()
endif
()
if
(
IOS
)
target_link_libraries
(
linphone
"-framework Foundation"
"-framework AVFoundation"
)
endif
()
add_dependencies
(
linphone liblinphone-git-version
)
if
(
WIN32 AND CMAKE_SYSTEM_NAME STREQUAL
"WindowsPhone"
AND NOT CMAKE_SYSTEM_NAME STREQUAL
"WindowsStore"
)
set_target_properties
(
linphone PROPERTIES PREFIX
"lib"
)
install
(
TARGETS linphone EXPORT
${
EXPORT_TARGETS_NAME
}
Targets
RUNTIME DESTINATION
${
CMAKE_INSTALL_BINDIR
}
LIBRARY DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
endif
()
if
(
ICONV_FOUND
)
if
(
APPLE
)
# Prevent conflict between the system iconv.h header and the one from macports.
target_compile_options
(
linphone PRIVATE
"-include"
"
${
ICONV_INCLUDE_DIRS
}
/iconv.h"
)
if
(
ENABLE_STATIC
)
target_compile_options
(
linphone-static PRIVATE
"-include"
"
${
ICONV_INCLUDE_DIRS
}
/iconv.h"
)
endif
()
if
(
ENABLE_SHARED
)
target_compile_options
(
linphone PRIVATE
"-include"
"
${
ICONV_INCLUDE_DIRS
}
/iconv.h"
)
endif
()
else
()
target_include_directories
(
linphone PRIVATE
${
ICONV_INCLUDE_DIRS
}
)
if
(
ENABLE_STATIC
)
target_include_directories
(
linphone-static PRIVATE
${
ICONV_INCLUDE_DIRS
}
)
endif
()
if
(
ENABLE_SHARED
)
target_include_directories
(
linphone PRIVATE
${
ICONV_INCLUDE_DIRS
}
)
endif
()
endif
()
endif
()
install
(
TARGETS linphone EXPORT
${
EXPORT_TARGETS_NAME
}
Targets
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
install
(
FILES
${
LINPHONE_HEADER_FILES
}
DESTINATION
include
/linphone
DESTINATION
${
CMAKE_INSTALL_INCLUDEDIR
}
/linphone
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
)
...
...
coreapi/help/CMakeLists.txt
View file @
c64cf6b4
...
...
@@ -38,7 +38,7 @@ if(DOXYGEN_FOUND)
)
add_custom_target
(
linphone-doc ALL DEPENDS
"
${
CMAKE_CURRENT_BINARY_DIR
}
/doc/html/index.html"
)
install
(
DIRECTORY
"
${
CMAKE_CURRENT_BINARY_DIR
}
/doc/html"
"
${
CMAKE_CURRENT_BINARY_DIR
}
/doc/xml"
DESTINATION
"
share
/doc/linphone-
${
LINPHONE_VERSION
}
"
)
DESTINATION
"
${
CMAKE_INSTALL_DATADIR
}
/doc/linphone-
${
LINPHONE_VERSION
}
"
)
else
()
message
(
WARNING
"The dot program is needed to generate the linphone documentation. You can get it from http://www.graphviz.org/."
)
endif
()
...
...
gtk/CMakeLists.txt
View file @
c64cf6b4
...
...
@@ -120,9 +120,9 @@ set_target_properties(linphone-gtk PROPERTIES XCODE_ATTRIBUTE_WARNING_CFLAGS "")
install
(
TARGETS linphone-gtk
RUNTIME DESTINATION
bin
LIBRARY DESTINATION
lib
ARCHIVE DESTINATION
lib
RUNTIME DESTINATION
${
CMAKE_INSTALL_BINDIR
}
LIBRARY DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
...
...
tester/CMakeLists.txt
View file @
c64cf6b4
...
...
@@ -66,13 +66,13 @@ if(IOS)
target_include_directories
(
linphonetester PUBLIC
${
CUNIT_INCLUDE_DIRS
}
PRIVATE common
)
target_link_libraries
(
linphonetester linphone
${
CUNIT_LIBRARIES
}
)
install
(
TARGETS linphonetester
RUNTIME DESTINATION
bin
LIBRARY DESTINATION
lib
ARCHIVE DESTINATION
lib
RUNTIME DESTINATION
${
CMAKE_INSTALL_BINDIR
}
LIBRARY DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
install
(
FILES
"liblinphone_tester.h"
"common/bc_tester_utils.h"
DESTINATION
include
/linphone
DESTINATION
${
CMAKE_INSTALL_INCLUDEDIR
}
/linphone
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
)
elseif
(
CMAKE_SYSTEM_NAME STREQUAL
"WindowsStore"
)
...
...
@@ -93,15 +93,15 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
set_target_properties
(
linphone_tester_runtime PROPERTIES LINK_FLAGS
"/WINMDFILE:BelledonneCommunications.Linphone.Tester.winmd"
)
install
(
TARGETS linphone_tester_runtime
RUNTIME DESTINATION
bin
LIBRARY DESTINATION
lib
ARCHIVE DESTINATION
lib
RUNTIME DESTINATION
${
CMAKE_INSTALL_BINDIR
}
LIBRARY DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
install
(
FILES
"
${
CMAKE_CURRENT_BINARY_DIR
}
/BelledonneCommunications.Linphone.Tester.winmd"
DESTINATION lib
)
if
(
CMAKE_BUILD_TYPE STREQUAL
"Debug"
)
install
(
FILES
${
CMAKE_CURRENT_BINARY_DIR
}
/Debug/BelledonneCommunications.Linphone.Tester.pdb
DESTINATION
lib
DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
endif
()
...
...
tools/CMakeLists.txt
View file @
c64cf6b4
...
...
@@ -49,9 +49,9 @@ target_link_libraries(lp-gen-wrappers ${LP_GEN_WRAPPERS_LIBS})
install
(
TARGETS lp-gen-wrappers
RUNTIME DESTINATION
bin
LIBRARY DESTINATION
lib
ARCHIVE DESTINATION
lib
RUNTIME DESTINATION
${
CMAKE_INSTALL_BINDIR
}
LIBRARY DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
...
...
@@ -69,9 +69,9 @@ target_link_libraries(lp-auto-answer linphone)
install
(
TARGETS lp-auto-answer
RUNTIME DESTINATION
bin
LIBRARY DESTINATION
lib
ARCHIVE DESTINATION
lib
RUNTIME DESTINATION
${
CMAKE_INSTALL_BINDIR
}
LIBRARY DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
...
...
@@ -89,12 +89,8 @@ target_link_libraries(lp-sendmsg linphone)
install
(
TARGETS lp-sendmsg
RUNTIME DESTINATION
bin
LIBRARY DESTINATION
lib
ARCHIVE DESTINATION
lib
RUNTIME DESTINATION
${
CMAKE_INSTALL_BINDIR
}
LIBRARY DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
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