From 3fd9f1f2aec9d53b923886223e5c0a3cd844976f Mon Sep 17 00:00:00 2001
From: enoulard <enoulard@041b043f-8d7c-46b2-b46e-ef0dd855326e>
Date: Mon, 8 Dec 2014 13:36:37 +0000
Subject: [PATCH] Properly handle generated files

git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@378 041b043f-8d7c-46b2-b46e-ef0dd855326e
---
 share/FindLustre.cmake | 21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

diff --git a/share/FindLustre.cmake b/share/FindLustre.cmake
index 69fa04fc..ee9a6098 100644
--- a/share/FindLustre.cmake
+++ b/share/FindLustre.cmake
@@ -82,25 +82,34 @@ function(Lustre_Compile)
   endif()
 
   file(MAKE_DIRECTORY ${LUSTRE_OUTPUT_DIR})
-  set(GLOBAL_LUSTRE_GENERATED_FILES)
+  set(GLOBAL_LUSTRE_GENERATED_C_FILES "")
+  # create list of generated C files in parent scope
+  set(LUSTRE_GENERATED_C_FILES_${LUS_LIBNAME} "" PARENT_SCOPE)
   foreach(LFILE IN LISTS LUS_LUS_FILES)
     get_filename_component(L ${LFILE} NAME_WE)
-    set(LUSTRE_GENERATED_FILES ${LUSTRE_OUTPUT_DIR}/${L}.h ${LUSTRE_OUTPUT_DIR}/${L}.c)
-    list(APPEND GLOBAL_LUSTRE_GENERATED_FILES ${LUSTRE_GENERATED_FILES})
+    get_filename_component(E ${LFILE} EXT)
+    if ("${E}" STREQUAL ".lus")
+      set(LUSTRE_GENERATED_FILES ${LUSTRE_OUTPUT_DIR}/${L}.h ${LUSTRE_OUTPUT_DIR}/${L}.c ${LUSTRE_OUTPUT_DIR}/${L}_alloc.h)
+    elseif("${E}" STREQUAL ".lusi")
+      set(LUSTRE_GENERATED_FILES ${LUSTRE_OUTPUT_DIR}/${L}.h)
+    endif()
+    list(APPEND GLOBAL_LUSTRE_GENERATED_C_FILES ${LUSTRE_GENERATED_FILES})
+    set(LUSTRE_GENERATED_FILES ${LUSTRE_GENERATED_FILES} ${LUSTRE_OUTPUT_DIR}/${L}.lusic)
     add_custom_command(
       OUTPUT ${LUSTRE_GENERATED_FILES}
       COMMAND ${LUSTRE_COMPILER} ${LUSTRE_NODE_OPT} -d ${LUSTRE_OUTPUT_DIR} ${LFILE}
       DEPENDS ${LFILE}
       WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-      COMMENT "Compile Lustre source(s): ${LFILE}."
+      COMMENT "Compile Lustre source(s): ${LFILE} (generates: ${LUSTRE_GENERATED_FILES})."
       )
     set_source_files_properties(${LUSTRE_GENERATED_FILES} PROPERTIES GENERATED TRUE)
   endforeach()
 
   include_directories(${LUSTRE_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${LUSTRE_OUTPUT_DIR})
   add_library(${LUS_LIBNAME} SHARED
-              ${GLOBAL_LUSTRE_GENERATED_FILES} ${LUS_USER_C_FILES}
-             )
+              ${GLOBAL_LUSTRE_GENERATED_C_FILES} ${LUS_USER_C_FILES}
+              )
+  set(LUSTRE_GENERATED_C_FILES_${LUS_LIBNAME} "${GLOBAL_LUSTRE_GENERATED_C_FILES}" PARENT_SCOPE)
   message(STATUS "Lustre: Added rule for building lustre library: ${LUS_LIBNAME}")
 endfunction(Lustre_Compile)
 
-- 
GitLab