aboutsummaryrefslogtreecommitdiffstats
path: root/jlox/src/com/craftinginterpreters/lox/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'jlox/src/com/craftinginterpreters/lox/CMakeLists.txt')
-rw-r--r--jlox/src/com/craftinginterpreters/lox/CMakeLists.txt28
1 files changed, 28 insertions, 0 deletions
diff --git a/jlox/src/com/craftinginterpreters/lox/CMakeLists.txt b/jlox/src/com/craftinginterpreters/lox/CMakeLists.txt
new file mode 100644
index 0000000..aeab240
--- /dev/null
+++ b/jlox/src/com/craftinginterpreters/lox/CMakeLists.txt
@@ -0,0 +1,28 @@
+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}
+ Parser.java
+ Interpreter.java
+ RuntimeError.java
+ Environment.java
+ LoxCallable.java
+ LoxFunction.java
+ Return.java
+ Resolver.java
+ LoxClass.java
+ LoxInstance.java
+ ENTRY_POINT com/craftinginterpreters/lox/Lox)