From 3115d8173fcaa11d7fd9177b0fbbf1a88239f858 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Fri, 4 Aug 2017 16:24:06 +0200 Subject: [PATCH] Separate build of objects in the src directory from ones in the coreapi directory. --- CMakeLists.txt | 1 + coreapi/CMakeLists.txt | 31 ++++++------------- src/CMakeLists.txt | 70 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 80 insertions(+), 22 deletions(-) create mode 100644 src/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 8d0ff54e5..17b86bbaa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -330,6 +330,7 @@ endif() add_subdirectory(include) add_subdirectory(java) +add_subdirectory(src) add_subdirectory(coreapi) add_subdirectory(share) if(ENABLE_CONSOLE_UI) diff --git a/coreapi/CMakeLists.txt b/coreapi/CMakeLists.txt index 03cf08acb..64284cfb7 100644 --- a/coreapi/CMakeLists.txt +++ b/coreapi/CMakeLists.txt @@ -34,19 +34,7 @@ if(ANDROID) endif() -set(LINPHONE_PRIVATE_HEADER_FILES - ../src/cpim/cpim.h - ../src/cpim/header/cpim-core-headers.h - ../src/cpim/header/cpim-generic-header.h - ../src/cpim/header/cpim-header-p.h - ../src/cpim/header/cpim-header.h - ../src/cpim/message/cpim-message.h - ../src/cpim/parser/cpim-grammar.h - ../src/cpim/parser/cpim-parser.h - ../src/object/object.h - ../src/object/singleton.h - ../src/utils/general.h - ../src/utils/utils.h +list(APPEND LINPHONE_PRIVATE_HEADER_FILES bellesip_sal/sal_impl.h carddav.h conference_private.h @@ -132,13 +120,6 @@ set(LINPHONE_SOURCE_FILES_C vtables.c ) set(LINPHONE_SOURCE_FILES_CXX - ../src/cpim/header/cpim-core-headers.cpp - ../src/cpim/header/cpim-generic-header.cpp - ../src/cpim/header/cpim-header.cpp - ../src/cpim/message/cpim-message.cpp - ../src/cpim/parser/cpim-grammar.cpp - ../src/cpim/parser/cpim-parser.cpp - ../src/utils/utils.cpp conference.cc ) if(ANDROID) @@ -224,7 +205,10 @@ bc_apply_compile_flags(LINPHONE_SOURCE_FILES_CXX STRICT_OPTIONS_CPP STRICT_OPTIO bc_apply_compile_flags(LINPHONE_SOURCE_FILES_OBJC STRICT_OPTIONS_CPP STRICT_OPTIONS_OBJC) if(ENABLE_STATIC) - add_library(linphone-static STATIC ${LINPHONE_HEADER_FILES} ${LINPHONE_PRIVATE_HEADER_FILES} ${LINPHONE_SOURCE_FILES_C} ${LINPHONE_SOURCE_FILES_CXX} ${LINPHONE_SOURCE_FILES_OBJC}) + add_library(linphone-static STATIC ${LINPHONE_HEADER_FILES} ${LINPHONE_PRIVATE_HEADER_FILES} + ${LINPHONE_SOURCE_FILES_C} ${LINPHONE_SOURCE_FILES_CXX} ${LINPHONE_SOURCE_FILES_OBJC} + $ + ) set_target_properties(linphone-static PROPERTIES OUTPUT_NAME linphone) add_dependencies(linphone-static liblinphone-git-version) target_include_directories(linphone-static PUBLIC ${LINPHONE_INCLUDE_DIRS}) @@ -241,7 +225,10 @@ if(ENABLE_STATIC) ) endif() if(ENABLE_SHARED) - add_library(linphone SHARED ${LINPHONE_HEADER_FILES} ${LINPHONE_PRIVATE_HEADER_FILES} ${LINPHONE_SOURCE_FILES_C} ${LINPHONE_SOURCE_FILES_CXX} ${LINPHONE_SOURCE_FILES_OBJC}) + add_library(linphone SHARED ${LINPHONE_HEADER_FILES} ${LINPHONE_PRIVATE_HEADER_FILES} + ${LINPHONE_SOURCE_FILES_C} ${LINPHONE_SOURCE_FILES_CXX} ${LINPHONE_SOURCE_FILES_OBJC} + $ + ) if(IOS) if(IOS) set(MIN_OS ${LINPHONE_IOS_DEPLOYMENT_TARGET}) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 000000000..d886ea863 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,70 @@ +############################################################################ +# CMakeLists.txt +# Copyright (C) 2017 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +############################################################################ + +set(LINPHONE_CXX_OBJECTS_PRIVATE_HEADER_FILES + cpim/cpim.h + cpim/header/cpim-core-headers.h + cpim/header/cpim-generic-header.h + cpim/header/cpim-header-p.h + cpim/header/cpim-header.h + cpim/message/cpim-message.h + cpim/parser/cpim-grammar.h + cpim/parser/cpim-parser.h + object/object.h + object/singleton.h + utils/general.h + utils/utils.h +) + +set(LINPHONE_CXX_OBJECTS_SOURCE_FILES + cpim/header/cpim-core-headers.cpp + cpim/header/cpim-generic-header.cpp + cpim/header/cpim-header.cpp + cpim/message/cpim-message.cpp + cpim/parser/cpim-grammar.cpp + cpim/parser/cpim-parser.cpp + utils/utils.cpp +) + +set(LINPHONE_CXX_OBJECTS_DEFINITIONS "-DLIBLINPHONE_EXPORTS") +set(LINPHONE_CXX_OBJECTS_INCLUDE_DIRS ${BELR_INCLUDE_DIRS}) + +set(LINPHONE_PRIVATE_HEADER_FILES) +foreach(header ${LINPHONE_CXX_OBJECTS_PRIVATE_HEADER_FILES}) + list(APPEND LINPHONE_PRIVATE_HEADER_FILES "${CMAKE_CURRENT_SOURCE_DIR}/${header}") +endforeach() +set(LINPHONE_PRIVATE_HEADER_FILES ${LINPHONE_PRIVATE_HEADER_FILES} PARENT_SCOPE) + +bc_apply_compile_flags(LINPHONE_CXX_OBJECTS_SOURCE_FILES STRICT_OPTIONS_CPP STRICT_OPTIONS_CXX) + +if(ENABLE_STATIC) + add_library(linphone-cxx-objects-static OBJECT ${LINPHONE_CXX_OBJECTS_PRIVATE_HEADER_FILES} ${LINPHONE_CXX_OBJECTS_SOURCE_FILES}) + target_compile_definitions(linphone-cxx-objects-static PRIVATE ${LINPHONE_CXX_OBJECTS_DEFINITIONS}) + target_include_directories(linphone-cxx-objects-static PRIVATE ${LINPHONE_CXX_OBJECTS_INCLUDE_DIRS}) +endif() + +if(ENABLE_SHARED) + add_library(linphone-cxx-objects OBJECT ${LINPHONE_CXX_OBJECTS_PRIVATE_HEADER_FILES} ${LINPHONE_CXX_OBJECTS_SOURCE_FILES}) + target_compile_definitions(linphone-cxx-objects PRIVATE ${LINPHONE_CXX_OBJECTS_DEFINITIONS}) + target_include_directories(linphone-cxx-objects PRIVATE ${LINPHONE_CXX_OBJECTS_INCLUDE_DIRS}) + target_compile_options(linphone-cxx-objects PRIVATE "-fPIC") +endif()