mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-21 00:32:23 +00:00
53 lines
1.4 KiB
CMake
53 lines
1.4 KiB
CMake
|
# - Try to find Bison
|
||
|
# Once done this will define
|
||
|
#
|
||
|
# BISON_FOUND - system has Bison
|
||
|
# BISON_EXECUTABLE - path of the bison executable
|
||
|
# BISON_VERSION - the version string, like "2.5.31"
|
||
|
#
|
||
|
|
||
|
MACRO(FIND_BISON)
|
||
|
FIND_PROGRAM(BISON_EXECUTABLE NAMES bison)
|
||
|
|
||
|
IF(BISON_EXECUTABLE)
|
||
|
SET(BISON_FOUND TRUE)
|
||
|
|
||
|
EXECUTE_PROCESS(COMMAND ${BISON_EXECUTABLE} --version
|
||
|
OUTPUT_VARIABLE _BISON_VERSION
|
||
|
)
|
||
|
string (REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" BISON_VERSION "${_bison_VERSION}")
|
||
|
ENDIF(BISON_EXECUTABLE)
|
||
|
|
||
|
IF(BISON_FOUND)
|
||
|
IF(NOT Bison_FIND_QUIETLY)
|
||
|
MESSAGE(STATUS "Found Bison: ${BISON_EXECUTABLE}")
|
||
|
ENDIF(NOT Bison_FIND_QUIETLY)
|
||
|
ELSE(BISON_FOUND)
|
||
|
IF(Bison_FIND_REQUIRED)
|
||
|
MESSAGE(FATAL_ERROR "Could not find Bison")
|
||
|
ENDIF(Bison_FIND_REQUIRED)
|
||
|
ENDIF(BISON_FOUND)
|
||
|
ENDMACRO(FIND_BISON)
|
||
|
|
||
|
MACRO(BISON_GENERATOR _PREFIX _Y_INPUT _H_OUTPUT _CPP_OUTPUT)
|
||
|
IF(BISON_EXECUTABLE)
|
||
|
GET_FILENAME_COMPONENT(_Y_DIR ${_Y_INPUT} PATH)
|
||
|
ADD_CUSTOM_COMMAND(
|
||
|
OUTPUT ${_CPP_OUTPUT}
|
||
|
OUTPUT ${_H_OUTPUT}
|
||
|
DEPENDS ${_Y_INPUT}
|
||
|
COMMAND ${BISON_EXECUTABLE}
|
||
|
ARGS
|
||
|
-p ${_PREFIX} -o"${_CPP_OUTPUT}"
|
||
|
--defines="${_H_OUTPUT}" ${_Y_INPUT}
|
||
|
WORKING_DIRECTORY ${_Y_DIR}
|
||
|
)
|
||
|
SET_SOURCE_FILES_PROPERTIES(
|
||
|
${_CPP_OUTPUT} ${_H_OUTPUT}
|
||
|
GENERATED
|
||
|
)
|
||
|
ELSE(BISON_EXECUTABLE)
|
||
|
MESSAGE(SEND_ERROR "Can't find bison program, and it's required")
|
||
|
ENDIF(BISON_EXECUTABLE)
|
||
|
ENDMACRO(BISON_GENERATOR)
|