get_target_property(GENERATE_AST_JAR GenerateAst JAR_FILE) set(GENERATED_JAVA_FILENAMES ${CMAKE_CURRENT_BINARY_DIR}/Expr.java ${CMAKE_CURRENT_BINARY_DIR}/Stmt.java CACHE INTERNAL "") add_custom_command(OUTPUT ${GENERATED_JAVA_FILENAMES} COMMAND java -jar ${GENERATE_AST_JAR} ${CMAKE_CURRENT_BINARY_DIR} DEPENDS GenerateAst ${GENERATE_AST_JAR}) add_jar(Lox Lox.java TokenType.java Token.java Scanner.java ${GENERATED_JAVA_FILENAMES} AstPrinter.java Parser.java Interpreter.java RuntimeError.java Environment.java Break.java ENTRY_POINT com/craftinginterpreters/lox/Lox)