Jamfile.v2 5.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #
  2. # Copyright Renato Tegon Forti, Antony Polukhin 2011 - 2019.
  3. # Distributed under the Boost Software License, Version 1.0.
  4. # (See accompanying file LICENSE_1_0.txt or copy at
  5. # http://www.boost.org/LICENSE_1_0.txt)
  6. #
  7. # For more information, see http://www.boost.org
  8. # bring in rules for testing
  9. import testing ;
  10. import path ;
  11. local RDYNAMIC = <target-os>freebsd:<linkflags>"-rdynamic" <target-os>solaris:<linkflags>"-Bdynamic" <target-os>aix:<linkflags>"-rdynamic"
  12. <target-os>qnxnto,<toolset>qcc:<linkflags>"-Bdynamic" <target-os>qnxnto,<toolset>gcc:<linkflags>"-rdynamic"
  13. <target-os>android:<linkflags>"-rdynamic" <target-os>linux:<linkflags>"-rdynamic" <target-os>darwin,<toolset>gcc:<linkflags>"-dynamic"
  14. <target-os>darwin,<toolset>clang:<linkflags>"-rdynamic" <target-os>iphone:<linkflags>"-rdynamic" ;
  15. # Static library that is not linked with any of the boost libs
  16. lib static_plugin : ../example/tutorial4/static_plugin.cpp : <link>static <define>BOOST_SYSTEM_NO_DEPRECATED $(RDYNAMIC) ;
  17. lib static_refcounting_plugin : ../example/tutorial8/refcounting_plugin.cpp : <link>static <define>BOOST_SYSTEM_NO_DEPRECATED <variant>release $(RDYNAMIC) ;
  18. project
  19. : source-location .
  20. : requirements
  21. # linux
  22. <target-os>linux:<linkflags>"-ldl"
  23. <toolset>gcc:<cxxflags>"-Wall -Wextra -pedantic -Wno-long-long"
  24. # others
  25. <local-visibility>hidden
  26. <library>/boost/filesystem//boost_filesystem
  27. <library>/boost/system//boost_system
  28. <threading>multi
  29. <define>BOOST_SYSTEM_NO_DEPRECATED
  30. ;
  31. {
  32. # our test lib for shared library tests
  33. lib test_library : test_library.cpp : <link>shared ;
  34. lib getting_started_library : ../example/getting_started_library.cpp : <link>shared ;
  35. lib my_plugin_sum : ../example/tutorial1/my_plugin_sum.cpp : <link>shared ;
  36. lib my_plugin_aggregator : ../example/tutorial2/my_plugin_aggregator.cpp : <link>shared ;
  37. lib on_unload_lib : ../example/tutorial6/on_unload_lib.cpp : <link>shared ;
  38. lib library1 : ../example/tutorial7/library1.cpp : <link>shared ;
  39. lib library2 : ../example/tutorial7/library2.cpp : <link>shared ;
  40. lib refcounting_plugin : ../example/tutorial8/refcounting_plugin.cpp : <link>shared ;
  41. lib cpp_plugin : cpp_test_library.cpp : <link>shared ;
  42. test-suite boostdll
  43. :
  44. [ run link1.cpp link2.cpp : : : : validate_link ]
  45. [ run shared_library_load_test.cpp : : library1 test_library : <link>shared ]
  46. [ run shared_library_search_symbol_test.cpp : : test_library : $(RDYNAMIC) <link>shared ]
  47. [ run shared_library_get_symbol_test.cpp : : test_library : $(RDYNAMIC) <link>shared ]
  48. [ run shared_library_get_symbol_test.cpp
  49. :
  50. : test_library
  51. : $(RDYNAMIC) <target-os>windows:<define>BOOST_USE_WINDOWS_H <link>shared
  52. : get_symbol_windows_h_forced
  53. ]
  54. [ run symbol_runtime_info_test.cpp : : test_library : $(RDYNAMIC) <link>shared ]
  55. [ run shared_library_errors.cpp : : test_library : <test-info>always_show_run_output <link>shared ]
  56. [ run structures_tests.cpp ]
  57. [ run library_info_test.cpp ../example/tutorial4/static_plugin.cpp : : test_library : <test-info>always_show_run_output <link>shared ]
  58. [ run ../example/getting_started.cpp : : getting_started_library : <link>shared ]
  59. [ run ../example/tutorial1/tutorial1.cpp : : my_plugin_sum : <link>shared ]
  60. [ run ../example/tutorial2/tutorial2.cpp : : my_plugin_aggregator : <link>shared ]
  61. [ run ../example/tutorial3/tutorial3.cpp : : my_plugin_aggregator my_plugin_sum : <link>shared ]
  62. [ run ../example/tutorial4/load_self.cpp ../example/tutorial4/static_plugin.cpp
  63. : : : <variant>release $(RDYNAMIC)
  64. ]
  65. [ run ../example/tutorial5/load_all.cpp ../example/tutorial4/static_plugin.cpp
  66. : : getting_started_library my_plugin_aggregator my_plugin_sum : $(RDYNAMIC) <link>shared
  67. ]
  68. [ run ../example/tutorial6/tutorial6.cpp : : on_unload_lib : <link>shared ]
  69. [ run ../example/tutorial7/tutorial7.cpp : : library1 library2 : <link>shared ]
  70. [ run ../example/tutorial8/tutorial8.cpp : : refcounting_plugin : <link>shared ]
  71. [ run ../example/tutorial8/tutorial8_static.cpp : : : <link>static <variant>release $(RDYNAMIC) <test-info>always_show_run_output <library>static_refcounting_plugin
  72. # Known problem: unsupported __dllexport__ with weak symbols + GNU linker features (no non-weak unresolved symbols in executable => no need to link libraries)
  73. <target-os>windows,<toolset>gcc:<build>no
  74. ]
  75. [ run ../example/tutorial9/tutorial9.cpp ]
  76. # test for shared libraries
  77. [ compile-fail section_name_too_big.cpp ]
  78. [ run shared_library_concurrent_load_test.cpp /boost/thread//boost_thread : : library1 library2 my_plugin_aggregator refcounting_plugin : <link>shared ]
  79. [ run cpp_mangle_test.cpp : : cpp_plugin ]
  80. [ run cpp_load_test.cpp : : cpp_plugin ]
  81. [ run cpp_import_test.cpp : : cpp_plugin ]
  82. ;
  83. }