Browse Source

Backport https://github.com/ydb-platform/ydb/pull/1688/files

svidyuk 1 year ago
parent
commit
e51fabbd3c
2 changed files with 40 additions and 18 deletions
  1. 20 9
      build/export_generators/hardcoded-cmake/cmake/common.cmake
  2. 20 9
      cmake/common.cmake

+ 20 - 9
build/export_generators/hardcoded-cmake/cmake/common.cmake

@@ -115,17 +115,28 @@ function(generate_enum_serilization Tgt Input)
   get_built_tool_path(enum_parser_bin enum_parser_dependency tools/enum_parser/enum_parser enum_parser)
 
   get_filename_component(BaseName ${Input} NAME)
-  add_custom_command(
-    OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${BaseName}_serialized.cpp ${ENUM_SERIALIZATION_ARGS_GEN_HEADER}
-    COMMAND
-      ${enum_parser_bin}
-      ${Input}
-      --include-path ${ENUM_SERIALIZATION_ARGS_INCLUDE_HEADERS}
-      --output ${CMAKE_CURRENT_BINARY_DIR}/${BaseName}_serialized.cpp
-    DEPENDS ${Input} ${enum_parser_dependency}
-  )
   if (ENUM_SERIALIZATION_ARGS_GEN_HEADER)
     set_property(SOURCE ${ENUM_SERIALIZATION_ARGS_GEN_HEADER} PROPERTY GENERATED On)
+    add_custom_command(
+      OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${BaseName}_serialized.cpp ${ENUM_SERIALIZATION_ARGS_GEN_HEADER}
+      COMMAND
+        ${enum_parser_bin}
+        ${Input}
+        --include-path ${ENUM_SERIALIZATION_ARGS_INCLUDE_HEADERS}
+        --output ${CMAKE_CURRENT_BINARY_DIR}/${BaseName}_serialized.cpp
+        --header ${ENUM_SERIALIZATION_ARGS_GEN_HEADER}
+      DEPENDS ${Input} ${enum_parser_dependency}
+    )
+  else()
+    add_custom_command(
+      OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${BaseName}_serialized.cpp
+      COMMAND
+        ${enum_parser_bin}
+        ${Input}
+        --include-path ${ENUM_SERIALIZATION_ARGS_INCLUDE_HEADERS}
+        --output ${CMAKE_CURRENT_BINARY_DIR}/${BaseName}_serialized.cpp
+      DEPENDS ${Input} ${enum_parser_dependency}
+    )
   endif()
   target_sources(${Tgt} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/${BaseName}_serialized.cpp)
 endfunction()

+ 20 - 9
cmake/common.cmake

@@ -115,17 +115,28 @@ function(generate_enum_serilization Tgt Input)
   get_built_tool_path(enum_parser_bin enum_parser_dependency tools/enum_parser/enum_parser enum_parser)
 
   get_filename_component(BaseName ${Input} NAME)
-  add_custom_command(
-    OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${BaseName}_serialized.cpp ${ENUM_SERIALIZATION_ARGS_GEN_HEADER}
-    COMMAND
-      ${enum_parser_bin}
-      ${Input}
-      --include-path ${ENUM_SERIALIZATION_ARGS_INCLUDE_HEADERS}
-      --output ${CMAKE_CURRENT_BINARY_DIR}/${BaseName}_serialized.cpp
-    DEPENDS ${Input} ${enum_parser_dependency}
-  )
   if (ENUM_SERIALIZATION_ARGS_GEN_HEADER)
     set_property(SOURCE ${ENUM_SERIALIZATION_ARGS_GEN_HEADER} PROPERTY GENERATED On)
+    add_custom_command(
+      OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${BaseName}_serialized.cpp ${ENUM_SERIALIZATION_ARGS_GEN_HEADER}
+      COMMAND
+        ${enum_parser_bin}
+        ${Input}
+        --include-path ${ENUM_SERIALIZATION_ARGS_INCLUDE_HEADERS}
+        --output ${CMAKE_CURRENT_BINARY_DIR}/${BaseName}_serialized.cpp
+        --header ${ENUM_SERIALIZATION_ARGS_GEN_HEADER}
+      DEPENDS ${Input} ${enum_parser_dependency}
+    )
+  else()
+    add_custom_command(
+      OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${BaseName}_serialized.cpp
+      COMMAND
+        ${enum_parser_bin}
+        ${Input}
+        --include-path ${ENUM_SERIALIZATION_ARGS_INCLUDE_HEADERS}
+        --output ${CMAKE_CURRENT_BINARY_DIR}/${BaseName}_serialized.cpp
+      DEPENDS ${Input} ${enum_parser_dependency}
+    )
   endif()
   target_sources(${Tgt} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/${BaseName}_serialized.cpp)
 endfunction()