From beab264abd2d3d65a2257562c3ae855808853471 Mon Sep 17 00:00:00 2001 From: DanmeiChen <danmei.chen@belledonne-communications.com> Date: Fri, 14 Jun 2019 15:41:59 +0200 Subject: [PATCH] Feature/make bellesip framework --- build/osx/Info.plist.in | 43 +++++++++++++++++++++++++++++++++++++++++ src/CMakeLists.txt | 37 +++++++++++++++++++++++++++++------ 2 files changed, 74 insertions(+), 6 deletions(-) create mode 100644 build/osx/Info.plist.in diff --git a/build/osx/Info.plist.in b/build/osx/Info.plist.in new file mode 100644 index 00000000..d3204d02 --- /dev/null +++ b/build/osx/Info.plist.in @@ -0,0 +1,43 @@ + +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>English</string> + <key>CFBundleExecutable</key> + <string>${MACOSX_FRAMEWORK_NAME}</string> + <key>CFBundleGetInfoString</key> + <string>${MACOSX_BUNDLE_INFO_STRING}</string> + <key>CFBundleIconFile</key> + <string>${MACOSX_BUNDLE_ICON_FILE}</string> + <key>CFBundleIdentifier</key> + <string>${MACOSX_FRAMEWORK_IDENTIFIER}</string> + <key>LSMinimumSystemVersion</key> + <string>${MIN_OS}</string> + <key>MinimumOSVersion</key> + <string>${MIN_OS}</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleLongVersionString</key> + <string>${MACOSX_BUNDLE_LONG_VERSION_STRING}</string> + <key>CFBundleName</key> + <string>${MACOSX_BUNDLE_BUNDLE_NAME}</string> + <key>CFBundlePackageType</key> + <string>FMWK</string> + <key>CFBundleShortVersionString</key> + <string>${BELLE_SIP_VERSION}</string> + <key>CFBundleSignature</key> + <string>????</string> + <key>CFBundleVersion</key> + <string>${BELLE_SIP_VERSION}</string> + <key>CSResourcesFileMapped</key> + <true/> + <key>NSHumanReadableCopyright</key> + <string>${MACOSX_BUNDLE_COPYRIGHT}</string> + <key>NSPrincipalClass</key> + <string>NSApplication</string> + <key>NSHighResolutionCapable</key> + <string>True</string> +</dict> +</plist> diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c68ea0da..b036f132 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -221,6 +221,20 @@ if(ENABLE_SHARED) set_target_properties(bellesip PROPERTIES CXX_STANDARD 11 CXX_STANDARD_REQUIRED ON) target_include_directories(bellesip PUBLIC ${PUBLIC_INCLUDE_DIRS} PRIVATE ${PRIVATE_INCLUDE_DIRS}) target_link_libraries(bellesip PRIVATE ${LIBS}) + if(APPLE) + if(IOS) + set(MIN_OS ${LINPHONE_IOS_DEPLOYMENT_TARGET}) + else() + set(MIN_OS ${CMAKE_OSX_DEPLOYMENT_TARGET}) + endif() + set_target_properties(bellesip PROPERTIES + FRAMEWORK TRUE + MACOSX_FRAMEWORK_IDENTIFIER org.linphone.belle-sip + MACOSX_FRAMEWORK_INFO_PLIST "${CMAKE_SOURCE_DIR}/build/osx/Info.plist.in" + PUBLIC_HEADER "${BELLE_SIP_HEADER_FILES}" + ) + SET_TARGET_PROPERTIES(bellesip PROPERTIES OUTPUT_NAME belle-sip) + endif() if(NOT "${LINK_FLAGS_STR}" STREQUAL "") set_target_properties(bellesip PROPERTIES LINK_FLAGS "${LINK_FLAGS_STR}") endif() @@ -232,13 +246,24 @@ if(ENABLE_SHARED) PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) endif() + + endif() + if(APPLE) + install(TARGETS bellesip EXPORT ${EXPORT_TARGETS_NAME}Targets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + FRAMEWORK DESTINATION Frameworks + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE + ) + else() + install(TARGETS bellesip 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() - install(TARGETS bellesip 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() #to avoid // build to generate code twice in // leading compilation issues. Might probably be done in a better way if (ENABLE_SHARED AND ENABLE_STATIC) -- GitLab