Ben bizon/esnek gelen bir cmake sisteminin sistem bazı otomatik olarak oluşturulan dosyaları vardırCKağıt ve Flex/Bison
yapmak/configure benim yapı sistemini dönüştürme ediyorum. Orijinal makefile komutlar şunlardır:
bison --defines=tokens.h --output=parser.cpp parser.y
flex --outfile=scanner.cpp scanner.l
ben bunu nasıl açıklamak gibi görünüyor this ancient link karşılaştım, ama aşağıdaki özel komutlarla cmake çalıştırdığınızda, hiçbir şey (hiçbir hata iletileri, hiçbir dosya nesil) gerçekleşmesi görünüyor
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 konusunda yeniyim, bu yüzden biraz kafa karıştırıcı. Çalışan bir custom_command'ın ne olabileceği hakkında bir fikri olan var mı?
Ayrıca oluşturulan dosyaları kullanan CMakeList parçasını da gönderebilir misiniz? – Angew
Lütfen etiketlemenin farkında olun. Flex-lexer sözcük analizcisi içindir; esnek etiket Adobe/Apache UI Framework içindir. – JeffryHouser
Üzgünüm, 'flex' bana otomatik olarak ne önerildi, ben açıklama kontrol etmeyi düşünmüyordum – LordAro