From 1a237670e345e6b0278e47a8659b2e1a45109ccd Mon Sep 17 00:00:00 2001 From: Sam Edwards Date: Wed, 5 Jun 2019 02:27:31 -0600 Subject: [PATCH] CMake: Make Interrogate macro ensure output directories exist This was causing problems on the Xcode generator under macOS, which wasn't automatically creating the output directories for us. --- cmake/macros/Interrogate.cmake | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cmake/macros/Interrogate.cmake b/cmake/macros/Interrogate.cmake index d90c5edadf..a7fb131916 100644 --- a/cmake/macros/Interrogate.cmake +++ b/cmake/macros/Interrogate.cmake @@ -225,8 +225,13 @@ function(interrogate_sources target output database language_flags) endif() endforeach(build_type) + get_filename_component(output_directory "${output}" DIRECTORY) + get_filename_component(database_directory "${database}" DIRECTORY) + add_custom_command( OUTPUT "${output}" "${database}" + COMMAND ${CMAKE_COMMAND} -E + make_directory "${output_directory}" "${database_directory}" COMMAND host_interrogate -oc "${output}" -od "${database}" @@ -325,6 +330,8 @@ function(add_python_module module) add_custom_command( OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${module}_module.cxx" + COMMAND ${CMAKE_COMMAND} -E + make_directory "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}" COMMAND host_interrogate_module -oc "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${module}_module.cxx" -module ${modname} -library ${modname}