forked from boostorg/filesystem
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Jamfile.v2
84 lines (70 loc) · 2.83 KB
/
Jamfile.v2
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
80
81
82
83
84
# Boost Filesystem Library test Jamfile
# (C) Copyright Beman Dawes 2002-2006
# (C) Copyright Andrey Semashev 2020
# Distributed under the Boost Software License, Version 1.0.
# See www.boost.org/LICENSE_1_0.txt
import testing ;
import os ;
# The rule checks we're running on Windows that supports mklink command (Vista and later)
rule check-mklink ( properties * )
{
local result ;
if <target-os>windows in $(properties)
{
# mklink is a builtin shell command, so we can't check if an executable exists.
# Testing the exit status of the mklink command (in the hope that it will be different
# when the command is not supported) is inconclusive as for some reason Windows 8.1 shell
# always returns exit code of 1. We have to match the output of the command. :(
# Note that the output may be localized, so pick some part that is likely to be stable regardless
# of localization.
local output = [ SHELL "mklink /?" : exit-status ] ;
if [ MATCH (MKLINK) : $(output[1]) ]
{
result = <define>BOOST_FILESYSTEM_HAS_MKLINK ;
}
}
#ECHO Result: $(result) ;
return $(result) ;
}
project
: requirements
<library>/boost/filesystem//boost_filesystem
<conditional>@check-mklink
;
# Some tests are run both statically and as shared libraries since Filesystem
# has a history of bugs that appear only in one type of build or the other.
path-constant HERE : . ;
local VIS ;
if [ os.environ UBSAN ]
{
VIS = <visibility>global
-<library>/boost/filesystem//boost_filesystem
<library>/boost/filesystem//boost_filesystem/<visibility>global ;
}
run config_info.cpp : : : <link>shared <test-info>always_show_run_output ;
run config_info.cpp : : : <link>static <test-info>always_show_run_output : config_info_static ;
run convenience_test.cpp ;
compile macro_default_test.cpp ;
run odr1_test.cpp odr2_test.cpp ;
run deprecated_test.cpp ;
run fstream_test.cpp : : : $(VIS) ;
run large_file_support_test.cpp ;
run locale_info.cpp : : : <test-info>always_show_run_output ;
run operations_test.cpp : : : <link>shared <test-info>always_show_run_output ;
run operations_test.cpp : : : <link>static : operations_test_static ;
run operations_unit_test.cpp : $(HERE) : : <link>shared <test-info>always_show_run_output ;
run copy_test.cpp ;
run path_test.cpp : : : <link>shared ;
run path_test.cpp : : : <link>static : path_test_static ;
run path_unit_test.cpp : : : <link>shared $(VIS) ;
run path_unit_test.cpp : : : <link>static $(VIS) : path_unit_test_static ;
run relative_test.cpp ;
run ../example/simple_ls.cpp ;
run ../example/file_status.cpp ;
run foreach_test.cpp ;
# `quick` target (for CI)
run quick.cpp ;
# Tests for specific issues
run issues/70-71-copy.cpp ;
run issues/99_canonical_with_junction_point.cpp ;
run issues/reparse_tag_file_placeholder.cpp ;