summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xcmake/FindJavacc.cmake10
-rw-r--r--vhdlparser/CMakeLists.txt10
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