smcscm.cmake 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. ################################################################################
  2. # HPCC SYSTEMS software Copyright (C) 2012 HPCC Systems.
  3. #
  4. # Licensed under the Apache License, Version 2.0 (the "License");
  5. # you may not use this file except in compliance with the License.
  6. # You may obtain a copy of the License at
  7. #
  8. # http://www.apache.org/licenses/LICENSE-2.0
  9. #
  10. # Unless required by applicable law or agreed to in writing, software
  11. # distributed under the License is distributed on an "AS IS" BASIS,
  12. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. # See the License for the specific language governing permissions and
  14. # limitations under the License.
  15. ################################################################################
  16. #####################################################
  17. # Description:
  18. # ------------
  19. # Cmake include file smc scm file generation
  20. #####################################################
  21. set ( ESPSCM_SOURCE_DIR ${HPCC_SOURCE_DIR}/esp/scm )
  22. set ( ESPSCM_GENERATED_DIR ${CMAKE_BINARY_DIR}/generated )
  23. GET_TARGET_PROPERTY(HIDL_EXE hidl LOCATION)
  24. GET_TARGET_PROPERTY(ESDL-XML_EXE esdl-xml LOCATION)
  25. set ( ESPSCM_SRCS
  26. common.ecm
  27. ws_dfu.ecm
  28. ws_dfuXref.ecm
  29. ws_fs.ecm
  30. ws_roxie.ecm
  31. ws_smc.ecm
  32. ws_topology.ecm
  33. ws_workunits.ecm
  34. ws_packageprocess.ecm
  35. )
  36. foreach ( loop_var ${ESPSCM_SRCS} )
  37. string( REGEX REPLACE "[.]ecm" "" result ${loop_var} )
  38. if (SCM_BUILD)
  39. add_custom_command ( DEPENDS hidl ${ESPSCM_SOURCE_DIR}/${loop_var}
  40. OUTPUT ${ESPSCM_GENERATED_DIR}/${result}.esp ${ESPSCM_GENERATED_DIR}/${result}.hpp ${ESPSCM_GENERATED_DIR}/${result}.int ${ESPSCM_GENERATED_DIR}/${result}.ipp ${ESPSCM_GENERATED_DIR}/${result}_esp.cpp ${ESPSCM_GENERATED_DIR}/${result}_esp.ipp
  41. COMMAND ${HIDL_EXE} ${ESPSCM_SOURCE_DIR}/${result}.ecm ${ESPSCM_GENERATED_DIR}
  42. )
  43. add_custom_command ( DEPENDS esdl-xml ${ESPSCM_SOURCE_DIR}/${loop_var}
  44. OUTPUT ${ESPSCM_GENERATED_DIR}/${result}.xml
  45. COMMAND ${ESDL-XML_EXE} ${ESPSCM_SOURCE_DIR}/${result}.ecm ${ESPSCM_GENERATED_DIR}
  46. )
  47. endif ()
  48. set_source_files_properties(${ESPSCM_GENERATED_DIR}/${result}.esp PROPERTIES GENERATED TRUE)
  49. set_source_files_properties(${ESPSCM_GENERATED_DIR}/${result}.hpp PROPERTIES GENERATED TRUE)
  50. set_source_files_properties(${ESPSCM_GENERATED_DIR}/${result}.int PROPERTIES GENERATED TRUE)
  51. set_source_files_properties(${ESPSCM_GENERATED_DIR}/${result}.ipp PROPERTIES GENERATED TRUE)
  52. set_source_files_properties(${ESPSCM_GENERATED_DIR}/${result}_esp.cpp PROPERTIES GENERATED TRUE)
  53. if (CMAKE_COMPILER_IS_GNUCXX)
  54. set_source_files_properties(${ESPSCM_GENERATED_DIR}/${result}_esp.cpp PROPERTIES COMPILE_FLAGS "-O0")
  55. endif ()
  56. set_source_files_properties(${ESPSCM_GENERATED_DIR}/${result}_esp.ipp PROPERTIES GENERATED TRUE)
  57. set_source_files_properties(${ESPSCM_GENERATED_DIR}/${result}.xml PROPERTIES GENERATED TRUE)
  58. set ( ESP_GENERATED_INCLUDES ${ESP_GENERATED_INCLUDES} ${ESPSCM_GENERATED_DIR}/${result}.esp ${ESPSCM_GENERATED_DIR}/${result}.hpp ${ESPSCM_GENERATED_DIR}/${result}.int ${ESPSCM_GENERATED_DIR}/${result}.ipp ${ESPSCM_GENERATED_DIR}/${result}_esp.ipp ${ESPSCM_GENERATED_DIR}/${result}.xml )
  59. endforeach ( loop_var ${ESPSCM_SRCS} )
  60. include_directories ( ${ESPSCM_GENERATED_DIR} )