Blame view

3rdparty/boost_1_81_0/libs/dll/test/Jamfile.v2 5.49 KB
977ed18d   Hu Chunming   提交三方库
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
  #
  # Copyright Renato Tegon Forti, Antony Polukhin 2011 - 2019.
  # Distributed under the Boost Software License, Version 1.0.
  #    (See accompanying file LICENSE_1_0.txt or copy at
  #          http://www.boost.org/LICENSE_1_0.txt)
  #
  
  # For more information, see http://www.boost.org
  
  # bring in rules for testing
  import testing ;
  import path ;
  
  local RDYNAMIC = <target-os>freebsd:<linkflags>"-rdynamic" <target-os>solaris:<linkflags>"-Bdynamic" <target-os>aix:<linkflags>"-rdynamic"
      <target-os>qnxnto,<toolset>qcc:<linkflags>"-Bdynamic" <target-os>qnxnto,<toolset>gcc:<linkflags>"-rdynamic"
      <target-os>android:<linkflags>"-rdynamic" <target-os>linux:<linkflags>"-rdynamic" <target-os>darwin,<toolset>gcc:<linkflags>"-dynamic"
      <target-os>darwin,<toolset>clang:<linkflags>"-rdynamic" <target-os>iphone:<linkflags>"-rdynamic" ;
  
  
  # Static library that is not linked with any of the boost libs
  lib static_plugin : ../example/tutorial4/static_plugin.cpp : <link>static <define>BOOST_SYSTEM_NO_DEPRECATED $(RDYNAMIC) ;
  lib static_refcounting_plugin : ../example/tutorial8/refcounting_plugin.cpp : <link>static <define>BOOST_SYSTEM_NO_DEPRECATED <variant>release $(RDYNAMIC) ;
  
  
  project
     : source-location .
     : requirements
  
     # linux
        <target-os>linux:<linkflags>"-ldl"
        <toolset>gcc:<cxxflags>"-Wall -Wextra -pedantic -Wno-long-long"
  
     # others
        <local-visibility>hidden
        <library>/boost/filesystem//boost_filesystem
        <library>/boost/system//boost_system
        <threading>multi
        <define>BOOST_SYSTEM_NO_DEPRECATED
      ;
  {
  
      # our test lib for shared library tests
      lib test_library : test_library.cpp : <link>shared ;
      lib empty_library : empty_library.cpp : <link>shared ;
      lib getting_started_library : ../example/getting_started_library.cpp : <link>shared ;
      lib my_plugin_sum : ../example/tutorial1/my_plugin_sum.cpp : <link>shared ;
      lib my_plugin_aggregator : ../example/tutorial2/my_plugin_aggregator.cpp : <link>shared ;
      lib on_unload_lib : ../example/tutorial6/on_unload_lib.cpp : <link>shared ;
      lib library1 : ../example/tutorial7/library1.cpp : <link>shared ;
      lib library2 : ../example/tutorial7/library2.cpp : <link>shared ;
      lib refcounting_plugin : ../example/tutorial8/refcounting_plugin.cpp : <link>shared ;
      lib cpp_plugin : cpp_test_library.cpp : <link>shared ;
      lib cpp_mangle_plugin : cpp_ctti_type_name_parser_lib.cpp : <link>shared <define>_GLIBCXX_USE_CXX11_ABI=1 ;
  
      test-suite boostdll
          :
          [ run link1.cpp link2.cpp  : : : : validate_link ]
          [ run shared_library_load_test.cpp : : library1 test_library : <link>shared ]
          [ run shared_library_search_symbol_test.cpp : : test_library : $(RDYNAMIC) <link>shared ]
          [ run shared_library_get_symbol_test.cpp : : test_library : $(RDYNAMIC) <link>shared ]
          [ run shared_library_get_symbol_test.cpp
                  :
                  : test_library
                  : $(RDYNAMIC) <target-os>windows:<define>BOOST_USE_WINDOWS_H <link>shared
                  : get_symbol_windows_h_forced
          ]
          [ run symbol_runtime_info_test.cpp : : test_library : $(RDYNAMIC) <link>shared ]
          [ run shared_library_errors.cpp : : test_library : <test-info>always_show_run_output <link>shared ]
          [ run structures_tests.cpp ]
          [ run library_info_test.cpp ../example/tutorial4/static_plugin.cpp : : test_library : <test-info>always_show_run_output <link>shared ]
          [ run empty_library_info_test.cpp : : empty_library : <test-info>always_show_run_output <link>shared ]
          [ run ../example/getting_started.cpp : : getting_started_library : <link>shared ]
          [ run ../example/tutorial1/tutorial1.cpp : : my_plugin_sum : <link>shared ]
          [ run ../example/tutorial2/tutorial2.cpp : : my_plugin_aggregator : <link>shared ]
          [ run ../example/tutorial3/tutorial3.cpp : : my_plugin_aggregator my_plugin_sum : <link>shared ]
          [ run ../example/tutorial4/load_self.cpp ../example/tutorial4/static_plugin.cpp
                  : : : <variant>release $(RDYNAMIC)
          ]
          [ run ../example/tutorial5/load_all.cpp ../example/tutorial4/static_plugin.cpp
                  : : getting_started_library my_plugin_aggregator my_plugin_sum : $(RDYNAMIC) <link>shared
          ]
          [ run ../example/tutorial6/tutorial6.cpp : : on_unload_lib : <link>shared ]
          [ run ../example/tutorial7/tutorial7.cpp : : library1 library2 : <link>shared ]
          [ run ../example/tutorial8/tutorial8.cpp : : refcounting_plugin : <link>shared ]
          [ run ../example/tutorial8/tutorial8_static.cpp : : : <link>static <variant>release $(RDYNAMIC) <test-info>always_show_run_output <library>static_refcounting_plugin
              # Known problem: unsupported __dllexport__ with weak symbols + GNU linker features (no non-weak unresolved symbols in executable => no need to link libraries)
              <target-os>windows,<toolset>gcc:<build>no
          ]
          [ run ../example/tutorial9/tutorial9.cpp ]
          # test for shared libraries
          [ compile-fail section_name_too_big.cpp ]
          [ run shared_library_concurrent_load_test.cpp /boost/thread//boost_thread : : library1 library2 my_plugin_aggregator refcounting_plugin : <link>shared ]
          [ run cpp_mangle_test.cpp : : cpp_plugin ]
          [ run cpp_load_test.cpp   : : cpp_plugin ]
          [ run cpp_import_test.cpp   : : cpp_plugin ]
          [ run template_method_linux_test.cpp : : cpp_plugin ]
          # TODO: uncomment (fails on some MSVCs and Clang-5)
          #[ run ctti_type_name_parser_test.cpp : : cpp_mangle_plugin ]
      ;
  }