Website Summary Files Commits Branches @commit @diff @stats
path: root / gctest / solution / genie.lua
blob: 394417a4c88bd5d4154199e313dacfda30c024db (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
if not solution() then
    solution 'gctest'
    if _ACTION ~= 'jcdb' then
        platforms { 'x32', 'x64' }
        configurations {'Debug', 'Release'}
    else
        configurations {'Debug'}
        platforms { 'x64' }
    end
    flags {
        'FatalWarnings',
        'ExtraWarnings',
        'Symbols',
    }

    defines {
            '_SCL_SECURE_NO_WARNINGS',
    }

    local root = '../build/'

    if _ACTION ~= 'ninja' then
        location '.'
    else
        location './ninja'
    end

    configuration 'Debug'
        targetdir(root .. 'bin/Debug')
        objdir(root .. 'obj/Debug')

    configuration 'Release'
        flags 'OptimizeSpeed'
        targetdir(root .. 'bin/Release')
        objdir(root .. 'obj/Release')
    configuration '*'
end

function setup()
    flags 'Cpp17'
    defines {
        '_SCL_SECURE_NO_WARNINGS',
        '_CRT_SECURE_NO_WARNINGS',
        '_CRT_NONSTDC_NO_WARNINGS', -- for strdup in minitrace.c
        'MTR_ENABLED',
    }

    -- GCC generates a warning for uninitialized data in
    -- std::normal_distribution
    configuration 'gcc'
        removeflags 'ExtraWarnings'
    configuration '*'
    location(solution().location)
end

    project 'test_bench'
        kind 'StaticLib'
        language 'C++'
        files {
            '../src/main.cpp',
            '../src/minitrace.cpp',
        }
        removeflags 'ExtraWarnings'
        setup()

    project 'leak_gc'
        kind 'ConsoleApp'
        language 'C++'
        files '../src/gc_leak.cpp'
        links 'test_bench'
        setup()

    project 'dummy_gc'
        kind 'ConsoleApp'
        language 'C++'
        files '../src/gc_dummy.cpp'
        links 'test_bench'
        setup()