我將我的編譯系統從配置/做出一個cmake的系統的CMake和Flex /野牛
該系統具有自動生成的一些文件,從野牛/柔性。原來的makefile命令是:
bison --defines=tokens.h --output=parser.cpp parser.y
flex --outfile=scanner.cpp scanner.l
我碰到this ancient link這似乎解釋瞭如何做到這一點,但是當我運行下面的自定義命令cmake的,好像沒有任何反應(沒有錯誤消息,沒有文件生成)
FIND_PACKAGE(BISON REQUIRED)
IF(BISON_FOUND)
ADD_CUSTOM_COMMAND(
SOURCE ${CMAKE_SOURCE_DIR}/src/rcdgen/parser.y
COMMAND ${BISON_EXECUTABLE}
ARGS --defines=${CMAKE_SOURCE_DIR}/src/rcdgen/tokens.h
-o ${CMAKE_SOURCE_DIR}/src/rcdgen/parser.cpp
${CMAKE_SOURCE_DIR}/src/rcdgen/parser.y
COMMENT "Generating parser.cpp"
OUTPUT ${CMAKE_SOURCE_DIR}/src/rcdgen/parser.cpp
)
ENDIF(BISON_FOUND)
FIND_PACKAGE(FLEX REQUIRED)
IF(FLEX_FOUND)
ADD_CUSTOM_COMMAND(
SOURCE ${CMAKE_SOURCE_DIR}/src/rcdgen/scanner.l
COMMAND ${FLEX_EXECUTABLE}
ARGS -o${CMAKE_SOURCE_DIR}/src/rcdgen/parser.cpp
${CMAKE_SOURCE_DIR}/src/rcdgen/scanner.l
COMMENT "Generating scanner.cpp"
OUTPUT ${CMAKE_SOURCE_DIR}/src/rcdgen/scanner.cpp
)
ENDIF(FLEX_FOUND)
我是cmake的新手,所以對我來說有點困惑。有沒有人有任何想法的工作custom_command會是什麼?
你也可以發佈使用生成文件的CMakeList的一部分嗎? – Angew
請注意標記。 Flex-lexer用於詞法分析器; flex標籤用於Adobe/Apache UI框架。 – JeffryHouser
對不起,'flex'是我自動提示給我的,我沒有想到檢查描述 – LordAro