2
0
Эх сурвалжийг харах

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.
Sam Edwards 6 жил өмнө
parent
commit
1a237670e3

+ 7 - 0
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}