mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-02 00:36:36 +00:00
3d01fc7de8
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56419 91177308-0d34-0410-b5e6-96231b3b80d8
53 lines
1.4 KiB
CMake
Executable File
53 lines
1.4 KiB
CMake
Executable File
# - 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)
|