diff options
-rwxr-xr-x | cmake/FindJavacc.cmake | 10 | ||||
-rw-r--r-- | vhdlparser/CMakeLists.txt | 10 |
2 files changed, 20 insertions, 0 deletions
diff --git a/cmake/FindJavacc.cmake b/cmake/FindJavacc.cmake new file mode 100755 index 0000000..c7de776 --- /dev/null +++ b/cmake/FindJavacc.cmake @@ -0,0 +1,10 @@ + +find_program(JAVACC_EXECUTABLE NAMES javacc javaCC Javacc JavaCC javacc.bat DOC "path to the javacc executable") +mark_as_advanced(JAVACC_EXECUTABLE) +if(JAVACC_EXECUTABLE) + set(JAVACC_FOUND 1) + message(STATUS "The javacc executable: ${JAVACC_EXECUTABLE}") +else() + set(JAVACC_FOUND 0) + message(STATUS "The javacc executable not found, using existing files") +endif() diff --git a/vhdlparser/CMakeLists.txt b/vhdlparser/CMakeLists.txt index f89008c..ad5af28 100644 --- a/vhdlparser/CMakeLists.txt +++ b/vhdlparser/CMakeLists.txt @@ -1,3 +1,13 @@ +find_package(Javacc) +if (JAVACC_FOUND) + add_custom_command( + COMMAND ${JAVACC_EXECUTABLE} -OUTPUT_DIRECTORY=${CMAKE_SOURCE_DIR}/vhdlparser ${CMAKE_SOURCE_DIR}/vhdlparser/vhdlparser.jj + DEPENDS ${CMAKE_SOURCE_DIR}/vhdlparser/vhdlparser.jj + OUTPUT ${CMAKE_SOURCE_DIR}/vhdlparser/CharStream.cc ${CMAKE_SOURCE_DIR}/vhdlparser/CharStream.h ${CMAKE_SOURCE_DIR}/vhdlparser/ErrorHandler.h ${CMAKE_SOURCE_DIR}/vhdlparser/JavaCC.h ${CMAKE_SOURCE_DIR}/vhdlparser/ParseException.cc ${CMAKE_SOURCE_DIR}/vhdlparser/ParseException.h ${CMAKE_SOURCE_DIR}/vhdlparser/Token.cc ${CMAKE_SOURCE_DIR}/vhdlparser/Token.h ${CMAKE_SOURCE_DIR}/vhdlparser/TokenManager.h ${CMAKE_SOURCE_DIR}/vhdlparser/TokenMgrError.cc ${CMAKE_SOURCE_DIR}/vhdlparser/TokenMgrError.h ${CMAKE_SOURCE_DIR}/vhdlparser/VhdlParser.cc ${CMAKE_SOURCE_DIR}/vhdlparser/VhdlParser.h ${CMAKE_SOURCE_DIR}/vhdlparser/VhdlParserConstants.h ${CMAKE_SOURCE_DIR}/vhdlparser/VhdlParserTokenManager.cc ${CMAKE_SOURCE_DIR}/vhdlparser/VhdlParserTokenManager.h + ) + +endif() + include_directories(${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/qtools ${GENERATED_SRC}) add_library(vhdlparser STATIC CharStream.cc |