restracer

Форк
0
/
SConstruct 
108 строк · 3.2 Кб
1
def CheckPKGConfig(context, version):
2
    context.Message('Checking for pkg-config... ')
3
    ret = context.TryAction('pkg-config --atleast-pkgconfig-version=%s' % version)[0]
4
    context.Result(ret)
5
    return ret
6

7
def CheckPKG(context, name):
8
    context.Message('Checking for %s...' % name)
9
    ret = context.TryAction('pkg-config --exists \'%s\'' % name)[0]
10
    context.Result(ret)
11
    return ret
12

13
# class Options is for Nexenta/Hardy. scons from Hardy is outdated.
14
#opts = Options('custom.py')
15
opts = Variables('custom.py')
16

17
#opts.Add('OS', 'Set to current OS: linux, freebsd, nexenta.', 0)
18
opts.Add('PROFILE', 'Set to 1 to build profiled version', 0)
19
opts.Add('RELEASE', 'Set to 1 to build release', 0)
20
opts.Add('STATIC', 'Set to 1 to build static executable', 0)
21
opts.Add('ARCH', 'Set to target architecture', 'generic')
22

23
env = Environment(variables = opts)
24

25
Help(opts.GenerateHelpText(env))
26

27
conf = Configure(env, custom_tests = {'CheckPKGConfig' : CheckPKGConfig,
28
                                       'CheckPKG' : CheckPKG})
29

30
if not conf.CheckPKGConfig('0.18.1'):
31
    print 'pkg-config >= 0.18.1 not found.'
32
    Exit(1)
33

34
if not conf.CheckPKG('libxml++-2.6 >= 2.5.0'):
35
    print 'libxml++-2.6 >= 2.5.0 not found.'
36
    Exit(1)
37

38
env = conf.Finish()
39

40
#OS = ARGUMENTS.get('OS', 'linux')
41
ARCH = ARGUMENTS.get('ARCH', 'generic')
42
RELEASE = ARGUMENTS.get('RELEASE', 0)
43
STATIC = ARGUMENTS.get('STATIC', 0)
44
PROFILE = ARGUMENTS.get('PROFILE', 0)
45

46
env.ParseConfig('pkg-config --cflags --libs libxml++-2.6')
47

48
#
49
CANDIDATE_ART_FORCE_CAST_FOR_ARTUINT64TOSTR = \
50
   ARGUMENTS.get('ART_FORCE_CAST_FOR_ARTUINT64TOSTR', 1)
51

52
ART_DEBUG_INSERT_DEVEL_COMMENT = \
53
   ARGUMENTS.get('ART_DEBUG_INSERT_DEVEL_COMMENT', 0)
54
#
55

56
# -Wno-deprecated-declarations to prevent libxml++-2.6 warnings
57
env.Append(CCFLAGS = '-Wno-deprecated-declarations')
58

59
if int(PROFILE):
60
    env.Append(CCFLAGS = '-pg')
61
    env.Append(LINKFLAGS = '-pg')
62

63
if int(RELEASE):
64
    if int(PROFILE):
65
        env.Append(CCFLAGS = '-O3')
66
        env.Append(CCFLAGS = '-pipe')
67
    else:
68
        env.Append(CCFLAGS = '-O3')
69
        env.Append(CCFLAGS = '--omit-frame-pointer')
70
        env.Append(CCFLAGS = '-pipe')
71

72
    if ARCH != "generic":
73
        env.Append(CCFLAGS = '-march=' + ARCH)
74
    else:
75
        env.Append(CCFLAGS = '-mtune=generic')
76

77
else:
78
    env.Append(CCFLAGS = '-g')
79
    env.Append(CCFLAGS = '-ggdb')
80
    env.Append(CCFLAGS = '-Wall')
81
    env.Append(CCFLAGS = '-W')
82
    env.Append(CCFLAGS = '-Wextra')
83
    env.Append(CCFLAGS = '-Werror')
84
    env.Append(CCFLAGS = '-O0')
85
    env.Append(CCFLAGS = '-std=c++11')
86
    env.Append(CCFLAGS = '-DART_DEBUG')
87
# no -pedantic, as long long is used, but it doesn't exist in ISO C++ 1998
88

89
if int(STATIC):
90
    env.Append(LINKFLAGS = '-static')
91

92
#
93
if int(CANDIDATE_ART_FORCE_CAST_FOR_ARTUINT64TOSTR):
94
    env.Append(CCFLAGS = '-DART_FORCE_CAST_FOR_ARTUINT64TOSTR')
95

96
if int(ART_DEBUG_INSERT_DEVEL_COMMENT):
97
    env.Append(CCFLAGS = '-DART_DEBUG_INSERT_DEVEL_COMMENT')
98
#
99

100
Export('env')
101

102
env.SConscript('libs/liblinefetch/SConscript')
103
env.SConscript('libs/libtplreader/SConscript')
104
env.SConscript('artlibgen/src/SConscript')
105
env.SConscript('artrepgen/SConscript')
106
#env.SConscript('artrepgen/SConscript', 'OS')
107

108
SConsignFile("signatures");
109

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.