cmake: auto-include subdirectories with generated .eo.*
authorGustavo Sverzut Barbieri <barbieri@profusion.mobi>
Fri, 27 Jan 2017 12:13:34 +0000 (10:13 -0200)
committerGustavo Sverzut Barbieri <barbieri@profusion.mobi>
Fri, 27 Jan 2017 12:13:34 +0000 (10:13 -0200)
cmake/helpers/EflMacros.cmake

index 105af39..5918bfc 100644 (file)
@@ -1444,6 +1444,7 @@ function(EFL_CREATE_EO_RULES target source_dir generation_dir)
    endforeach()
 
    set(all_eo_gen_files "")
+   set(extra_include_dirs "")
    foreach(file ${eo_files_private} ${eo_files_public})
       get_filename_component(ext ${file} EXT)
       string(REGEX REPLACE "^${source_dir}/" "" filename "${file}")
@@ -1455,6 +1456,7 @@ function(EFL_CREATE_EO_RULES target source_dir generation_dir)
         file(MAKE_DIRECTORY "${generation_dir}/${reldir}")
         get_filename_component(absdir "${file}" DIRECTORY)
         set(rel_include_cmd -I${absdir})
+        list(APPEND extra_include_dirs "${generation_dir}/${reldir}")
       else()
         set(rel_include_cmd)
       endif()
@@ -1497,6 +1499,10 @@ function(EFL_CREATE_EO_RULES target source_dir generation_dir)
       add_custom_target(${target}-eo
         DEPENDS ${all_eo_gen_files}
       )
+      if(extra_include_dirs)
+        list(REMOVE_DUPLICATES extra_include_dirs)
+        target_include_directories(${target} PUBLIC ${extra_include_dirs})
+      endif()
       add_dependencies(${target} ${target}-eo)
       if(${EOLIAN_BIN} STREQUAL ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/eolian_gen)
         add_dependencies(${target}-eo eolian-bin)