FindBISON: Refactor public and inner macro routines
This commit is contained in:
parent
c42e63a97e
commit
ab8d5d0fdb
|
@ -126,14 +126,47 @@ if(BISON_EXECUTABLE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# internal macro
|
# internal macro
|
||||||
macro(BISON_TARGET_set_verbose_file BisonOutput)
|
# sets BISON_TARGET_cmdopt
|
||||||
get_filename_component(BISON_TARGET_output_path "${BisonOutput}" PATH)
|
macro(BISON_TARGET_option_extraopts Options)
|
||||||
get_filename_component(BISON_TARGET_output_name "${BisonOutput}" NAME_WE)
|
set(BISON_TARGET_cmdopt "")
|
||||||
set(BISON_TARGET_verbose_file
|
set(BISON_TARGET_extraopts "${Options}")
|
||||||
"${BISON_TARGET_output_path}/${BISON_TARGET_output_name}.output")
|
separate_arguments(BISON_TARGET_extraopts)
|
||||||
|
list(APPEND BISON_TARGET_cmdopt ${BISON_TARGET_extraopts})
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
# internal macro
|
# internal macro
|
||||||
|
# sets BISON_TARGET_output_header and BISON_TARGET_cmdopt
|
||||||
|
macro(BISON_TARGET_option_defines BisonOutput Header)
|
||||||
|
if("${Header}" STREQUAL "")
|
||||||
|
# default header path generated by bison (see option -d)
|
||||||
|
string(REGEX REPLACE "^(.*)(\\.[^.]*)$" "\\2" _fileext "${BisonOutput}")
|
||||||
|
string(REPLACE "c" "h" _fileext ${_fileext})
|
||||||
|
string(REGEX REPLACE "^(.*)(\\.[^.]*)$" "\\1${_fileext}"
|
||||||
|
BISON_TARGET_output_header "${BisonOutput}")
|
||||||
|
list(APPEND BISON_TARGET_cmdopt "-d")
|
||||||
|
else()
|
||||||
|
set(BISON_TARGET_output_header "${Header}")
|
||||||
|
list(APPEND BISON_TARGET_cmdopt "--defines=${BISON_TARGET_output_header}")
|
||||||
|
endif()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
# internal macro
|
||||||
|
# sets BISON_TARGET_verbose_file and BISON_TARGET_cmdopt
|
||||||
|
macro(BISON_TARGET_option_report_file BisonOutput ReportFile)
|
||||||
|
if("${ReportFile}" STREQUAL "")
|
||||||
|
get_filename_component(BISON_TARGET_output_path "${BisonOutput}" PATH)
|
||||||
|
get_filename_component(BISON_TARGET_output_name "${BisonOutput}" NAME_WE)
|
||||||
|
set(BISON_TARGET_verbose_file
|
||||||
|
"${BISON_TARGET_output_path}/${BISON_TARGET_output_name}.output")
|
||||||
|
else()
|
||||||
|
set(BISON_TARGET_verbose_file "${ReportFile}")
|
||||||
|
list(APPEND BISON_TARGET_cmdopt "--report-file=${BISON_TARGET_verbose_file}")
|
||||||
|
endif()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
# internal macro
|
||||||
|
# adds a custom command and sets
|
||||||
|
# BISON_TARGET_cmdopt, BISON_TARGET_verbose_file, BISON_TARGET_extraoutputs
|
||||||
macro(BISON_TARGET_option_verbose Name BisonOutput filename)
|
macro(BISON_TARGET_option_verbose Name BisonOutput filename)
|
||||||
list(APPEND BISON_TARGET_cmdopt "--verbose")
|
list(APPEND BISON_TARGET_cmdopt "--verbose")
|
||||||
list(APPEND BISON_TARGET_extraoutputs
|
list(APPEND BISON_TARGET_extraoutputs
|
||||||
|
@ -154,35 +187,13 @@ if(BISON_EXECUTABLE)
|
||||||
endif()
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
# internal macro
|
|
||||||
macro(BISON_TARGET_option_extraopts Options)
|
|
||||||
set(BISON_TARGET_extraopts "${Options}")
|
|
||||||
separate_arguments(BISON_TARGET_extraopts)
|
|
||||||
list(APPEND BISON_TARGET_cmdopt ${BISON_TARGET_extraopts})
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
# internal macro
|
|
||||||
macro(BISON_TARGET_option_defines Header)
|
|
||||||
set(BISON_TARGET_output_header "${Header}")
|
|
||||||
list(APPEND BISON_TARGET_cmdopt "--defines=${BISON_TARGET_output_header}")
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
# internal macro
|
|
||||||
macro(BISON_TARGET_option_report_file ReportFile)
|
|
||||||
set(BISON_TARGET_verbose_file "${ReportFile}")
|
|
||||||
list(APPEND BISON_TARGET_cmdopt "--report-file=${BISON_TARGET_verbose_file}")
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
#============================================================
|
#============================================================
|
||||||
# BISON_TARGET (public macro)
|
# BISON_TARGET (public macro)
|
||||||
#============================================================
|
#============================================================
|
||||||
#
|
#
|
||||||
macro(BISON_TARGET Name BisonInput BisonOutput)
|
macro(BISON_TARGET Name BisonInput BisonOutput)
|
||||||
set(BISON_TARGET_output_header "")
|
|
||||||
set(BISON_TARGET_cmdopt "")
|
|
||||||
set(BISON_TARGET_outputs "${BisonOutput}")
|
set(BISON_TARGET_outputs "${BisonOutput}")
|
||||||
set(BISON_TARGET_extraoutputs "")
|
set(BISON_TARGET_extraoutputs "")
|
||||||
BISON_TARGET_set_verbose_file("${BisonOutput}")
|
|
||||||
|
|
||||||
# Parsing parameters
|
# Parsing parameters
|
||||||
set(BISON_TARGET_PARAM_OPTIONS
|
set(BISON_TARGET_PARAM_OPTIONS
|
||||||
|
@ -209,15 +220,10 @@ if(BISON_EXECUTABLE)
|
||||||
# [VERBOSE [<file>] hack: <file> is non-multi value by usage
|
# [VERBOSE [<file>] hack: <file> is non-multi value by usage
|
||||||
message(SEND_ERROR "Usage")
|
message(SEND_ERROR "Usage")
|
||||||
else()
|
else()
|
||||||
if(NOT "${BISON_TARGET_ARG_COMPILE_FLAGS}" STREQUAL "")
|
|
||||||
BISON_TARGET_option_extraopts("${BISON_TARGET_ARG_COMPILE_FLAGS}")
|
BISON_TARGET_option_extraopts("${BISON_TARGET_ARG_COMPILE_FLAGS}")
|
||||||
endif()
|
BISON_TARGET_option_defines("${BisonOutput}" "${BISON_TARGET_ARG_DEFINES_FILE}")
|
||||||
if(NOT "${BISON_TARGET_ARG_DEFINES_FILE}" STREQUAL "")
|
BISON_TARGET_option_report_file("${BisonOutput}" "${BISON_TARGET_ARG_REPORT_FILE}")
|
||||||
BISON_TARGET_option_defines("${BISON_TARGET_ARG_DEFINES_FILE}")
|
|
||||||
endif()
|
|
||||||
if(NOT "${BISON_TARGET_ARG_REPORT_FILE}" STREQUAL "")
|
|
||||||
BISON_TARGET_option_report_file("${BISON_TARGET_ARG_REPORT_FILE}")
|
|
||||||
endif()
|
|
||||||
if(NOT "${BISON_TARGET_ARG_VERBOSE}" STREQUAL "")
|
if(NOT "${BISON_TARGET_ARG_VERBOSE}" STREQUAL "")
|
||||||
BISON_TARGET_option_verbose(${Name} ${BisonOutput} "${BISON_TARGET_ARG_VERBOSE}")
|
BISON_TARGET_option_verbose(${Name} ${BisonOutput} "${BISON_TARGET_ARG_VERBOSE}")
|
||||||
else()
|
else()
|
||||||
|
@ -230,14 +236,6 @@ if(BISON_EXECUTABLE)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if("${BISON_TARGET_output_header}" STREQUAL "")
|
|
||||||
# Header's name generated by bison (see option -d)
|
|
||||||
list(APPEND BISON_TARGET_cmdopt "-d")
|
|
||||||
string(REGEX REPLACE "^(.*)(\\.[^.]*)$" "\\2" _fileext "${BisonOutput}")
|
|
||||||
string(REPLACE "c" "h" _fileext ${_fileext})
|
|
||||||
string(REGEX REPLACE "^(.*)(\\.[^.]*)$" "\\1${_fileext}"
|
|
||||||
BISON_TARGET_output_header "${BisonOutput}")
|
|
||||||
endif()
|
|
||||||
list(APPEND BISON_TARGET_outputs "${BISON_TARGET_output_header}")
|
list(APPEND BISON_TARGET_outputs "${BISON_TARGET_output_header}")
|
||||||
|
|
||||||
add_custom_command(OUTPUT ${BISON_TARGET_outputs}
|
add_custom_command(OUTPUT ${BISON_TARGET_outputs}
|
||||||
|
|
Loading…
Reference in New Issue