draco_variables.cmake 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. if(DRACO_CMAKE_DRACO_VARIABLES_CMAKE_)
  2. return()
  3. endif() # DRACO_CMAKE_DRACO_VARIABLES_CMAKE_
  4. set(DRACO_CMAKE_DRACO_VARIABLES_CMAKE_ 1)
  5. # Halts generation when $variable_name does not refer to a directory that
  6. # exists.
  7. macro(draco_variable_must_be_directory variable_name)
  8. if("${variable_name}" STREQUAL "")
  9. message(
  10. FATAL_ERROR
  11. "Empty variable_name passed to draco_variable_must_be_directory.")
  12. endif()
  13. if("${${variable_name}}" STREQUAL "")
  14. message(
  15. FATAL_ERROR
  16. "Empty variable ${variable_name} is required to build draco.")
  17. endif()
  18. if(NOT IS_DIRECTORY "${${variable_name}}")
  19. message(
  20. FATAL_ERROR
  21. "${variable_name}, which is ${${variable_name}}, does not refer to a\n"
  22. "directory.")
  23. endif()
  24. endmacro()
  25. # Adds $var_name to the tracked variables list.
  26. macro(draco_track_configuration_variable var_name)
  27. if(DRACO_VERBOSE GREATER 2)
  28. message("---- draco_track_configuration_variable ----\n"
  29. "var_name=${var_name}\n"
  30. "----------------------------------------------\n")
  31. endif()
  32. list(APPEND draco_configuration_variables ${var_name})
  33. list(REMOVE_DUPLICATES draco_configuration_variables)
  34. endmacro()
  35. # Logs current C++ and executable linker flags via the CMake message command.
  36. macro(draco_dump_cmake_flag_variables)
  37. unset(flag_variables)
  38. list(APPEND flag_variables "CMAKE_CXX_FLAGS_INIT" "CMAKE_CXX_FLAGS"
  39. "CMAKE_EXE_LINKER_FLAGS_INIT" "CMAKE_EXE_LINKER_FLAGS")
  40. if(CMAKE_BUILD_TYPE)
  41. list(APPEND flag_variables "CMAKE_BUILD_TYPE"
  42. "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}_INIT"
  43. "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}"
  44. "CMAKE_EXE_LINKER_FLAGS_${CMAKE_BUILD_TYPE}_INIT"
  45. "CMAKE_EXE_LINKER_FLAGS_${CMAKE_BUILD_TYPE}")
  46. endif()
  47. foreach(flag_variable ${flag_variables})
  48. message("${flag_variable}:${${flag_variable}}")
  49. endforeach()
  50. endmacro()
  51. # Dumps the variables tracked in $draco_configuration_variables via the CMake
  52. # message command.
  53. macro(draco_dump_tracked_configuration_variables)
  54. foreach(config_variable ${draco_configuration_variables})
  55. message("${config_variable}:${${config_variable}}")
  56. endforeach()
  57. endmacro()