Modify the cmake build system so that if it doesn't find bison, it will use the prege...
[oota-llvm.git] / lib / AsmParser / CMakeLists.txt
1 # AsmParser, with a Bison generated parser:
2 include(FindBison)
3 find_bison()
4
5 IF(BISON_EXECUTABLE)
6 bison_generator(
7   "llvmAsm"
8   "${CMAKE_CURRENT_SOURCE_DIR}/llvmAsmParser.y"
9   "${CMAKE_CURRENT_SOURCE_DIR}/llvmAsmParser.h"
10   "${CMAKE_CURRENT_SOURCE_DIR}/llvmAsmParser.cpp"
11   )
12 ELSE(BISON_EXECUTABLE)
13   MESSAGE(STATUS "Bison not found, the pregenerated files will be used")
14
15   IF(WIN32)
16     FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR} WIN_SOURCE_DIR)
17
18     ADD_CUSTOM_COMMAND(
19       OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/llvmAsmParser.cpp"
20       DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/llvmAsmParser.cpp.cvs"
21       COMMAND copy \"${WIN_SOURCE_DIR}\\llvmAsmParser.cpp.cvs\" \"${WIN_SOURCE_DIR}\\llvmAsmParser.cpp\"
22     )
23     ADD_CUSTOM_COMMAND(
24       OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/llvmAsmParser.h"
25       DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/llvmAsmParser.h.cvs"
26       COMMAND copy \"${WIN_SOURCE_DIR}\\llvmAsmParser.h.cvs\" \"${WIN_SOURCE_DIR}\\llvmAsmParser.h\"
27     )
28   ELSE(WIN32)
29     MESSAGE(SEND_ERROR "Not implemented")
30     # fixme do the same with cp instead of copy
31   ENDIF(WIN32)
32 ENDIF(BISON_EXECUTABLE)
33
34 add_llvm_library(LLVMAsmParser
35   llvmAsmParser.cpp  # Generated from llvmAsmParser.y or copyied from corresponding .cvs
36   llvmAsmParser.h    # needed for the associated custom command to work
37   LLLexer.cpp
38   Parser.cpp
39   )