xo-gc xo-object2 xo-facet: builds w/ ISequence,Dlist
This commit is contained in:
parent
2c0970645f
commit
569ce43355
1 changed files with 54 additions and 8 deletions
|
|
@ -1646,14 +1646,17 @@ macro(xo_add_genfacet)
|
|||
REQUIRED)
|
||||
message(STATUS "GENFACET_EXECUTABLE=${GENFACET_EXECUTABLE}")
|
||||
|
||||
set(generatedFiles
|
||||
${GF_OUTPUT_HPP_DIR}/${FACET}.hpp
|
||||
${GF_OUTPUT_HPP_DIR}/${GF_OUTPUT_IMPL_SUBDIR}/A${FACET}.hpp
|
||||
${GF_OUTPUT_HPP_DIR}/${GF_OUTPUT_IMPL_SUBDIR}/I${FACET}_Any.hpp
|
||||
${GF_OUTPUT_HPP_DIR}/${GF_OUTPUT_IMPL_SUBDIR}/I${FACET}_Xfer.hpp
|
||||
${GF_OUTPUT_HPP_DIR}/${GF_OUTPUT_IMPL_SUBDIR}/R${FACET}.hpp
|
||||
${GF_OUTPUT_CPP_DIR}/I${FACET}_Any.cpp)
|
||||
|
||||
# Build the genfacet command
|
||||
add_custom_command(
|
||||
OUTPUT ${GF_OUTPUT_HPP_DIR}/${FACET}.hpp
|
||||
${GF_OUTPUT_HPP_DIR}/${GF_OUTPUT_IMPL_SUBDIR}/A${FACET}.hpp
|
||||
${GF_OUTPUT_HPP_DIR}/${GF_OUTPUT_IMPL_SUBDIR}/I${FACET}_Any.hpp
|
||||
${GF_OUTPUT_HPP_DIR}/${GF_OUTPUT_IMPL_SUBDIR}/I${FACET}_Xfer.hpp
|
||||
${GF_OUTPUT_HPP_DIR}/${GF_OUTPUT_IMPL_SUBDIR}/R${FACET}.hpp
|
||||
${GF_OUTPUT_CPP_DIR}/I${FACET}_Any.cpp
|
||||
OUTPUT $generatedFiles
|
||||
COMMAND ${GENFACET_EXECUTABLE}
|
||||
--input ${GF_INPUT}
|
||||
--output-hpp ${GF_OUTPUT_HPP_DIR}
|
||||
|
|
@ -1666,7 +1669,50 @@ macro(xo_add_genfacet)
|
|||
)
|
||||
|
||||
# Create a target for this generation
|
||||
add_custom_target(${GF_TARGET}
|
||||
DEPENDS ${GF_GENERATED_FILES}
|
||||
)
|
||||
add_custom_target(${GF_TARGET} DEPENDS ${generatedFiles})
|
||||
endmacro()
|
||||
|
||||
macro(xo_add_genfacetimpl)
|
||||
# Parse arguments
|
||||
set(options "")
|
||||
set(oneValueArgs
|
||||
TARGET # Name for this generation target
|
||||
FACET # facet name
|
||||
REPR # representation name
|
||||
INPUT # Input .json5 file
|
||||
OUTPUT_HPP_DIR # Directory for .hpp files
|
||||
OUTPUT_IMPL_SUBDIR # Subdirectory name for impl headers
|
||||
OUTPUT_CPP_DIR # Directory for .cpp files
|
||||
)
|
||||
set(multiValueArgs "")
|
||||
|
||||
cmake_parse_arguments(GF "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
|
||||
find_program(GENFACET_EXECUTABLE NAMES genfacet
|
||||
HINTS ${CMAKE_SOURCE_DIR}/xo-facet/codegen
|
||||
DOC "path to xo genfacet code generator"
|
||||
REQUIRED)
|
||||
message(STATUS "GENFACET_EXECUTABLE=${GENFACET_EXECUTABLE}")
|
||||
|
||||
set(generatedFiles
|
||||
${GF_OUTPUT_HPP_DIR}/${FACET}.hpp
|
||||
${GF_OUTPUT_HPP_DIR}/${GF_OUTPUT_IMPL_SUBDIR}/I${FACET}_D${REPR}.hpp
|
||||
${GF_OUTPUT_CPP_DIR}/I${FACET}_D${REPR}.cpp)
|
||||
|
||||
# Build the genfacet command
|
||||
add_custom_command(
|
||||
OUTPUT ${generatedFiles}
|
||||
COMMAND ${GENFACET_EXECUTABLE}
|
||||
--input ${GF_INPUT}
|
||||
--output-hpp ${GF_OUTPUT_HPP_DIR}
|
||||
--output-impl-hpp ${GF_OUTPUT_IMPL_SUBDIR}
|
||||
--output-cpp ${GF_OUTPUT_CPP_DIR}
|
||||
DEPENDS ${GF_INPUT}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
COMMENT "Generating facet source files from ${GF_INPUT}"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
# Create a target for this generation
|
||||
add_custom_target(${GF_TARGET} DEPENDS ${generatedFiles})
|
||||
endmacro()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue