blob: dd0e0d4cc0f8611feb556b741c0633f2980e08a8 [file] [log] [blame]
############################################################################
# Copyright 2016-2018 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# 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.
############################################################################
Import('*')
import os
env.PartVersion("2018.2.208")
env.PartName("ippcp")
ipp_libname = '${PART_SHORT_NAME}'
#includes to install
install_headers = Pattern(src_dir='include/',
includes=[
'ippcp.h',
'ippcpdefs.h',
'ippdefs.h',
'ippbase.h',
'ipptypes.h'
],
excludes=[],
recursive=True)
source_headers = Pattern(src_dir='sources/include/',
includes=['*'],
excludes=[],
recursive=True)
# common headers, for SdkInclude
common_headers = Pattern(src_dir='include/',
includes=['ippdefs.h',
'ippbase.h',
'ipptypes.h'],
excludes=[],
recursive=True)
#files
ippcp_files = Pattern(src_dir='sources/ippcp/src/',
includes=[
'*.c',
],
excludes=[],
recursive=True)
ippdir = ''
#prebuild installs prebuild headers instead of src headers.
#internal ipp includes src/primitives/ipp/
env.Append(CPPPATH=[AbsDir('sources/include/')])
# env.Append(CPPDEFINES = '_IPP_BE') #only for BE targets
#internal ipp includes src/primitives/ipp/
env.Append(CPPPATH=[AbsDir('include/')])
env.Append(CPPPATH=[AbsDir('sources/ippcp/src/')])
#ipp defines
env.Append(CPPDEFINES='_IPP_v50_') #required for all ippcp
env.Append(CPPDEFINES='_IPP_DEBUG') #enable function sanity checking
env.Append(CPPDEFINES=['_DISABLE_ALG_MD5_',
'_DISABLE_ALG_SM3_']) #disable unused hash alg
env.ExportCPPPATH([AbsDir('sources/include/')])
if 'install_package' in env['MODE']:
# All files at /ext/ipp/source/include
env.InstallTopLevel(install_headers, sub_dir='ext/ipp/include')
src_files = Pattern(src_dir='sources/ippcp/src/',
includes=['*'],
excludes=[''],
recursive=True)
env.InstallTopLevel(src_files, sub_dir='ext/ipp/sources/ippcp/src')
this_file = Pattern(src_dir='.',
includes=['ippcp.parts'],
excludes=[],
recursive=True)
env.InstallTopLevel(this_file, sub_dir='ext/ipp/')
makefile = Pattern(src_dir='./sources/ippcp',
includes=['Makefile'],
excludes=[],
recursive=True)
env.InstallTopLevel(makefile, sub_dir='ext/ipp/sources/ippcp')
env.InstallTopLevel(source_headers, sub_dir='ext/ipp/sources/include')
else:
env.SdkInclude(install_headers)
env.SdkInclude(common_headers)
if 'use_commercial_ipp' in env['MODE']:
env['CCOPY_LOGIC'] = 'copy'
try:
IPPCRYPTOROOT = os.environ['IPPCRYPTOROOT']
except KeyError, e:
env.PrintError("Necessary environment variable not set: ",
e, show_stack=False)
if env['TARGET_PLATFORM']['OS'] == 'win32':
libpre = ''
libpost = '.lib'
IPP_TH_SYMBOL = 'mt'
else:
libpre = 'lib'
libpost = '.a'
IPP_TH_SYMBOL = ''
if env['TARGET_PLATFORM']['ARCH'] == 'x86':
archdir = 'ia32/'
else:
archdir = 'intel64/'
ippcp_libname = libpre + 'ippcp' + IPP_TH_SYMBOL + libpost
ippcp_libdir = IPPCRYPTOROOT + '/lib/' + archdir
env.SdkLib(ippcp_libdir + ippcp_libname)
else:
all_c_files = ippcp_files.files()
if 'build_ipp_shared' in env['MODE']:
env.Append(CPPDEFINES=['IPP_W32DLL'])
outputs = env.SharedLibrary(ipp_libname, all_c_files)
env.InstallTarget(outputs)
else:
outputs = env.Library(ipp_libname, all_c_files)
env.SdkLib(outputs)
if 'install_lib' in env['MODE']:
env.InstallLib(outputs)