CMakeLists.txt 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #
  2. # Copyright Troy D. Straszheim
  3. #
  4. # Distributed under the Boost Software License, Version 1.0.
  5. # See http://www.boost.org/LICENSE_1_0.txt
  6. #
  7. # return a list of directories that we should add_subdirectory()
  8. macro(boost_collect_lib_dependencies varname filename)
  9. #message(STATUS "boost_collect_lib_dependencies.... ${Boost_SOURCE_DIR}/libs")
  10. file(GLOB BOOST_LIBRARY_CMAKE_FILES
  11. RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "${Boost_SOURCE_DIR}/libs/*/${filename}")
  12. foreach(BOOST_LIB_CMAKE_FILE ${BOOST_LIBRARY_CMAKE_FILES})
  13. #message(STATUS "-- BOOST_LIB_CMAKE_FILE: ${BOOST_LIB_CMAKE_FILE}")
  14. get_filename_component(BOOST_LIB_DIR ${BOOST_LIB_CMAKE_FILE} PATH)
  15. set(${varname} ${${varname}} ${BOOST_LIB_DIR})
  16. endforeach(BOOST_LIB_CMAKE_FILE ${BOOST_LIBRARY_CMAKE_FILES})
  17. endmacro(boost_collect_lib_dependencies varname)
  18. # Find all of the subdirectories with .cmake files in them. These are
  19. # the libraries with dependencies.
  20. boost_collect_lib_dependencies(BOOST_MODULE_DIRS "module.cmake")
  21. foreach(subdir ${BOOST_MODULE_DIRS})
  22. # message(STATUS "${Boost_SOURCE_DIR}/libs/${subdir}/module.cmake")
  23. include("${Boost_SOURCE_DIR}/libs/${subdir}/module.cmake")
  24. endforeach(subdir)
  25. ###############################################################################
  26. # This macro is an internal utility macro
  27. # TODO: Document this if it stays around
  28. #
  29. #
  30. # example usage:
  31. # boost_tool_dependencies( BOOST_DEPENDS test)
  32. #
  33. macro(boost_tool_dependencies)
  34. parse_arguments(BOOST_TEST
  35. "BOOST_DEPENDS"
  36. ""
  37. ${ARGN}
  38. )
  39. set (THIS_TEST_DEPENDS_ALL "")
  40. # message (STATUS "BOOST_TEST_BOOST_DEPENDS: ${BOOST_TEST_BOOST_DEPENDS}")
  41. foreach(libname ${BOOST_TEST_BOOST_DEPENDS})
  42. # message(STATUS "libname: ${libname}")
  43. string(TOUPPER "BOOST_${libname}_DEPENDS" THIS_PROJECT_DEPENDS)
  44. # message(STATUS "${THIS_PROJECT_DEPENDS}: ${${THIS_PROJECT_DEPENDS}}")
  45. # set(THIS_TEST_DEPENDS_ALL ${libname} ${${THIS_PROJECT_DEPENDS}} )
  46. # message(STATUS "${THIS_TEST_DEPENDS_ALL}: ${${THIS_TEST_DEPENDS_ALL}}")
  47. list(FIND THIS_TEST_DEPENDS_ALL ${libname} DEPDEP_INDEX)
  48. if (DEPDEP_INDEX EQUAL -1)
  49. list(APPEND THIS_TEST_DEPENDS_ALL ${libname})
  50. set(ADDED_DEPS TRUE)
  51. endif()
  52. string(TOUPPER "BOOST_${libname}_DEPENDS" THIS_PROJECT_DEPENDS)
  53. # message(STATUS "${additional_lib}: ===> ${${THIS_PROJECT_DEPENDS}}")
  54. set(ADDED_DEPS TRUE)
  55. while (ADDED_DEPS)
  56. set(ADDED_DEPS FALSE)
  57. foreach(DEP ${THIS_TEST_DEPENDS_ALL})
  58. string(TOUPPER "BOOST_${DEP}_DEPENDS" DEP_DEPENDS)
  59. foreach(DEPDEP ${${DEP_DEPENDS}})
  60. list(FIND THIS_TEST_DEPENDS_ALL ${DEPDEP} DEPDEP_INDEX)
  61. if (DEPDEP_INDEX EQUAL -1)
  62. list(APPEND THIS_TEST_DEPENDS_ALL ${DEPDEP})
  63. set(ADDED_DEPS TRUE)
  64. endif()
  65. endforeach()
  66. endforeach()
  67. endwhile()
  68. # message(STATUS "-> Dependencies for ${libname}")
  69. # message(STATUS "-> THIS_TEST_DEPENDS_ALL: ${THIS_TEST_DEPENDS_ALL}")
  70. endforeach(libname ${BOOST_TEST_BOOST_DEPENDS})
  71. foreach (include ${THIS_TEST_DEPENDS_ALL})
  72. #message(STATUS "include: ${include}")
  73. include_directories("${Boost_SOURCE_DIR}/libs/${include}/include")
  74. endforeach (include ${includes})
  75. endmacro(boost_tool_dependencies)
  76. #
  77. ###############################################################################
  78. # add_subdirectory(quickbook)
  79. # add_subdirectory(wave)
  80. add_subdirectory(bcp)
  81. add_subdirectory(inspect)
粤ICP备19079148号