CMakeLists.txt 3.3 KB

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