Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
ZLMediaKit
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
张翔宇
ZLMediaKit
Commits
0670f9f6
Commit
0670f9f6
authored
Dec 16, 2019
by
xiongziliang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
更新ios编译方法
parent
5322a576
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
4 行增加
和
237 行删除
+4
-237
README.md
+2
-8
README_CN.md
+2
-2
cmake/FindZLTOOLKIT.cmake
+0
-18
cmake/iOS.cmake
+0
-209
cmake/ios.toolchain.cmake
+0
-0
没有找到文件。
README.md
查看文件 @
0670f9f6
...
...
@@ -184,21 +184,15 @@ git submodule update --init
Same with Build on macOS
- Guidance
```
cd ZLMediaKit
./build_for_ios.sh
```
- You can
also generate Xcode projects and recompile them
:
- You can
generate Xcode projects and recompile them , [learn more](https://github.com/leetal/ios-cmake)
:
```
cd ZLMediaKit
mkdir -p build
cd build
# Generate Xcode project, project file is in build directory
cmake .. -
DCMAKE_TOOLCHAIN_FILE=../cmake/iOS.cmake -DIOS_PLATFORM=SIMULATOR64 -G "Xcode"
cmake .. -
G Xcode -DCMAKE_TOOLCHAIN_FILE=../cmake/ios.toolchain.cmake -DPLATFORM=OS64COMBINED
```
...
...
README_CN.md
查看文件 @
0670f9f6
...
...
@@ -196,14 +196,14 @@ git submodule update --init
cd ZLMediaKit
./build_for_ios.sh
```
- 你也可以生成Xcode工程再编译
:
- 你也可以生成Xcode工程再编译
,[了解更多](https://github.com/leetal/ios-cmake):
```
cd ZLMediaKit
mkdir -p build
cd build
# 生成Xcode工程,工程文件在build目录下
cmake .. -
DCMAKE_TOOLCHAIN_FILE=../cmake/iOS.cmake -DIOS_PLATFORM=SIMULATOR64 -G "Xcode"
cmake .. -
G Xcode -DCMAKE_TOOLCHAIN_FILE=../cmake/ios.toolchain.cmake -DPLATFORM=OS64COMBINED
```
## 编译(Android)
...
...
cmake/FindZLTOOLKIT.cmake
deleted
100644 → 0
查看文件 @
5322a576
find_path
(
ZLTOOLKIT_INCLUDE_DIR
NAMES Network/Socket.h
PATHS
${
PROJECT_SOURCE_DIR
}
/../ZLToolKit/src
$ENV{HOME}/ZLToolKit/include
)
find_library
(
ZLTOOLKIT_LIBRARY
NAMES ZLToolKit
PATHS
${
PROJECT_SOURCE_DIR
}
/../ZLToolKit/build/lib
$ENV{HOME}/ZLToolKit/lib
)
set
(
ZLTOOLKIT_LIBRARIES
${
ZLTOOLKIT_LIBRARY
}
)
set
(
ZLTOOLKIT_INCLUDE_DIRS
${
ZLTOOLKIT_INCLUDE_DIR
}
)
include
(
FindPackageHandleStandardArgs
)
find_package_handle_standard_args
(
ZLTOOLKIT DEFAULT_MSG ZLTOOLKIT_LIBRARY ZLTOOLKIT_INCLUDE_DIR
)
cmake/iOS.cmake
deleted
100644 → 0
查看文件 @
5322a576
# This file is based off of the Platform/Darwin.cmake and Platform/UnixPaths.cmake
# files which are included with CMake 2.8.4
# It has been altered for iOS development
# Options:
#
# IOS_PLATFORM = OS (default) or SIMULATOR or SIMULATOR64
# This decides if SDKS will be selected from the iPhoneOS.platform or iPhoneSimulator.platform folders
# OS - the default, used to build for iPhone and iPad physical devices, which have an arm arch.
# SIMULATOR - used to build for the Simulator platforms, which have an x86 arch.
#
# CMAKE_IOS_DEVELOPER_ROOT = automatic(default) or /path/to/platform/Developer folder
# By default this location is automatcially chosen based on the IOS_PLATFORM value above.
# If set manually, it will override the default location and force the user of a particular Developer Platform
#
# CMAKE_IOS_SDK_ROOT = automatic(default) or /path/to/platform/Developer/SDKs/SDK folder
# By default this location is automatcially chosen based on the CMAKE_IOS_DEVELOPER_ROOT value.
# In this case it will always be the most up-to-date SDK found in the CMAKE_IOS_DEVELOPER_ROOT path.
# If set manually, this will force the use of a specific SDK version
# Macros:
#
# set_xcode_property (TARGET XCODE_PROPERTY XCODE_VALUE)
# A convenience macro for setting xcode specific properties on targets
# example: set_xcode_property (myioslib IPHONEOS_DEPLOYMENT_TARGET "3.1")
#
# find_host_package (PROGRAM ARGS)
# A macro used to find executable programs on the host system, not within the iOS environment.
# Thanks to the android-cmake project for providing the command
# Standard settings
set
(
CMAKE_SYSTEM_NAME Darwin
)
set
(
CMAKE_SYSTEM_VERSION 1
)
set
(
UNIX True
)
set
(
APPLE True
)
set
(
IOS True
)
# Required as of cmake 2.8.10
set
(
CMAKE_OSX_DEPLOYMENT_TARGET
""
CACHE STRING
"Force unset of the deployment target for iOS"
FORCE
)
# Determine the cmake host system version so we know where to find the iOS SDKs
find_program
(
CMAKE_UNAME uname /bin /usr/bin /usr/local/bin
)
if
(
CMAKE_UNAME
)
exec_program
(
uname ARGS -r OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_VERSION
)
string
(
REGEX REPLACE
"^([0-9]+)
\\
.([0-9]+).*$"
"
\\
1"
DARWIN_MAJOR_VERSION
"
${
CMAKE_HOST_SYSTEM_VERSION
}
"
)
endif
(
CMAKE_UNAME
)
# Force the compilers to gcc for iOS
include
(
CMakeForceCompiler
)
#CMAKE_FORCE_C_COMPILER (/usr/bin/gcc Apple)
set
(
CMAKE_C_COMPILER /usr/bin/clang
)
#CMAKE_FORCE_CXX_COMPILER (/usr/bin/g++ Apple)
set
(
CMAKE_CXX_COMPILER /usr/bin/clang++
)
set
(
CMAKE_AR ar CACHE FILEPATH
""
FORCE
)
# Skip the platform compiler checks for cross compiling
set
(
CMAKE_CXX_COMPILER_WORKS TRUE
)
set
(
CMAKE_C_COMPILER_WORKS TRUE
)
# All iOS/Darwin specific settings - some may be redundant
set
(
CMAKE_SHARED_LIBRARY_PREFIX
"lib"
)
set
(
CMAKE_SHARED_LIBRARY_SUFFIX
".dylib"
)
set
(
CMAKE_SHARED_MODULE_PREFIX
"lib"
)
set
(
CMAKE_SHARED_MODULE_SUFFIX
".so"
)
set
(
CMAKE_MODULE_EXISTS 1
)
set
(
CMAKE_DL_LIBS
""
)
set
(
CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG
"-compatibility_version "
)
set
(
CMAKE_C_OSX_CURRENT_VERSION_FLAG
"-current_version "
)
set
(
CMAKE_CXX_OSX_COMPATIBILITY_VERSION_FLAG
"
${
CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG
}
"
)
set
(
CMAKE_CXX_OSX_CURRENT_VERSION_FLAG
"
${
CMAKE_C_OSX_CURRENT_VERSION_FLAG
}
"
)
# Hidden visibilty is required for cxx on iOS
set
(
CMAKE_C_FLAGS_INIT
""
)
set
(
CMAKE_CXX_FLAGS_INIT
"-fvisibility=hidden -fvisibility-inlines-hidden"
)
set
(
CMAKE_C_LINK_FLAGS
"-Wl,-search_paths_first
${
CMAKE_C_LINK_FLAGS
}
"
)
set
(
CMAKE_CXX_LINK_FLAGS
"-Wl,-search_paths_first
${
CMAKE_CXX_LINK_FLAGS
}
"
)
set
(
CMAKE_PLATFORM_HAS_INSTALLNAME 1
)
set
(
CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS
"-dynamiclib -headerpad_max_install_names"
)
set
(
CMAKE_SHARED_MODULE_CREATE_C_FLAGS
"-bundle -headerpad_max_install_names"
)
set
(
CMAKE_SHARED_MODULE_LOADER_C_FLAG
"-Wl,-bundle_loader,"
)
set
(
CMAKE_SHARED_MODULE_LOADER_CXX_FLAG
"-Wl,-bundle_loader,"
)
set
(
CMAKE_FIND_LIBRARY_SUFFIXES
".dylib"
".so"
".a"
)
# hack: if a new cmake (which uses CMAKE_INSTALL_NAME_TOOL) runs on an old build tree
# (where install_name_tool was hardcoded) and where CMAKE_INSTALL_NAME_TOOL isn't in the cache
# and still cmake didn't fail in CMakeFindBinUtils.cmake (because it isn't rerun)
# hardcode CMAKE_INSTALL_NAME_TOOL here to install_name_tool, so it behaves as it did before, Alex
if
(
NOT DEFINED CMAKE_INSTALL_NAME_TOOL
)
find_program
(
CMAKE_INSTALL_NAME_TOOL install_name_tool
)
endif
(
NOT DEFINED CMAKE_INSTALL_NAME_TOOL
)
# Setup iOS platform unless specified manually with IOS_PLATFORM
if
(
NOT DEFINED IOS_PLATFORM
)
set
(
IOS_PLATFORM
"OS"
)
endif
(
NOT DEFINED IOS_PLATFORM
)
set
(
IOS_PLATFORM
${
IOS_PLATFORM
}
CACHE STRING
"Type of iOS Platform"
)
# Setup building for arm64 or not
if
(
NOT DEFINED BUILD_ARM64
)
set
(
BUILD_ARM64 true
)
endif
(
NOT DEFINED BUILD_ARM64
)
set
(
BUILD_ARM64
${
BUILD_ARM64
}
CACHE STRING
"Build arm64 arch or not"
)
# Check the platform selection and setup for developer root
if
(
${
IOS_PLATFORM
}
STREQUAL
"OS"
)
set
(
IOS_PLATFORM_LOCATION
"iPhoneOS.platform"
)
# This causes the installers to properly locate the output libraries
set
(
CMAKE_XCODE_EFFECTIVE_PLATFORMS
"-iphoneos"
)
elseif
(
${
IOS_PLATFORM
}
STREQUAL
"SIMULATOR"
)
set
(
SIMULATOR true
)
set
(
IOS_PLATFORM_LOCATION
"iPhoneSimulator.platform"
)
# This causes the installers to properly locate the output libraries
set
(
CMAKE_XCODE_EFFECTIVE_PLATFORMS
"-iphonesimulator"
)
elseif
(
${
IOS_PLATFORM
}
STREQUAL
"SIMULATOR64"
)
set
(
SIMULATOR true
)
set
(
IOS_PLATFORM_LOCATION
"iPhoneSimulator.platform"
)
# This causes the installers to properly locate the output libraries
set
(
CMAKE_XCODE_EFFECTIVE_PLATFORMS
"-iphonesimulator"
)
else
(
${
IOS_PLATFORM
}
STREQUAL
"OS"
)
message
(
FATAL_ERROR
"Unsupported IOS_PLATFORM value selected. Please choose OS or SIMULATOR"
)
endif
(
${
IOS_PLATFORM
}
STREQUAL
"OS"
)
# Setup iOS developer location unless specified manually with CMAKE_IOS_DEVELOPER_ROOT
# Note Xcode 4.3 changed the installation location, choose the most recent one available
exec_program
(
/usr/bin/xcode-select ARGS -print-path OUTPUT_VARIABLE CMAKE_XCODE_DEVELOPER_DIR
)
set
(
XCODE_POST_43_ROOT
"
${
CMAKE_XCODE_DEVELOPER_DIR
}
/Platforms/
${
IOS_PLATFORM_LOCATION
}
/Developer"
)
set
(
XCODE_PRE_43_ROOT
"/Developer/Platforms/
${
IOS_PLATFORM_LOCATION
}
/Developer"
)
if
(
NOT DEFINED CMAKE_IOS_DEVELOPER_ROOT
)
if
(
EXISTS
${
XCODE_POST_43_ROOT
}
)
set
(
CMAKE_IOS_DEVELOPER_ROOT
${
XCODE_POST_43_ROOT
}
)
elseif
(
EXISTS
${
XCODE_PRE_43_ROOT
}
)
set
(
CMAKE_IOS_DEVELOPER_ROOT
${
XCODE_PRE_43_ROOT
}
)
endif
(
EXISTS
${
XCODE_POST_43_ROOT
}
)
endif
(
NOT DEFINED CMAKE_IOS_DEVELOPER_ROOT
)
set
(
CMAKE_IOS_DEVELOPER_ROOT
${
CMAKE_IOS_DEVELOPER_ROOT
}
CACHE PATH
"Location of iOS Platform"
)
# Find and use the most recent iOS sdk unless specified manually with CMAKE_IOS_SDK_ROOT
if
(
NOT DEFINED CMAKE_IOS_SDK_ROOT
)
file
(
GLOB _CMAKE_IOS_SDKS
"
${
CMAKE_IOS_DEVELOPER_ROOT
}
/SDKs/*"
)
if
(
_CMAKE_IOS_SDKS
)
list
(
SORT _CMAKE_IOS_SDKS
)
list
(
REVERSE _CMAKE_IOS_SDKS
)
list
(
GET _CMAKE_IOS_SDKS 0 CMAKE_IOS_SDK_ROOT
)
else
(
_CMAKE_IOS_SDKS
)
message
(
FATAL_ERROR
"No iOS SDK's found in default search path
${
CMAKE_IOS_DEVELOPER_ROOT
}
. Manually set CMAKE_IOS_SDK_ROOT or install the iOS SDK."
)
endif
(
_CMAKE_IOS_SDKS
)
message
(
STATUS
"Toolchain using default iOS SDK:
${
CMAKE_IOS_SDK_ROOT
}
"
)
endif
(
NOT DEFINED CMAKE_IOS_SDK_ROOT
)
set
(
CMAKE_IOS_SDK_ROOT
${
CMAKE_IOS_SDK_ROOT
}
CACHE PATH
"Location of the selected iOS SDK"
)
# Set the sysroot default to the most recent SDK
set
(
CMAKE_OSX_SYSROOT
${
CMAKE_IOS_SDK_ROOT
}
CACHE PATH
"Sysroot used for iOS support"
)
# set the architecture for iOS
if
(
${
IOS_PLATFORM
}
STREQUAL
"OS"
)
set
(
IOS_ARCH armv7 armv7s arm64
)
elseif
(
${
IOS_PLATFORM
}
STREQUAL
"SIMULATOR"
)
set
(
IOS_ARCH i386
)
elseif
(
${
IOS_PLATFORM
}
STREQUAL
"SIMULATOR64"
)
set
(
IOS_ARCH x86_64
)
endif
(
${
IOS_PLATFORM
}
STREQUAL
"OS"
)
set
(
CMAKE_OSX_ARCHITECTURES
${
IOS_ARCH
}
CACHE string
"Build architecture for iOS"
)
# Set the find root to the iOS developer roots and to user defined paths
set
(
CMAKE_FIND_ROOT_PATH
${
CMAKE_IOS_DEVELOPER_ROOT
}
${
CMAKE_IOS_SDK_ROOT
}
${
CMAKE_PREFIX_PATH
}
CACHE string
"iOS find search path root"
)
# default to searching for frameworks first
set
(
CMAKE_FIND_FRAMEWORK FIRST
)
# set up the default search directories for frameworks
set
(
CMAKE_SYSTEM_FRAMEWORK_PATH
${
CMAKE_IOS_SDK_ROOT
}
/System/Library/Frameworks
${
CMAKE_IOS_SDK_ROOT
}
/System/Library/PrivateFrameworks
${
CMAKE_IOS_SDK_ROOT
}
/Developer/Library/Frameworks
)
# only search the iOS sdks, not the remainder of the host filesystem
set
(
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY
)
# This little macro lets you set any XCode specific property
macro
(
set_xcode_property TARGET XCODE_PROPERTY XCODE_VALUE
)
set_property
(
TARGET
${
TARGET
}
PROPERTY XCODE_ATTRIBUTE_
${
XCODE_PROPERTY
}
${
XCODE_VALUE
}
)
endmacro
(
set_xcode_property
)
# This macro lets you find executable programs on the host system
macro
(
find_host_package
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER
)
set
(
IOS FALSE
)
find_package
(
${
ARGN
}
)
set
(
IOS TRUE
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY
)
endmacro
(
find_host_package
)
cmake/ios.toolchain.cmake
0 → 100644
查看文件 @
0670f9f6
差异被折叠。
点击展开。
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论