jestem konwersji mój system budować od configure/make do systemu cmakeCUpewnij i Flex/Bison
System ma pewne generowanych automatycznie pliki z żubra/Flex. Oryginalne polecenia makefile są:
bison --defines=tokens.h --output=parser.cpp parser.y
flex --outfile=scanner.cpp scanner.l
natknąłem this ancient link który wydaje się wyjaśnić, jak to zrobić, ale gdy uruchamiam cmake z poniższych poleceń niestandardowych, nic nie wydaje się zdarzyć (bez komunikatów o błędach, bez generowania pliku)
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)
Jestem nowy w cmake, więc jest to dla mnie nieco dezorientujące. Czy ktokolwiek ma pojęcie, jaka powinna być działająca komenda custom_command?
Czy możesz również opublikować część CMakeList, która używa wygenerowanych plików? – Angew
Należy pamiętać o tagowaniu. Flex-lexer jest przeznaczony do analizatora leksykalnego; tag flex jest dla Adobe/Apache UI Framework. – JeffryHouser
Przepraszam, "flex" jest automatycznie zasugerowany, nie myślałem o sprawdzeniu opisu. – LordAro