2011-09-10 11:13:51 +02:00
|
|
|
#!/usr/bin/env python
|
|
|
|
# encoding: utf-8
|
2014-01-25 20:59:14 +01:00
|
|
|
# Stian Selnes 2008
|
2018-01-01 20:53:49 +01:00
|
|
|
# Thomas Nagy 2009-2018 (ita)
|
2011-09-10 11:13:51 +02:00
|
|
|
|
|
|
|
"""
|
2016-06-25 23:54:12 +02:00
|
|
|
Detects the Intel C compiler
|
2011-09-10 11:13:51 +02:00
|
|
|
"""
|
|
|
|
|
2023-10-21 19:04:47 +02:00
|
|
|
from waflib import Utils
|
2011-09-10 11:13:51 +02:00
|
|
|
from waflib.Tools import ccroot, ar, gcc
|
|
|
|
from waflib.Configure import conf
|
2023-10-21 19:04:47 +02:00
|
|
|
from waflib.Tools import msvc
|
2011-09-10 11:13:51 +02:00
|
|
|
|
|
|
|
@conf
|
|
|
|
def find_icc(conf):
|
|
|
|
"""
|
2016-06-25 23:54:12 +02:00
|
|
|
Finds the program icc and execute it to ensure it really is icc
|
2011-09-10 11:13:51 +02:00
|
|
|
"""
|
2023-10-21 19:04:47 +02:00
|
|
|
if Utils.is_win32:
|
2023-10-24 18:38:21 +02:00
|
|
|
conf.find_program(['icx-cl'], var='ICXCL', mandatory=False)
|
|
|
|
if conf.env.ICXCL:
|
|
|
|
conf.env.INTEL_CLANG_COMPILER = True
|
|
|
|
conf.env.CC = conf.env.ICXCL
|
|
|
|
|
2023-10-26 17:20:51 +02:00
|
|
|
if not conf.env.ICXCL:
|
2023-10-25 18:59:24 +02:00
|
|
|
cc = conf.find_program(['icx', 'icc', 'ICL'], var='CC')
|
2023-10-24 18:38:21 +02:00
|
|
|
conf.get_cc_version(cc, icc=True)
|
|
|
|
|
2014-01-25 20:59:14 +01:00
|
|
|
conf.env.CC_NAME = 'icc'
|
2011-09-10 11:13:51 +02:00
|
|
|
|
|
|
|
def configure(conf):
|
|
|
|
conf.find_icc()
|
2023-10-26 17:20:51 +02:00
|
|
|
if conf.env.ICXCL and Utils.is_win32:
|
2023-10-21 19:04:47 +02:00
|
|
|
conf.find_msvc()
|
2023-10-24 18:38:21 +02:00
|
|
|
conf.find_program('MT', var='MT')
|
|
|
|
conf.env.MTFLAGS = ['/nologo']
|
|
|
|
conf.env.MSVC_MANIFEST = True
|
2023-10-21 19:04:47 +02:00
|
|
|
|
|
|
|
conf.msvc_common_flags()
|
|
|
|
|
|
|
|
conf.env.CFLAGS = []
|
|
|
|
conf.cc_load_tools()
|
|
|
|
conf.cc_add_flags()
|
|
|
|
conf.link_add_flags()
|
|
|
|
|
|
|
|
conf.visual_studio_add_flags()
|
2023-10-24 18:38:21 +02:00
|
|
|
conf.env.CC_TGT_F = ['/FC', '/c', '/Fo']
|
|
|
|
conf.env.CPPPATH_ST = '/I%s'
|
2023-10-21 19:04:47 +02:00
|
|
|
else:
|
|
|
|
conf.find_ar()
|
|
|
|
conf.gcc_common_flags()
|
|
|
|
conf.gcc_modifier_platform()
|
|
|
|
conf.cc_load_tools()
|
|
|
|
conf.cc_add_flags()
|
|
|
|
conf.link_add_flags()
|