Hello Juan,<br><br>Several years ago, I wrote some cmake rules to work with lex and yacc on<br>Linux and windows.<br><br>Hop it will help you.<br><br>Andre E.<br><br>Below the macro :<br><br><br>#<br># here, I will put some macro <br>
# for flex and yacc transformation<br># <br># Author EBERSOLD Andre<br># Created 6/7/2007<br>#<br>IF(UNIX)<br> SET(LEXER "flex" CACHE STRING "flex parser")<br> SET(BISON "bison" CACHE STRING "yacc parser")<br>
ELSE(UNIX)<br> SET(LEXER "c:\\tools\\bison\\flex.exe" CACHE STRING "flex parser")<br> SET(BISON "c:\\tools\\bison\\bison.exe" CACHE STRING "yacc parser")<br>ENDIF(UNIX)<br><br>
#<br>#<br>#<br>MACRO(LEXGEN file)<br><br>ADD_CUSTOM_COMMAND(SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/${file}.l <br> COMMAND ${LEXER} <br> ARGS -olds_lexer.c ${CMAKE_CURRENT_SOURCE_DIR}/${file}.l<br># TARGET ${CMAKE_CURRENT_BINARY_DIR}/${file}.c<br>
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${file}.c<br> COMMENT "lex files")<br><br>SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/${file}.c GENERATED)<br><br>ENDMACRO(LEXGEN file)<br><br>MACRO(BISONGEN file)<br>
ADD_CUSTOM_COMMAND(SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/${file}.y<br> COMMAND ${BISON} <br> ARGS -d ${CMAKE_CURRENT_SOURCE_DIR}/${file}.y --output=${file}.c<br># TARGET ${CMAKE_CURRENT_BINARY_DIR}/${file}.c<br>
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${file}.c<br> COMMENT "yacc files")<br><br> SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/${file}.c GENERATED)<br>ENDMACRO(BISONGEN file)<br><br>
<br><br>If you don't plan to use macro ... You can write rules like this :<br><br>SET(LEXER "c:\\tools\\bison\\flex.exe" CACHE STRING "flex parser")<br>SET(BISON "c:\\tools\\bison\\bison.exe" CACHE STRING "yacc parser")<br>
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})<br>INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})<br><br>ADD_CUSTOM_COMMAND(SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/jumli_lexer.l<br> COMMAND ${LEXER}<br> ARGS -ojumli_lexer.c ${CMAKE_CURRENT_SOURCE_DIR}/jumli_lexer.l<br>
TARGET ${CMAKE_CURRENT_BINARY_DIR}/jumli_lexer.c<br> OUTPUTS ${CMAKE_CURRENT_BINARY_DIR}/jumli_lexer.c<br> )<br>ADD_CUSTOM_COMMAND(SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/jumli_parser.y<br>
COMMAND ${BISON}<br> ARGS --output jumli_parser.c -d ${CMAKE_CURRENT_SOURCE_DIR}/jumli_parser.y<br> TARGET ${CMAKE_CURRENT_BINARY_DIR}/jumli_parser.c<br> OUTPUTS ${CMAKE_CURRENT_BINARY_DIR}/jumli_parser.c<br>
)<br><br>SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/jumli_parser.c GENERATED)<br>SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/jumli_lexer.c GENERATED)<br><br><br><br><div class="gmail_quote">
On Sat, Feb 28, 2009 at 1:37 AM, j s <span dir="ltr"><<a href="mailto:j.s4403@gmail.com">j.s4403@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi,<br><br>Are there packages for finding Flex and Bison available? I'm starting a porting effort to windows, and I am hoping there is a way for these to work in visual studio?<br><br>Regards,<br><br>Juan<br>
<br>_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the CMake FAQ at: <a href="http://www.cmake.org/Wiki/CMake_FAQ" target="_blank">http://www.cmake.org/Wiki/CMake_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.cmake.org/mailman/listinfo/cmake" target="_blank">http://www.cmake.org/mailman/listinfo/cmake</a><br></blockquote></div><br><br clear="all"><br>-- <br>EBERSOLD Andre<br>Senior Software Engineer<br>