10bbfda8aSnia# 20bbfda8aSnia# Setup flex to build lexer 30bbfda8aSnia# 40bbfda8aSnia# We don't really support any lex(1) other than flex. It's possible some 50bbfda8aSnia# minor editing of lex.l could get you through that... 60bbfda8aSnia# 70bbfda8aSnia# If you DO have flex, we go ahead and use it to build the lexer. If you 80bbfda8aSnia# don't, we check to see if there's a prebuilt one in the tree; one will 90bbfda8aSnia# be shipped with tarballs for releases etc (but you'll still build your 100bbfda8aSnia# own if you have flex). If neither of those hit, not much we can do but 110bbfda8aSnia# bomb... 120bbfda8aSnia 130bbfda8aSnia# Override for forcing use of pregen'd source files 140bbfda8aSniaif(NOT FORCE_PREGEN_FILES) 150bbfda8aSnia find_package(FLEX) 160bbfda8aSniaendif() 170bbfda8aSnia 180bbfda8aSnia 190bbfda8aSniaif(FLEX_FOUND) 200bbfda8aSnia FLEX_TARGET(ctwm_lexer lex.l ${CMAKE_CURRENT_BINARY_DIR}/lex.c) 210bbfda8aSniaelse() 220bbfda8aSnia # See if we have a pre-built lex.c 230bbfda8aSnia find_file(LEX_C lex.c 240bbfda8aSnia PATHS ${GENSRCDIR} 250bbfda8aSnia NO_DEFAULT_PATH) 260bbfda8aSnia if(LEX_C) 270bbfda8aSnia # Make the build process just copy it in 280bbfda8aSnia message(STATUS "No flex found, using prebuilt lex.c") 290bbfda8aSnia add_custom_command(OUTPUT lex.c 300bbfda8aSnia DEPENDS ${LEX_C} 310bbfda8aSnia COMMAND cp ${LEX_C} . 320bbfda8aSnia COMMENT "Copying in prebuilt lex.c" 330bbfda8aSnia ) 340bbfda8aSnia else() 350bbfda8aSnia # No flex, no pre-built lex.c 360bbfda8aSnia message(FATAL_ERROR "Can't find flex, and no prebuilt files " 370bbfda8aSnia "available.") 380bbfda8aSnia endif(LEX_C) 390bbfda8aSniaendif(FLEX_FOUND) 40