Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleDetection
提交
43dde935
P
PaddleDetection
项目概览
PaddlePaddle
/
PaddleDetection
大约 1 年 前同步成功
通知
695
Star
11112
Fork
2696
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
184
列表
看板
标记
里程碑
合并请求
40
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleDetection
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
184
Issue
184
列表
看板
标记
里程碑
合并请求
40
合并请求
40
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
43dde935
编写于
8月 29, 2017
作者:
L
Liu Yiqun
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Refine the cross-compiling toolchain file for iOS.
上级
11cb75f8
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
274 addition
and
167 deletion
+274
-167
cmake/cross_compiling/ios.cmake
cmake/cross_compiling/ios.cmake
+263
-159
cmake/flags.cmake
cmake/flags.cmake
+4
-2
cmake/system.cmake
cmake/system.cmake
+7
-6
未找到文件。
cmake/cross_compiling/ios.cmake
浏览文件 @
43dde935
# This file is based off of the Platform/Darwin.cmake and Platform/UnixPaths.cmake
# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserve.
# files which are included with CMake 2.8.4
#
# It has been altered for iOS development
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# Options:
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# This is a toolchain file for cross-compiling for iOS, and the
# configuration largely refers to public toolchain file:
# https://raw.githubusercontent.com/leetal/ios-cmake/master/ios.toolchain.cmake
# and
# https://github.com/cristeab/ios-cmake
#
# Supports options:
# IOS_PLATFORM = OS (default) or SIMULATOR
# IOS_PLATFORM = OS (default) or SIMULATOR
# This decides if SDKS will be selected from the iPhoneOS.platform or iPhoneSimulator.platform folders
# 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.
# 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.
# SIMULATOR - used to build for the Simulator platforms, which have an x86 arch.
#
# IOS_ARCH
# CMAKE_IOS_DEVELOPER_ROOT = automatic(default) or /path/to/platform/Developer folder
# The archectures wanted to support, such "arm64", "armv7;arm64"
# IOS_DEPLOYMENT_TARGET
# The minimum iOS deployment version, such as "7.0"
# IOS_ENABLE_BITCODE = ON (default) or OFF
# 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.
# 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
# If set manually, it will override the default location and force the user of a particular Developer Platform
#
# IOS_SDK_ROOT = automatic(default) or /path/to/platform/Developer/SDKs/SDK folder
# CMAKE_IOS_SDK_ROOT = automatic(default) or /path/to/platform/Developer/SDKs/SDK folder
# By default this location is automatcially chosen based on the IOS_DEVELOPER_ROOT value.
# 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 IOS_DEVELOPER_ROOT path.
# 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
# If set manually, this will force the use of a specific SDK version
# Macros:
# Macros:
#
# set_xcode_property (TARGET XCODE_PROPERTY XCODE_VALUE)
# set_xcode_property (TARGET XCODE_PROPERTY XCODE_VALUE)
# A convenience macro for setting xcode specific properties on targets
# A convenience macro for setting xcode specific properties on targets
# example: set_xcode_property (myioslib IPHONEOS_DEPLOYMENT_TARGET "3.1")
# example: set_xcode_property (myioslib IPHONEOS_DEPLOYMENT_TARGET "3.1")
#
# find_host_package (PROGRAM ARGS)
# find_host_package (PROGRAM ARGS)
# A macro used to find executable programs on the host system, not within the iOS environment.
# 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
# Thanks to the android-cmake project for providing the command
# Standard settings
if
(
NOT IOS
)
# set (CMAKE_SYSTEM_NAME Darwin)
return
()
set
(
CMAKE_SYSTEM_VERSION 1
)
endif
()
set
(
UNIX True
)
set
(
APPLE True
)
set
(
CMAKE_SYSTEM_NAME Darwin
)
set
(
IOS True
)
#set(UNIX ON)
#set(APPLE ON)
# Get the Xcode version being used.
execute_process
(
COMMAND xcodebuild -version
OUTPUT_VARIABLE XCODE_VERSION
RESULT_VARIABLE XCODE_VERSION_RESULT
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE
)
if
(
NOT
${
XCODE_VERSION_RESULT
}
)
string
(
REGEX MATCH
"Xcode [0-9
\\
.]+"
XCODE_VERSION
"
${
XCODE_VERSION
}
"
)
string
(
REGEX REPLACE
"Xcode ([0-9
\\
.]+)"
"
\\
1"
XCODE_VERSION
"
${
XCODE_VERSION
}
"
)
message
(
STATUS
"Building with Xcode version:
${
XCODE_VERSION
}
"
)
else
()
message
(
FATAL_ERROR
"Cannot execute xcodebuild, please check whether xcode is installed."
)
endif
()
# Required as of cmake 2.8.10
# Required as of cmake 2.8.10
set
(
CMAKE_OSX_DEPLOYMENT_TARGET
""
CACHE STRING
"Force unset of the deployment target for iOS"
FORCE
)
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
set
(
CMAKE_C_COMPILER /usr/bin/gcc
)
set
(
CMAKE_CXX_COMPILER /usr/bin/g++
)
set
(
CMAKE_AR ar CACHE FILEPATH
""
FORCE
)
set
(
CMAKE_AR ar CACHE FILEPATH
""
FORCE
)
set
(
CMAKE_RANLIB ranlib CACHE FILEPATH
""
FORCE
)
set
(
CMAKE_RANLIB ranlib CACHE FILEPATH
""
FORCE
)
set
(
PKG_CONFIG_EXECUTABLE pkg-config CACHE FILEPATH
""
FORCE
)
set
(
PKG_CONFIG_EXECUTABLE pkg-config CACHE FILEPATH
""
FORCE
)
# Setup iOS platform unless specified manually with IOS_PLATFORM
# Setup iOS platform unless specified manually with IOS_PLATFORM
if
(
NOT DEFINED IOS_PLATFORM
)
if
(
NOT DEFINED IOS_PLATFORM
)
set
(
IOS_PLATFORM
"OS"
)
set
(
IOS_PLATFORM
"OS"
)
endif
(
NOT DEFINED IOS_PLATFORM
)
endif
()
set
(
IOS_PLATFORM
${
IOS_PLATFORM
}
CACHE STRING
"Type of iOS Platform"
)
set
(
IOS_PLATFORM
${
IOS_PLATFORM
}
CACHE STRING
"Type of iOS Platform"
)
# Set the architecture for iOS
if
(
NOT DEFINED IOS_ARCH
)
if
(
IOS_PLATFORM STREQUAL
"OS"
)
set
(
IOS_ARCH
"armv7;armv7s;arm64"
)
elseif
(
IOS_PLATFORM STREQUAL
"SIMULATOR"
)
set
(
IOS_ARCH
"i386;x86_64"
)
elseif
(
IOS_PLATFORM STREQUAL
"WATCHOS"
)
set
(
IOS_ARCH armv7k
)
endif
()
endif
()
set
(
CMAKE_OSX_ARCHITECTURES
${
IOS_ARCH
}
CACHE string
"Build architecture for iOS"
)
# Specify minimum iOS deployment version
if
(
NOT DEFINED IOS_DEPLOYMENT_TARGET
)
set
(
IOS_DEPLOYMENT_TARGET
"7.0"
)
endif
()
set
(
IOS_DEPLOYMENT_TARGET
${
IOS_DEPLOYMENT_TARGET
}
CACHE STRING
"Minimum iOS version"
)
# Whether to enable bitcode
if
(
NOT DEFINED IOS_ENABLE_BITCODE
)
set
(
IOS_ENABLE_BITCODE ON
)
endif
()
set
(
IOS_ENABLE_BITCODE
${
IOS_ENABLE_BITCODE
}
CACHE BOOL
"Whether to enable bitcode"
)
# Check the platform selection and setup for developer root
# Check the platform selection and setup for developer root
if
(
${
IOS_PLATFORM
}
STREQUAL
"OS"
)
if
(
${
IOS_PLATFORM
}
STREQUAL
"OS"
)
set
(
IOS_PLATFORM_LOCATION
"iPhoneOS.platform"
)
set
(
IOS_PLATFORM_LOCATION
"iPhoneOS.platform"
)
set
(
XCODE_IOS_PLATFORM iphoneos
)
set
(
XCODE_IOS_PLATFORM iphoneos
)
# This causes the installers to properly locate the output libraries
# This causes the installers to properly locate the output libraries
set
(
CMAKE_XCODE_EFFECTIVE_PLATFORMS
"-iphoneos"
)
set
(
CMAKE_XCODE_EFFECTIVE_PLATFORMS
"-iphoneos"
)
elseif
(
${
IOS_PLATFORM
}
STREQUAL
"SIMULATOR"
)
elseif
(
${
IOS_PLATFORM
}
STREQUAL
"SIMULATOR"
)
set
(
SIMULATOR true
)
set
(
IOS_PLATFORM_LOCATION
"iPhoneSimulator.platform"
)
set
(
IOS_PLATFORM_LOCATION
"iPhoneSimulator.platform"
)
set
(
XCODE_IOS_PLATFORM iphonesimulator
)
set
(
XCODE_IOS_PLATFORM iphonesimulator
)
# This causes the installers to properly locate the output libraries
# This causes the installers to properly locate the output libraries
set
(
CMAKE_XCODE_EFFECTIVE_PLATFORMS
"-iphonesimulator"
)
set
(
CMAKE_XCODE_EFFECTIVE_PLATFORMS
"-iphonesimulator"
)
elseif
(
${
IOS_PLATFORM
}
STREQUAL
"WATCHOS"
)
elseif
(
${
IOS_PLATFORM
}
STREQUAL
"WATCHOS"
)
set
(
IOS_PLATFORM_LOCATION
"WatchOS.platform"
)
set
(
IOS_PLATFORM_LOCATION
"WatchOS.platform"
)
set
(
XCODE_IOS_PLATFORM watchos
)
set
(
XCODE_IOS_PLATFORM watchos
)
# This causes the installers to properly locate the output libraries
# This causes the installers to properly locate the output libraries
set
(
CMAKE_XCODE_EFFECTIVE_PLATFORMS
"-watchos"
)
set
(
CMAKE_XCODE_EFFECTIVE_PLATFORMS
"-watchos"
)
else
(
${
IOS_PLATFORM
}
STREQUAL
"OS"
)
else
(
${
IOS_PLATFORM
}
STREQUAL
"OS"
)
message
(
FATAL_ERROR
"Unsupported IOS_PLATFORM value selected. Please set to
\n
"
message
(
FATAL_ERROR
"
\t
OS, SIMULATOR, or WATCHOS."
)
"Unsupported IOS_PLATFORM value selected. "
endif
()
"Please choose OS, SIMULATOR, or WATCHOS."
)
endif
()
# Check iOS developer toolchain
if
(
NOT DEFINED IOS_DEVELOPER_ROOT
)
# All iOS/Darwin specific settings - some may be redundant
# Setup iOS developer location
set
(
CMAKE_SHARED_LIBRARY_PREFIX
"lib"
)
execute_process
(
COMMAND xcode-select -print-path
set
(
CMAKE_SHARED_LIBRARY_SUFFIX
".dylib"
)
OUTPUT_VARIABLE XCODE_DEVELOPER_DIR
set
(
CMAKE_SHARED_MODULE_PREFIX
"lib"
)
RESULT_VARIABLE XCODE_DEVELOPER_DIR_RESULT
set
(
CMAKE_SHARED_MODULE_SUFFIX
".so"
)
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE
)
set
(
CMAKE_MODULE_EXISTS 1
)
# Xcode 4.3 changed the installation location, choose the most recent one available
set
(
CMAKE_DL_LIBS
""
)
if
(
${
XCODE_VERSION
}
VERSION_LESS
"4.3.0"
)
set
(
IOS_DEVELOPER_ROOT
"/Developer/Platforms/
${
IOS_PLATFORM_LOCATION
}
/Developer"
)
set
(
CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG
"-compatibility_version "
)
else
()
set
(
CMAKE_C_OSX_CURRENT_VERSION_FLAG
"-current_version "
)
set
(
IOS_DEVELOPER_ROOT
"
${
XCODE_DEVELOPER_DIR
}
/Platforms/
${
IOS_PLATFORM_LOCATION
}
/Developer"
)
set
(
CMAKE_CXX_OSX_COMPATIBILITY_VERSION_FLAG
"
${
CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG
}
"
)
endif
()
set
(
CMAKE_CXX_OSX_CURRENT_VERSION_FLAG
"
${
CMAKE_C_OSX_CURRENT_VERSION_FLAG
}
"
)
endif
()
if
(
EXISTS
${
IOS_DEVELOPER_ROOT
}
)
if
(
IOS_DEPLOYMENT_TARGET
)
set
(
IOS_DEVELOPER_ROOT
${
IOS_DEVELOPER_ROOT
}
CACHE PATH
"Location of iOS Platform"
)
set
(
XCODE_IOS_PLATFORM_VERSION_FLAGS
"-m
${
XCODE_IOS_PLATFORM
}
-version-min=
${
IOS_DEPLOYMENT_TARGET
}
"
)
else
()
message
(
FATAL_ERROR
"Invalid IOS_DEVELOPER_ROOT:
${
IOS_DEVELOPER_ROOT
}
does not exist."
)
endif
()
endif
()
# Check iOS SDK
if
(
NOT DEFINED IOS_SDK_ROOT
)
# Find and use the most recent iOS sdk
file
(
GLOB IOS_SDK_LISTS
"
${
IOS_DEVELOPER_ROOT
}
/SDKs/*"
)
if
(
IOS_SDK_LISTS
)
list
(
SORT IOS_SDK_LISTS
)
list
(
REVERSE IOS_SDK_LISTS
)
list
(
GET IOS_SDK_LISTS 0 IOS_SDK_ROOT
)
else
(
IOS_SDK_LISTS
)
message
(
FATAL_ERROR
"No iOS SDK's found in default search path
${
IOS_DEVELOPER_ROOT
}
."
" Please manually set IOS_SDK_ROOT or install the iOS SDK."
)
endif
(
IOS_SDK_LISTS
)
endif
()
if
(
EXISTS
${
IOS_SDK_ROOT
}
)
set
(
CMAKE_IOS_SDK_ROOT
${
CMAKE_IOS_SDK_ROOT
}
CACHE PATH
"Location of the selected iOS SDK"
)
message
(
STATUS
"iOS toolchain:
${
IOS_SDK_ROOT
}
"
)
else
()
message
(
FATAL_ERROR
"Invalid IOS_SDK_ROOT:
${
IOS_SDK_ROOT
}
does not exist."
)
endif
()
# Set the sysroot default to the most recent SDK
set
(
CMAKE_OSX_SYSROOT
${
IOS_SDK_ROOT
}
CACHE PATH
"Sysroot used for iOS support"
)
# Get version of iOS SDK
execute_process
(
COMMAND xcodebuild -sdk
${
CMAKE_OSX_SYSROOT
}
-version SDKVersion
OUTPUT_VARIABLE IOS_SDK_VERSION
RESULT_VARIABLE IOS_SDK_VERSION_RESULT
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE
)
if
(
${
IOS_SDK_VERSION_RESULT
}
)
string
(
REGEX MATCH
"(([0-9]+)
\\
.)+([0-9]+)"
IOS_SDK_VERSION
"
${
IOS_SDK_ROOT
}
"
)
endif
()
if
(
NOT IOS_SDK_VERSION
)
message
(
WARNING
"Cannot get SDK's version."
)
set
(
IOS_SDK_VERSION 1
)
endif
()
set
(
CMAKE_SYSTEM_VERSION
${
IOS_SDK_VERSION
}
)
# Find the C & C++ compilers for the specified SDK.
if
(
NOT CMAKE_C_COMPILER
)
# Default to use clang
execute_process
(
COMMAND xcrun -sdk
${
CMAKE_OSX_SYSROOT
}
-find clang
OUTPUT_VARIABLE IOS_C_COMPILER
RESULT_VARIABLE IOS_C_COMPILER_RESULT
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE
)
if
(
${
IOS_C_COMPILER_RESULT
}
)
get_filename_component
(
IOS_C_COMPILER clang PROGRAM
)
endif
()
else
(
NOT CMAKE_C_COMPILER
)
# User can set it in cmake command
get_filename_component
(
IOS_C_COMPILER
${
CMAKE_C_COMPILER
}
PROGRAM
)
endif
(
NOT CMAKE_C_COMPILER
)
if
(
NOT EXISTS
${
IOS_C_COMPILER
}
)
message
(
FATAL_ERROR
"Cannot find C compiler:
${
IOS_C_COMPILER
}
"
)
endif
()
if
(
NOT CMAKE_CXX_COMPILER
)
# Default to use clang++
execute_process
(
COMMAND xcrun -sdk
${
CMAKE_OSX_SYSROOT
}
-find clang++
OUTPUT_VARIABLE IOS_CXX_COMPILER
RESULT_VARIABLE IOS_CXX_COMPILER_RESULT
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE
)
if
(
${
IOS_CXX_COMPILER_RESULT
}
)
get_filename_component
(
IOS_CXX_COMPILER clang++ PROGRAM
)
endif
()
else
(
NOT CMAKE_CXX_COMPILER
)
# User can set it in cmake command
get_filename_component
(
IOS_CXX_COMPILER
${
CMAKE_CXX_COMPILER
}
PROGRAM
)
endif
(
NOT CMAKE_CXX_COMPILER
)
if
(
NOT EXISTS
${
IOS_CXX_COMPILER
}
)
message
(
FATAL_ERROR
"Cannot find CXX compiler:
${
IOS_CXX_COMPILER
}
"
)
endif
()
set
(
CMAKE_C_COMPILER
${
IOS_C_COMPILER
}
CACHE PATH
"C compiler"
FORCE
)
set
(
CMAKE_CXX_COMPILER
${
IOS_CXX_COMPILER
}
CACHE PATH
"CXX compiler"
FORCE
)
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
}
"
)
# Set iOS specific C/C++ flags
if
(
IOS_PLATFORM STREQUAL
"OS"
)
if
(
XCODE_VERSION VERSION_LESS
"7.0"
)
set
(
XCODE_IOS_PLATFORM_VERSION_FLAGS
"-mios-version-min=
${
IOS_DEPLOYMENT_TARGET
}
"
)
else
()
# Xcode 7.0+ uses flags we can build directly from XCODE_IOS_PLATFORM.
set
(
XCODE_IOS_PLATFORM_VERSION_FLAGS
"-m
${
XCODE_IOS_PLATFORM
}
-version-min=
${
IOS_DEPLOYMENT_TARGET
}
"
)
endif
()
else
()
set
(
XCODE_IOS_FLATFORM_VERSION_FLAGS
"-mios-simulator-version-min=
${
IOS_DEPLOYMENT_TARGET
}
"
)
endif
()
if
(
IOS_ENABLE_BITCODE
)
set
(
XCODE_IOS_BITCODE_FLAGS
"
${
IOS_COMPILER_FLAGS
}
-fembed-bitcode"
)
else
()
set
(
XCODE_IOS_BITCODE_FLAGS
""
)
endif
()
set
(
IOS_COMPILER_FLAGS
"
${
XCODE_IOS_PLATFORM_VERSION_FLAGS
}
${
XCODE_IOS_BITCODE_FLAGS
}
"
)
# Hidden visibilty is required for cxx on iOS
# Hidden visibilty is required for cxx on iOS
set
(
CMAKE_C_FLAGS_INIT
"
${
XCODE_IOS_PLATFORM_VERSION_FLAGS
}
"
)
set
(
CMAKE_C_FLAGS
"
${
IOS_COMPILER_FLAGS
}
${
CMAKE_C_FLAGS
}
"
CACHE STRING
"C flags
"
)
set
(
CMAKE_CXX_FLAGS_INIT
"
${
XCODE_IOS_PLATFORM_VERSION_FLAGS
}
-fvisibility-inlines-hidden
"
)
set
(
CMAKE_CXX_FLAGS
"
${
IOS_COMPILER_FLAGS
}
-fvisibility-inlines-hidden
${
CMAKE_CXX_FLAGS
}
"
CACHE STRING
"CXX flags
"
)
set
(
CMAKE_C_LINK_FLAGS
"
${
XCODE_IOS_PLATFORM_VERSION_FLAGS
}
-Wl,-search_paths_first
${
CMAKE_C_LINK_FLAGS
}
"
)
set
(
CMAKE_C_LINK_FLAGS
"
${
XCODE_IOS_PLATFORM_VERSION_FLAGS
}
-Wl,-search_paths_first
${
CMAKE_C_LINK_FLAGS
}
"
)
set
(
CMAKE_CXX_LINK_FLAGS
"
${
XCODE_IOS_PLATFORM_VERSION_FLAGS
}
-Wl,-search_paths_first
${
CMAKE_CXX_LINK_FLAGS
}
"
)
set
(
CMAKE_CXX_LINK_FLAGS
"
${
XCODE_IOS_PLATFORM_VERSION_FLAGS
}
-Wl,-search_paths_first
${
CMAKE_CXX_LINK_FLAGS
}
"
)
set
(
CMAKE_PLATFORM_HAS_INSTALLNAME 1
)
set
(
CMAKE_PLATFORM_HAS_INSTALLNAME 1
)
set
(
CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS
"-dynamiclib -headerpad_max_install_names"
)
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_CREATE_C_FLAGS
"-bundle -headerpad_max_install_names"
)
set
(
CMAKE_SHARED_MODULE_LOADER_C_FLAG
"-Wl,-bundle_loader,"
)
set
(
CMAKE_SHARED_MODULE_LOADER_C_FLAG
"-Wl,-bundle_loader,"
)
set
(
CMAKE_SHARED_MODULE_LOADER_CXX_FLAG
"-Wl,-bundle_loader,"
)
set
(
CMAKE_SHARED_MODULE_LOADER_CXX_FLAG
"-Wl,-bundle_loader,"
)
set
(
CMAKE_FIND_LIBRARY_SUFFIXES
".dylib"
".so"
".a"
)
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
# 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
# (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)
# 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
# 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
)
if
(
NOT DEFINED CMAKE_INSTALL_NAME_TOOL
)
find_program
(
CMAKE_INSTALL_NAME_TOOL install_name_tool
)
find_program
(
CMAKE_INSTALL_NAME_TOOL install_name_tool
)
endif
(
NOT DEFINED CMAKE_INSTALL_NAME_TOOL
)
endif
()
# Setup iOS deployment target
set
(
IOS_DEPLOYMENT_TARGET
${
IOS_DEPLOYMENT_TARGET
}
CACHE STRING
"Minimum iOS version"
)
# 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;x86_64"
)
elseif
(
IOS_PLATFORM STREQUAL
"WATCHOS"
)
set
(
IOS_ARCH
"armv7k"
)
endif
()
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 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"
)
set
(
CMAKE_FIND_ROOT_PATH
${
IOS_DEVELOPER_ROOT
}
${
IOS_SDK_ROOT
}
${
CMAKE_PREFIX_PATH
}
CACHE string
"iOS find search path root"
)
# default to searching for frameworks first
# default to searching for frameworks first
set
(
CMAKE_FIND_FRAMEWORK FIRST
)
set
(
CMAKE_FIND_FRAMEWORK FIRST
)
# set up the default search directories for frameworks
# set up the default search directories for frameworks
set
(
CMAKE_SYSTEM_FRAMEWORK_PATH
set
(
CMAKE_SYSTEM_FRAMEWORK_PATH
${
CMAKE_
IOS_SDK_ROOT
}
/System/Library/Frameworks
${
IOS_SDK_ROOT
}
/System/Library/Frameworks
${
CMAKE_
IOS_SDK_ROOT
}
/System/Library/PrivateFrameworks
${
IOS_SDK_ROOT
}
/System/Library/PrivateFrameworks
${
CMAKE_
IOS_SDK_ROOT
}
/Developer/Library/Frameworks
${
IOS_SDK_ROOT
}
/Developer/Library/Frameworks
)
)
# only search the iOS sdks, not the remainder of the host filesystem
# only search the iOS sdks, not the remainder of the host filesystem
set
(
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY
)
message
(
STATUS
"iOS: Targeting iOS '
${
CMAKE_SYSTEM_VERSION
}
', "
"building for '
${
IOS_PLATFORM
}
' platform, with architecture '
${
CMAKE_OSX_ARCHITECTURES
}
'"
)
# This little macro lets you set any XCode specific property
# This little macro lets you set any XCode specific property
macro
(
set_xcode_property TARGET XCODE_PROPERTY XCODE_VALUE
)
macro
(
set_xcode_property TARGET XCODE_PROPERTY XCODE_VALUE
)
set_property
(
TARGET
${
TARGET
}
PROPERTY XCODE_ATTRIBUTE_
${
XCODE_PROPERTY
}
${
XCODE_VALUE
}
)
set_property
(
TARGET
${
TARGET
}
PROPERTY XCODE_ATTRIBUTE_
${
XCODE_PROPERTY
}
${
XCODE_VALUE
}
)
endmacro
(
set_xcode_property
)
endmacro
(
set_xcode_property
)
# This macro lets you find executable programs on the host system
# This macro lets you find executable programs on the host system
macro
(
find_host_package
)
macro
(
find_host_package
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER
)
set
(
IOS FALSE
)
set
(
IOS FALSE
)
find_package
(
${
ARGN
}
)
find_package
(
${
ARGN
}
)
set
(
IOS TRUE
)
set
(
IOS TRUE
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY
)
set
(
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY
)
endmacro
(
find_host_package
)
endmacro
(
find_host_package
)
cmake/flags.cmake
浏览文件 @
43dde935
...
@@ -135,8 +135,10 @@ set(GPU_COMMON_FLAGS
...
@@ -135,8 +135,10 @@ set(GPU_COMMON_FLAGS
)
)
if
(
APPLE
)
if
(
APPLE
)
# On Mac OS X build fat binaries with x86_64 architectures by default.
if
(
NOT CMAKE_CROSSCOMPILING
)
set
(
CMAKE_OSX_ARCHITECTURES
"x86_64"
CACHE STRING
"Build architectures for OSX"
FORCE
)
# On Mac OS X build fat binaries with x86_64 architectures by default.
set
(
CMAKE_OSX_ARCHITECTURES
"x86_64"
CACHE STRING
"Build architectures for OSX"
FORCE
)
endif
()
else
()
else
()
set
(
GPU_COMMON_FLAGS
set
(
GPU_COMMON_FLAGS
-Wall
-Wall
...
...
cmake/system.cmake
浏览文件 @
43dde935
...
@@ -24,11 +24,10 @@ IF(WIN32)
...
@@ -24,11 +24,10 @@ IF(WIN32)
SET
(
HOST_SYSTEM
"win32"
)
SET
(
HOST_SYSTEM
"win32"
)
ELSE
(
WIN32
)
ELSE
(
WIN32
)
IF
(
APPLE
)
IF
(
APPLE
)
EXEC_PROGRAM
(
sw_vers ARGS -productVersion OUTPUT_VARIABLE MACOSX_VERSION
)
STRING
(
REGEX MATCH
"[0-9]+.[0-9]+"
VERSION
"
${
MACOSX_VERSION
}
"
)
SET
(
MACOS_VERSION
${
VERSION
}
)
SET
(
HOST_SYSTEM
"macosx"
)
SET
(
HOST_SYSTEM
"macosx"
)
IF
(
NOT DEFINED ENV{MACOSX_DEPLOYMENT_TARGET}
)
EXEC_PROGRAM
(
sw_vers ARGS -productVersion OUTPUT_VARIABLE HOST_SYSTEM_VERSION
)
STRING
(
REGEX MATCH
"[0-9]+.[0-9]+"
MACOS_VERSION
"
${
HOST_SYSTEM_VERSION
}
"
)
IF
(
NOT DEFINED $ENV{MACOSX_DEPLOYMENT_TARGET}
)
# Set cache variable - end user may change this during ccmake or cmake-gui configure.
# Set cache variable - end user may change this during ccmake or cmake-gui configure.
SET
(
CMAKE_OSX_DEPLOYMENT_TARGET
${
MACOS_VERSION
}
CACHE STRING
SET
(
CMAKE_OSX_DEPLOYMENT_TARGET
${
MACOS_VERSION
}
CACHE STRING
"Minimum OS X version to target for deployment (at runtime); newer APIs weak linked. Set to empty string for default value."
)
"Minimum OS X version to target for deployment (at runtime); newer APIs weak linked. Set to empty string for default value."
)
...
@@ -49,6 +48,8 @@ ELSE(WIN32)
...
@@ -49,6 +48,8 @@ ELSE(WIN32)
ELSEIF
(
LINUX_ISSUE MATCHES
"Fedora"
)
ELSEIF
(
LINUX_ISSUE MATCHES
"Fedora"
)
SET
(
HOST_SYSTEM
"fedora"
)
SET
(
HOST_SYSTEM
"fedora"
)
ENDIF
()
ENDIF
()
STRING
(
REGEX MATCH
"(([0-9]+)
\\
.)+([0-9]+)"
HOST_SYSTEM_VERSION
"
${
LINUX_ISSUE
}
"
)
ENDIF
(
EXISTS
"/etc/issue"
)
ENDIF
(
EXISTS
"/etc/issue"
)
IF
(
EXISTS
"/etc/redhat-release"
)
IF
(
EXISTS
"/etc/redhat-release"
)
...
@@ -70,7 +71,7 @@ CMAKE_HOST_SYSTEM_INFORMATION(RESULT CPU_CORES QUERY NUMBER_OF_LOGICAL_CORES)
...
@@ -70,7 +71,7 @@ CMAKE_HOST_SYSTEM_INFORMATION(RESULT CPU_CORES QUERY NUMBER_OF_LOGICAL_CORES)
MARK_AS_ADVANCED
(
HOST_SYSTEM CPU_CORES
)
MARK_AS_ADVANCED
(
HOST_SYSTEM CPU_CORES
)
MESSAGE
(
STATUS
"Found Paddle host system:
${
HOST_SYSTEM
}
"
)
MESSAGE
(
STATUS
"Found Paddle host system:
${
HOST_SYSTEM
}
, version:
${
HOST_SYSTEM_VERSION
}
"
)
MESSAGE
(
STATUS
"Found Paddle host system's CPU:
${
CPU_CORES
}
cores"
)
MESSAGE
(
STATUS
"Found Paddle host system's CPU:
${
CPU_CORES
}
cores"
)
# configuration for cross-compiling
# configuration for cross-compiling
...
@@ -82,7 +83,7 @@ IF(DEFINED CMAKE_SYSTEM_NAME)
...
@@ -82,7 +83,7 @@ IF(DEFINED CMAKE_SYSTEM_NAME)
ELSEIF
(
${
CMAKE_SYSTEM_NAME
}
STREQUAL
"RPi"
)
ELSEIF
(
${
CMAKE_SYSTEM_NAME
}
STREQUAL
"RPi"
)
SET
(
RPI TRUE
)
SET
(
RPI TRUE
)
INCLUDE
(
cross_compiling/raspberry_pi
)
INCLUDE
(
cross_compiling/raspberry_pi
)
ELSEIF
(
${
CMAKE_SYSTEM_NAME
}
STREQUAL
"
Darwin
"
)
ELSEIF
(
${
CMAKE_SYSTEM_NAME
}
STREQUAL
"
iOS
"
)
SET
(
IOS TRUE
)
SET
(
IOS TRUE
)
INCLUDE
(
cross_compiling/ios
)
INCLUDE
(
cross_compiling/ios
)
ENDIF
()
ENDIF
()
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录